Abstract:
Julia is a general-purpose, managed, strongly and dynamically-typed programming language with emphasis on high performance scientific computing. Traditionally, HPC softwa...Show MoreMetadata
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 characterise 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.
Published in: 2021 International Workshop on Performance Modeling, Benchmarking and Simulation of High Performance Computer Systems (PMBS)
Date of Conference: 15-15 November 2021
Date Added to IEEE Xplore: 28 December 2021
ISBN Information: