Software Systems Group CDT Presentation November 13th 2013
Group Structure • Software Engineering Subgroup • novel approaches to software development; software engineering techniques and tools; novel applications • Centre for Novel Computing • application-oriented techniques and tools that facilitate development of large-scale high-performance computational models for all manner of disciplines
Overview Concerned with the design, modelling, simulation and construction of mission-critical software systems that challenge the states-of-the-art in both software engineering and performance engineering. Such systems are fundamentally composed of physically distributed component sub-systems, and are characterised by large data spaces and high compute needs, with associated complex interactions between the components.
Lecturing Staff John Gurd John Keane Kung-Kiu Lau Liping Zhao Turing Fellow Jack Dongarra Marie Curie Fellow Grzegorz Kozikowski plus 15 PhD students Research Staff Ann Gledson Paul Slavin Petr Stepan Vendel Szeremi David Tian Cuong Tran Usman Wajid Honorary Research Fellow Rupert Ford Group Staff
Software Engineering Projects • Component Based Software Development (Kung-Kiu Lau) • Model Driven Development • Use Case and Scenario Authoring (Liping Zhao)
Components … Services … Clouds … Kung-Kiu Lau firstname.lastname@example.org
Fuel Management System Localiser Performance with Vertical Guidance Fully Automated Digital Electronic Controller
European Conference on Service-Oriented and Cloud Computing (ESOCC) Program Chairs Kung-Kiu Lau (Manchester) Winfried Lamersdorf (Hamburg) General Chair Ernesto Pimentel (Malaga) Program Chairs Massimo Villari (Messina) Wolf Zimmermann (Halle) General Chair Kung-Kiu Lau (Manchester) ESOCC2014 10-12 September Manchester (UK)
Model Driven Development – Liping Zhao • Project 1: An Ontological Framework for MDD – The idea of OMG’s MDA is to separate business logic from implementation technology (so the two can co-evolve independently). But, while there has been a lot of work on automating the latter stages of software development, creating business models has been left largely as a manual process, which can be time-consuming and error-prone. • This project aims to develop an ontological framework that supports different business ontologies. The framework will represent business concepts and models in a way similar to biological classification. Based on such a framework, the project will develop an automated model generation tool.
Model Driven Development – Liping Zhao • Project 2: A Natural Language Approach to MDD – Developing initial software models is challenging because it requires the modeller to understand both the requirements specification and the modelling knowledge. • This project aims to develop a natural language (NL) approach to modelling. It will use modern NLP techniques to process the NL requirements and apply its built-in modelling knowledge to construct models. It should also be able to validate itself through paraphrasing and interpreting the created model, thereby reversing it back to the original NL requirements.
Use Case and Scenario Authoring – Liping Zhao • Project 3: A Natural Language (NL) Editor – No matter how advanced the technology is, software development always starts from a NL description of ideas or requirements. Use cases and scenarios are widely used to help the user specify their requirements, but writing use cases and scenarios is a skilled job, requiring experienced software analysts. • This project will develop a NL editor to assist use case and scenario authoring. The editor will not only be able to detect syntactic errors, but also semantic errors. The editor will additionally be able to transform each specified use case into an initial analysis model.
Performance Engineering Projects • Data mining and decision support (John Keane) • Projects in High Performance (parallel) Computing (HPC) (John Gurd)
CDT PROJECTS 2013-14John Keane, Software Systems Groupjak@cs.man.ac.uk1. Data Analytics / Big Data2. Parallel & Distributed Systems3. Decision Support SystemsHAPPY TO DISCUSS
HPC Background • The Centre for Novel Computing (CNC) has a long history of research into parallel computing with a view to obtaining high performance on a wide range of end-user applications. • Pertinent application domains have included computational chemistry, various branches of engineering, and Earth System Modelling (ESM). • Typically, we have worked with the supporting computational infrastructure rather than in the core computational science or engineering (CS&E).
Areas of projects • Current work falls into two broad areas: • High performance (parallel) computing • Improving the scalability of applications on peta-scale and future exa-scale architectures. • Improved HPC abstraction.
Exploiting accelerators • Accelerator technology is an emerging architectural trend, leading to heterogeneous many-core processors. • CUDA, OpenCL, OpenACC etc. • Hybrid approaches for large-scale computing. • Aim to explore the impact and use of accelerators in key routines of major CS&E applications. • Possible contributions to algorithms, language support, run-time support systems.
Frameworks for large-scale scientific and engineering software • Investigate software engineering strategies for the future development of key CS&E applications. • Contributions in methods and techniques for ‘evolving systems’ • Evolving in the sense of needing to adapt software configurations, possibly at run-time, for new models, for new machines, for different scientific or engineering scenarios, etc.
Efficient, adaptive scheduling algorithms • Motivating example from the Met Office’s parallel, tape-based, archival storage system. • but problem is more general … • Investigate trade-offs between providing high performance archiving and retrieval for further (scientific) processing, throughput and energy consumption • as user behaviour varies over time. • Possible contributions in algorithm design (self-learning algorithms may be appropriate), system modelling and run-time strategy selection.
Improved Abstraction for High Performance Computing – John Gurd • High performance demands parallel execution • But parallel programming is ‘down and dirty’, requiring low-level control of all parallel activity and intense attention to the details of parallel execution – it is therefore difficult and costly • One historical theme in computer science is that of constantly improving the abstractions used in programming so as to reduce development costs • Should this not be directed at parallel programs?
Improved Abstraction for High Performance Computing – John Gurd • Previous SSG PhD students have made some progress in this area by applying the principles of aspect oriented programming (AOP) to separate the ‘crosscutting’ concerns of functionality and performance for distinct encapsulation • Future PhD students are invited to take the above work forward, or find alternative ways of introducing appropriate high level abstractions into parallel programs
Contact • Kung-Kiu Lau – Kilburn 2.68 • Liping Zhao – Kilburn 2.64 • John Keane – Kilburn 2.52 • John Gurd – Kilburn 2.54