Benchmarking the Parallel 1D Heat Equation Solver in Chapel, Charm++, C++, HPX, Go, Julia, Python, Rust, Swift, and Java

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Diehl, Patrick, Brandt, Steven R., Morris, Max, Gupta, Nikunj, Kaiser, Hartmut
Format: Preprint
Published: 2023
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866929222893699072
author Diehl, Patrick
Brandt, Steven R.
Morris, Max
Gupta, Nikunj
Kaiser, Hartmut
author_facet Diehl, Patrick
Brandt, Steven R.
Morris, Max
Gupta, Nikunj
Kaiser, Hartmut
contents 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.
format Preprint
id arxiv_https___arxiv_org_abs_2307_01117
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle Benchmarking the Parallel 1D Heat Equation Solver in Chapel, Charm++, C++, HPX, Go, Julia, Python, Rust, Swift, and Java
Diehl, Patrick
Brandt, Steven R.
Morris, Max
Gupta, Nikunj
Kaiser, Hartmut
Distributed, Parallel, and Cluster Computing
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.
title Benchmarking the Parallel 1D Heat Equation Solver in Chapel, Charm++, C++, HPX, Go, Julia, Python, Rust, Swift, and Java
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2307.01117