Scalability and parallelism can reduce software performance when tasks interact with data, for example when tasks access remote data or tasks modify shared data. This motivate the aim of the ADAPT project: to improve data processing, by systematically extracting data-access patterns from applications and by matching and customize task scheduling and data allocation using such patterns.
About the project
The ADAPT project will introduce a formal notion of data-access patterns that describes abstractly how computation interacts with memory. ADAPT combines formal models of parallel systems with basic research in programming language theory, with the aim of developing novel techniques to improve data locality and demonstrating their applicability by means of experimental proof of concept.
The main goal of the project is "to study how to systematically explore applications with parallel data processing to (1) extract information related to how tasks interact with data in memory, and (2) use this information to coordinate data allocation and task scheduling”.
The ADAPT project will develop a formal theory that captures abstractly the interaction of workflows with dynamically created tasks and memory locations on parallel computers. This theory will form the basis to combine formal analysis with model-based simulations, using data-access patterns, to control schedulers and allocators for a specific application. The approach will be validated with a proof of concept tool applied to a case study based on a real application.
ADAPT’s research agenda is based on two hypotheses. First, application-specific data management, combining data scheduling and task allocation, can improve the performance of highly parallelised applications that access large amounts of data. Second, that abstractions, formal foundations, and executable modelling together enable model-based static analysis techniques that can predict runtime data access with sufficient precision to improve data management for a particular application. Therefore, the project will study how to systematically infer these patterns for a particular parallel application before execution, and how to use them later to monitor and control data distribution and data movement of the application while it is running. This will allow better data allocation and task scheduling and could avoid performance degradation.
The Research Council of Norway - FRINATEK - Young Research Talent
- CWI’s Foundations of Software Engineering group, Amsterdam.
- Dept. of Computing, Imperial College London.
- Dept. of Computer Science, University of Oxford.
- Numascale, Norway.