JACC: HPC Meta-Programming and Performance-Portability Ecosystem for Julia Language

JACC: HPC Meta-Programming and Performance-Portability Ecosystem for Julia Language

Tuesday, June 10, 2025 3:00 PM to Thursday, June 12, 2025 4:00 PM · 2 days 1 hr. (Europe/Berlin)
Foyer D-G - 2nd floor
Research Poster
Community EngagementParallel Programming LanguagesPerformance MeasurementResource Management and SchedulingSystem and Performance Monitoring

Information

Poster is on display and will be presented at the poster pitch session.
We present JACC (Julia ACCelerated), the first and only highlevel, metaprogramming, and performance-portable model for the just-in-time and LLVM-based Julia language. JACC provides a unified and lightweight front end across different back ends available in Julia, enabling the same Julia code to run efficiently on many CPU and GPU targets. This is the first time meta-programming and performance portable capabilities are taken to the just-in-time and real-time interactive Julia ecosystem, elevating the capabilities of programming productivity for implementing Julia scientific and HPC codes. Julia is not different from other programming languages in facing performance-portability challenges. Currently, Julia’s programming models tend to closely follow vendor layers, which could still be too low level, thereby hindering programming productivity. JACC addresses this challenge for Julia programmers and applications, providing an HPC-portable and highly productive model targeting current HPC (CPU and GPU) hardware, which could potentially be extended to other architectures (e.g., AI custom hardware, field-programmable gate arrays) and configurations (e.g., distributed memory, multidevice use).
The performance evaluation reports speed up close to 3.5 by adding only one line of code to the base codes. We analyze the performance of JACC on the most advanced supercomputers today owned by the US DOE: Aurora, Frontier, and Perlmutter, equipped with a variety of CPU and GPU architectures—including AMD EPYC 7742 CPUs, AMD Mi250x GPUs, NVIDIA A100 GPUs, and Intel Data Center Max 1550 GPUs—these machines provide excellent platforms to demonstrate the advantages of JACC.
Overall, we show that JACC has a negligible overhead versus Julia’s vendor-specific solutions, reporting GPU speedups over the CPU implementations with no extra cost to programmability. Important HPC capabilities on accelerators are provided in a simple, portable, and transparent way, elevating programming productivity and performance portability capabilities for Julia community.
Contributors:
Format
On DemandOn Site