Workshop:PMBS21: The 12th International Workshop on Performance Modeling, Benchmarking and Simulation of High-Performance Computer Systems
Authors: Wei-Chen Lin and Simon McIntosh-Smith (University of Bristol)
Abstract: Julia is a general-purpose, managed, strongly and dynamically-typed programming language with emphasis on high-performance scientific computing. Traditionally, HPC software development uses languages such as C, C++ and Fortran, which compile to unmanaged code. This offers the programmer near bare-metal performance at the expense of safety properties that a managed runtime would otherwise provide. Julia, on the other hand, combines novel programming language design approaches to achieve high levels of productivity without sacrificing performance while using a fully managed runtime.
This study provides an evaluation of Julia's suitability for HPC applications from a performance point of view across a diverse range of CPU and GPU platforms. We select representative memory-bandwidth bound and compute bound mini-apps, port them to Julia, and conduct benchmarks across a wide range of current HPC CPUs and GPUs from vendors such as Intel, AMD, NVIDIA, Marvell and Fujitsu. We then compare and characterize the results against existing parallel programming frameworks such as OpenMP, Kokkos, OpenCL and first-party frameworks such as CUDA, HIP and oneAPI SYCL. Finally, we show that Julia's performance either matches the competition or is only a short way behind.