Presentation
An analysis into the performance and productivity of Rust in High Performance Computing
DescriptionRust is a type-safe programming language originally developed by Mozilla in 2010. With design goals including guarantees of memory and thread safety, alongside foundations in functional programming, it claims to be highly performant, reliable, and productive for developers. Therefore, the Rust language could be well-suited for use in High Performance Computing (HPC) applications.
We present a functionally verified Rust translation of HPCCG, a proxy application in the Mantevo suite, showing the possibility of applying both shared and distributed memory parallelism using Rayon and MPI bindings in Rust to mature HPC codebases. Performance analysis, within a novel framework empowering reproducibility, empirically shows the translated Rust approaches the original C++ and a Kokkos performance portability framework implementation in scaling characteristics and overall performance for representative HPC workloads. The productivity benefits of Rust in combination with its measured performance characteristics holistically demonstrate it to be an effective tool for use in HPC.
We present a functionally verified Rust translation of HPCCG, a proxy application in the Mantevo suite, showing the possibility of applying both shared and distributed memory parallelism using Rayon and MPI bindings in Rust to mature HPC codebases. Performance analysis, within a novel framework empowering reproducibility, empirically shows the translated Rust approaches the original C++ and a Kokkos performance portability framework implementation in scaling characteristics and overall performance for representative HPC workloads. The productivity benefits of Rust in combination with its measured performance characteristics holistically demonstrate it to be an effective tool for use in HPC.