Evaluating performance and portability of high-level programming models: Julia, Python/Numba, and Kokkos on exascale nodes

03/10/2023
by   William F Godoy, et al.
0

We explore the performance and portability of the high-level programming models: the LLVM-based Julia and Python/Numba, and Kokkos on high-performance computing (HPC) nodes: AMD Epyc CPUs and MI250X graphical processing units (GPUs) on Frontier's test bed Crusher system and Ampere's Arm-based CPUs and NVIDIA's A100 GPUs on the Wombat system at the Oak Ridge Leadership Computing Facilities. We compare the default performance of a hand-rolled dense matrix multiplication algorithm on CPUs against vendor-compiled C/OpenMP implementations, and on each GPU against CUDA and HIP. Rather than focusing on the kernel optimization per-se, we select this naive approach to resemble exploratory work in science and as a lower-bound for performance to isolate the effect of each programming model. Julia and Kokkos perform comparably with C/OpenMP on CPUs, while Julia implementations are competitive with CUDA and HIP on GPUs. Performance gaps are identified on NVIDIA A100 GPUs for Julia's single precision and Kokkos, and for Python/Numba in all scenarios. We also comment on half-precision support, productivity, performance portability metrics, and platform readiness. We expect to contribute to the understanding and direction for high-level, high-productivity languages in HPC as the first-generation exascale systems are deployed.

READ FULL TEXT
research
07/01/2021

Productivity, Portability, Performance: Data-Centric Python

Python has become the de facto language for scientific computing. Progra...
research
04/26/2022

Automated Generation of High-Performance Computational Fluid Dynamics Codes

Domain-Specific Languages (DSLs) improve programmers productivity by dec...
research
10/14/2019

Some remarks on the performance of Matlab, Python and Octave in simulating dynamical systems

Matlab has been considered as a leader computational platform for many e...
research
06/27/2023

Evaluation of OpenAI Codex for HPC Parallel Programming Models Kernel Generation

We evaluate AI-assisted generative capabilities on fundamental numerical...
research
11/08/2021

Performance Evaluation of Python Parallel Programming Models: Charm4Py and mpi4py

Python is rapidly becoming the lingua franca of machine learning and sci...
research
09/09/2023

Towards Accelerating High-Order Stencils on Modern GPUs and Emerging Architectures with a Portable Framework

PDE discretization schemes yielding stencil-like computing patterns are ...
research
09/10/2020

Accelerating High-Order Stencils on GPUs

Stencil computations are widely used in HPC applications. Today, many HP...

Please sign up or login with your details

Forgot password? Click here to reset