Section: New Results

Code optimization for HPC and CPS programs

Participants : Sid Touati, Carsten Bruns, Robert de Simone.

Optimising HPC applications is a classical research area in computer science, complementary to intensive computation (which is an adjacent research community to HPC). Since decades, the most used languages are imperative ones (FORTRAN, C, etc). These languages are the closest to formal algorithms and low-level assembly codes. In intensive computing area, other kinds of languages and programming paradigms are used (interpreted languages for instance), but are far from HPC challenges, which tackle low level optimization (close to back-end compilation and processor micro-architectures).

We started a while ago to work on optimisation of HPC applications at C++ program level, where code and data are mixed in the same objects, allowing sophisticated programming methods that were not traditionally tackled in classical HPC programming (such as virtual classes, exception handling, etc). Currently, we are working on performance analysis and optimisation of linear algebra codes (BLAS) programmed with classes: this allows to extend BLAS computation to any kind of data (such as complex numbers) not only floating points. Our final aim is to apply and adjust this type of general C++ code optimization, to cover the spectrum of typical Kairos applications expressed from in C++ from high level formal specifications.