Berkeley Lab Opens Bidding For Future NERSC-10 Exascale System

An article from TheNextPlatform discusses the requirements for a new supercomputer. The technical requirements document is quoted below. Currently I don’t need or have access to anything beyond a PC, but the list below may give an idea of what one can expect to be available on high-end platforms. Although a minority of Fortran programmers may be currently using features of F2018, the standard does matter. My recollection of the 1990s was that Fortran 77 was the dominant version of Fortran in that decade, but that eventually changed.

4.2.1 The system should support building and executing C17 code, C++20 code and Fortran 2018 code including code utilizing OpenMP directives 5.2 or latest. The Offeror
should describe all supported compilers, including any enhancements or limitations
that can be expected in meeting full support of the standards and other native language
features for expressing parallelism including, but not limited to, support for C++
parallel STL, Fortran do concurrent and coarrays. [TR-1]
4.2.2 The system should support LLVM backends for each processing element (e.g., CPU,
GPU, specialized accelerator) that can be utilized with both vendor provided frontends
and the open clang/flang projects. [TR-2]
4.2.3 The Offeror should describe the capability of the system to compile and run
applications using Kokkos, SYCL, and/or OpenACC 3.x. If present, describe any
performance enhancements. [TR-3]
4.2.4 The Offeror should describe the capability of the system to compile and run CUDA
based applications. [TR-1]
4.2.5 The system should provide MPI libraries that support MPI 4.0 or higher and make
GPU-aware MPI available wherever this is supported by the GPU vendor, and this
shall be capable of running a job at full-system scale. The Offeror should describe any
extensions or limitations to the MPI standard in the available MPI libraries. [TR-1]
4.2.6 The system shall support the Process Management Interface (PMI). The Offeror should
describe the version and supported integrations. [TR-1]
4.2.7 The Offeror should provide optimized BLAS, LAPACK, ScaLAPACK and FFT
libraries for both CPUs and GPUs. Describe the offering. [TR-1]
4.2.8 The Offeror should describe any provided communication libraries (e.g., PGAS
libraries and task-based programming libraries). [TR-3]
4.2.9 The Offeror should describe support for optimized scientific I/O libraries for CPUs and
GPUs (e.g., HDF5, NetCDF). [TR-3]
4.2.10 The Offeror should describe any limitations of using provided libraries (used to expose
high-performance CPU, GPU, I/O, or communication capabilities in 4.2.5-4.2.9)
through standard Python packages (e.g., NumPy, SciPy, h5py, mpi4py) or using
standard Python packaging tools. [TR-2]
4.2.11 The Offeror should describe performance optimizations for distributed or parallel
execution of Python programs through Python multiprocessing, Dask, Ray, or other
similar non-MPI-based runtimes. [TR-2]
(another page snipped)


HPC systems are increasingly compatible with – if not identical to – Linux desktop systems. I used to work on 32-bit Blue Gene machines, and they were quite a bit different from my Dell OpenSUSE x86_64 laptop at the time.

Nowadays, everything from laptop to cloud to supercomputer is either x86_64 or AArch64, and one can get the exact same software at home as exists on the biggest HPC systems, with the exception of the Cray compiler (it’s free with purchase of hardware :wink: ). One has to have the right GPU hardware for GPU-specific software, but I can get a compatible approximation to all the major supercomputing platforms for less than ~$2000.

I use a Phantom Canyon NUC (x64_64 including AVX-512, plus NVIDIA cc75) and Orin AGX (AArch64, plus NVIDIA cc87) for development and use exactly the same software on these that I’m using on supercomputers.

In full disclosure, I work for NVIDIA so I’m focused on ARM and our GPUs, but I have run GPU software from from both AMD and Intel on machines at home, with varying success (consistent with documentation). I do not miss the days when I was debugging PowerPC assembly through the Blue Gene queue system.


Given the computer will only be commisioned in 2026, it seems like a missed opportunity to push for C++23 and Fortran 202X(3) compatibility. The OpenMP 6.0 preview is also out already. Since the Technical requirements documents is only a draft, perhaps this is still subject of change? I found no mention of Julia in the document.