The members of STORM are experts on code optimization, application tuning for parallel, heterogeneous architectures, scheduling of parallel tasks, mostly in the HPC field, but also more recently in an embedded context. All members of the team share a common expertise on parallel languages, parallel performance and on parallel architectures. The contributions of the team are also interfaced with compilers, such as LLVM/clang (KStar frontend) or GNU GCC (plug-ins for PARCOACH, for read-only memory optimization). Many of the optimizations proposed rely on static/dynamic code analysis and transformations, possibly resorting to auto-tuning. This expertise is recognized at the European level, through the participation to expert committees, and European PATC training programs on parallel tools for HPC. This expertise has led to the development of several tools, in particular StarPU, a runtime system for heterogeneous architectures, and the implication in the development of high performance libraries, through for instance the joint team MORSE with Inria Team HiePACS and UTK for linear algebra libraries. One of the important characteristics of these activities is that they are developed in collaboration with application experts — molecular dynamics, seismic or signal processing, for instance. This work leads to the development of new approaches, new optimization schemes in terms of code optimization, parallelism, scheduling heuristics that can be evaluated and used by application developers, with a direct impact on performance.
High level domain specific languages
The objective of this first direction is to express parallelism in an architecture independent manner (OpenCL, OpenMP with the KStar compiler), and by proposing a high level of abstraction for targeted scientific domains (ex: QIRAL), for instance physics phenomenon discretization at local level (stencils) or near-local levels (particles). This level of expressiveness indeed enables to explore new algorithms, new library compositions, new granularities in parallelism form, or different level of optimization (ex: AFF3CT framework for Error Correction Codes analysis and simulation).
Runtime systems for heterogeneous, manycore platforms
This second direction addresses the supporting software, mechanisms and scheduling algorithms involved at parallel application run-time on heterogeneous platforms equipped with accelerators or graphical processors (GPU), within the StarPU runtime system. The goal of this axis is to manage computing resource sharing within scientific codes, or between the libraries of a composite application.
Analysis and performance feedback tools
The third research direction for Team STORM is the design of static and dynamic binary analysis tools such as PARCOACH in order to guide the optimizing work of programmers, implementing a feedback loop back to the two previous axis.