Benchmarking the Parallel 1D Heat Equation Solver in Chapel, Charm++, C++, HPX, Go, Julia, Python, Rust, Swift, and Java
Patrick Diehl, Steven R. Brandt, Max Morris, Nikunj Gupta and, Hartmut Kaiser

TL;DR
This paper benchmarks a simple 1D heat diffusion simulation across multiple programming languages and platforms, highlighting performance differences on various hardware architectures.
Contribution
It provides a comparative analysis of parallel implementations of a basic heat solver in ten programming languages and platforms on different hardware architectures.
Findings
C++, Rust, Chapel, Charm++, and HPX achieved the best performance.
Python was the slowest among the tested languages.
Java, Go, Swift, and Julia had intermediate performance.
Abstract
Many scientific high performance codes that simulate e.g. black holes, coastal waves, climate and weather, etc. rely on block-structured meshes and use finite differencing methods to iteratively solve the appropriate systems of differential equations. In this paper we investigate implementations of an extremely simple simulation of this type using various programming systems and languages. We focus on a shared memory, parallelized algorithm that simulates a 1D heat diffusion using asynchronous queues for the ghost zone exchange. We discuss the advantages of the various platforms and explore the performance of this model code on different computing architectures: Intel, AMD, and ARM64FX. As a result, Python was the slowest of the set we compared. Java, Go, Swift, and Julia were the intermediate performers. The higher performing platforms were C++, Rust, Chapel, Charm++, and HPX.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Meteorological Phenomena and Simulations · Simulation Techniques and Applications
