Investigating Rust and task-aware communication libraries

8 February 2022

EPCC has started work on two technology state-of-the-art investigations, each of which will research and produce a report on a topic of interest to HPC application developers.

The first investigation will assess the suitability of the Rust programming language for HPC applications. Rust is a relatively new language: like C++ it is object-oriented, but it has in-built features that help enforce memory and thread safety. These are intended to pick up many otherwise difficult to detect bugs at compile time, without compromising on performance. We will be investigating the performance of Rust compared to traditional HPC languages, its portability across CPU architectures, its suitability for both shared memory and distributed memory parallelism, and its ability to integrate with scientific libraries and with batch systems.



The other investigation will focus on task-aware communication libraries. Programming using tasks with data dependencies is a powerful method for minimising idle time due to excessive synchronisation and load imbalance in parallel applications, and is supported by APIs such as OpenMP and OmpSs. Implementing a full tasking model efficiently on distributed memory is very challenging, so a practical compromise is to use a hybrid of tasks within a node and traditional communication library such as MPI or GASPI between nodes.

Barcelona Supercomputing Center (BSC) has developed task-aware versions of these libraries, which we will be using to implement some mini-applications, compare their performance with conventional hybrid MPI + OpenMP implementations, and assess the ease-of-use of, and available support for, this novel programming model.



Myself and my EPCC colleague Laura Moran have recently joined the EuroCC project to work on these investigations. I am a Senior Research Fellow at EPCC, and have been collaborating with BSC for several years on programming with task-aware communication libraries under the Horizon 2020 INTERTWinE and PRACE 6IP projects. Laura has recently joined EPCC as an Applications Developer, having previously studied for a PhD at the University of Exeter where she used Monte Carlo modelling of Raman spectroscopy to improve breast cancer detection.

Read more about the EuroCC project in the UK.

EuroCC logo

Author

Dr Mark Bull
Mark Bull