30 Years of HPC: New Languages Have Barely Been Adopted, But Hardware Has Advanced Dramatically
Key point
Over 30 years, HPC hardware has radically advanced, but languages have remained largely unchanged.
Details
In 1995, the top TOP500 systems were led by Fujitsu, Intel, Cray, with core counts of 80~3,680 and Rmax levels of 98.9~170 GFlop/s. In 2025, the top systems have shifted to HPE Cray, Eviden/Bull, Microsoft, with core counts rising to 2,073,600~11,340,000 and Rmax reaching 561.2~1809 PFlop/s.
This growth mainly stems from the following changes:
- The widespread adoption of vector instructions
- multicore/manycore CPU and chiplet-based designs
- multi-socket compute node architectures
- high-speed networks with higher radix and lower diameter
- The large-scale adoption of GPUs and their success in HPC
On the other hand, HPC programming remains surprisingly similar to 30 years ago. Both then and now, the core languages are Fortran, C, C++, and distributed memory is still centered on MPI and SHMEM. In shared memory, OpenMP has established itself as a de facto standard since 1997, and more recently, Kokkos has emerged as a meaningful alternative.
The biggest change is the emergence of GPU programming. Since existing 1995-era technology alone could not handle GPUs, new tools and extensions such as CUDA, HIP, SYCL, OpenACC, OpenCL, Kokkos were created, and OpenMP also evolved into a more explicit form to support GPUs. In scripting, Python has pushed out Perl and Tcl/TK, and bash has become the mainstream shell.
The core diagnosis is this: hardware has become far more powerful, but actual HPC notation has not changed much. In particular, no widely adopted new compiled programming language has emerged.
The author questions the reasons for this from several angles. Contrary to claims that language design is dead, over the past 30 years languages such as Java, JavaScript, Python, C#, Go, Rust, Julia, Swift have achieved broad success. In other words, the problem is not a lack of language design, but rather that no new language has sufficiently established itself in a form that satisfies the productivity, safety, portability, performance that HPC demands.
At the same time, HPC has become more difficult due to increasing hardware complexity. vectorization, multicore, GPU, and NUMA all require programmers to handle parallelism, data placement, and affinity in finer detail. Conversely, high-speed networks have reduced topology sensitivity compared to before, which is evaluated as one of the few positive developments on the programming side.
This summary was generated automatically by AI. Check the original for the author's claims and context. Copyright belongs to the original author.
Our guide explains how the AI works. Report summary errors, attribution issues, or removal requests via Contact.