-
Distributed Parallelization of xPU Stencil Computations in Julia
Authors:
Samuel Omlin,
Ludovic Räss,
Ivan Utkin
Abstract:
We present a straightforward approach for distributed parallelization of stencil-based xPU applications on a regular staggered grid, which is instantiated in the package ImplicitGlobalGrid.jl. The approach allows to leverage remote direct memory access and enables close to ideal weak scaling of real-world applications on thousands of GPUs. The communication costs can be easily hidden behind comput…
▽ More
We present a straightforward approach for distributed parallelization of stencil-based xPU applications on a regular staggered grid, which is instantiated in the package ImplicitGlobalGrid.jl. The approach allows to leverage remote direct memory access and enables close to ideal weak scaling of real-world applications on thousands of GPUs. The communication costs can be easily hidden behind computation.
△ Less
Submitted 28 November, 2022;
originally announced November 2022.
-
High-performance xPU Stencil Computations in Julia
Authors:
Samuel Omlin,
Ludovic Räss
Abstract:
We present an efficient approach for writing architecture-agnostic parallel high-performance stencil computations in Julia, which is instantiated in the package ParallelStencil.jl. Powerful metaprogramming, costless abstractions and multiple dispatch enable writing a single code that is suitable for both productive prototy** on a single CPU thread and production runs on multi-GPU or CPU workstat…
▽ More
We present an efficient approach for writing architecture-agnostic parallel high-performance stencil computations in Julia, which is instantiated in the package ParallelStencil.jl. Powerful metaprogramming, costless abstractions and multiple dispatch enable writing a single code that is suitable for both productive prototy** on a single CPU thread and production runs on multi-GPU or CPU workstations or supercomputers. We demonstrate performance close to the theoretical upper bound on GPUs for a 3-D heat diffusion solver, which is a massive improvement over reachable performance with CUDA.jl Array programming.
△ Less
Submitted 28 November, 2022;
originally announced November 2022.
-
Bridging HPC Communities through the Julia Programming Language
Authors:
Valentin Churavy,
William F Godoy,
Carsten Bauer,
Hendrik Ranocha,
Michael Schlottke-Lakemper,
Ludovic Räss,
Johannes Blaschke,
Mosè Giordano,
Erik Schnetter,
Samuel Omlin,
Jeffrey S. Vetter,
Alan Edelman
Abstract:
The Julia programming language has evolved into a modern alternative to fill existing gaps in scientific computing and data science applications. Julia leverages a unified and coordinated single-language and ecosystem paradigm and has a proven track record of achieving high performance without sacrificing user productivity. These aspects make Julia a viable alternative to high-performance computin…
▽ More
The Julia programming language has evolved into a modern alternative to fill existing gaps in scientific computing and data science applications. Julia leverages a unified and coordinated single-language and ecosystem paradigm and has a proven track record of achieving high performance without sacrificing user productivity. These aspects make Julia a viable alternative to high-performance computing's (HPC's) existing and increasingly costly many-body workflow composition strategy in which traditional HPC languages (e.g., Fortran, C, C++) are used for simulations, and higher-level languages (e.g., Python, R, MATLAB) are used for data analysis and interactive computing. Julia's rapid growth in language capabilities, package ecosystem, and community make it a promising universal language for HPC. This paper presents the views of a multidisciplinary group of researchers from academia, government, and industry that advocate for an HPC software development paradigm that emphasizes developer productivity, workflow portability, and low barriers for entry. We believe that the Julia programming language, its ecosystem, and its community provide modern and powerful capabilities that enable this group's objectives. Crucially, we believe that Julia can provide a feasible and less costly approach to programming scientific applications and workflows that target HPC facilities. In this work, we examine the current practice and role of Julia as a common, end-to-end programming model to address major challenges in scientific reproducibility, data-driven AI/machine learning, co-design and workflows, scalability and performance portability in heterogeneous computing, network communication, data management, and community education. As a result, the diversification of current investments to fulfill the needs of the upcoming decade is crucial as more supercomputing centers prepare for the exascale era.
△ Less
Submitted 10 November, 2022; v1 submitted 4 November, 2022;
originally announced November 2022.
-
Development of Massively Parallel Near Peak Performance Solvers for Three-Dimensional Geodynamic Modelling
Authors:
Samuel Omlin,
Ludovic Räss,
Benjamin Malvoisin,
Yury Y. Podladchikov
Abstract:
We address in this thesis the current need to design new parallel algorithms and tools that ease the development of geodynamic modelling applications that are suited for today's and tomorrow's hardware. We present (1) the MATLAB HPC compiler HPC.m, which greatly simplifies the building of parallel high performance applications and (2) parallel algorithms for the 3D simulation of strongly nonlinear…
▽ More
We address in this thesis the current need to design new parallel algorithms and tools that ease the development of geodynamic modelling applications that are suited for today's and tomorrow's hardware. We present (1) the MATLAB HPC compiler HPC.m, which greatly simplifies the building of parallel high performance applications and (2) parallel algorithms for the 3D simulation of strongly nonlinear processes as mechanical and reactive porosity waves. To simulate mechanical porosity waves we employ a massively parallel algorithm that permits to resolve the deformation of fluid-filled viscoelastic porous media in 3D. The utilized mathematical model is based on Biot's poroelastic theory, extended to account for viscous deformation and plastic yielding. The modelling results exhibit the impact of decompaction weakening on the formation of three-dimensional solitary-wave-like moving porosity channels. To simulate reactive porosity waves we use a solver for 3D deformation of fluid-filled reactive viscous porous media. The Damköhler number (Da) of the simulations is varied in order to estimate the respective roles of viscous deformation (low Da) and reaction (high Da) on wave propagation. 3D waves are found to propagate independently of their source at constant speed by going through each other for all the investigated Da. Soliton-like wave propagation as a result of metamorphic reaction provides an efficient mechanism for fluid flow in the Earth's crust. We illustrate the great performance and versatility of HPC.m by deploying it to generate solvers for a variety of physics across multiple Earth Science disciplines. All solvers run close to hardware's peak performance and were shown to scale linearly on a institute cluster with 80 GPUs. Moreover, our nonlinear poroviscoelastic two-phase flow solver scales close to ideally on Piz Daint's 5000 GPUs at the Swiss National Supercomputing Centre.
△ Less
Submitted 18 July, 2022;
originally announced July 2022.