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)