Future architecture readiness¶
This page contains recommendations for application developers to "hit the ground running" with upcoming system architectures such as Perlmutter.
Testing of performance on relevant hardware and compatability with the software environment are both important.
Proxy hardware platforms¶
Perlmutter will feature NVIDIA GPUs and AMD cpus.
Summit and Sierra feature NVIDIA GPUs and IBM CPUs. Piz Daint features NVIDIA GPUs and Intel CPUs, but only has 1 GPU per node.
Current generation AMD cpus are a good place to start.
Compilers and programming models play key roles in the software environment.
module load pgion Cori.
- PGI Compilers on AWS
The choice of programming model depends on multiple factors including: number of performance critical kernels, source language, existing programming model, and portability of algorithm. A 20K line C++ code with 5 main kernels will have different priorities and choices vs a 10M line Fortran code.
The ability for applications to achieve both portability and high performance across computer architectures remains an open challenge.
However there are some general trends in current and emerging HPC hardware: increased thread parallelism; wider vector units; and deep, complex, memory hierarchies.
In some cases a performance portable algorithm can realized by considering generic "wide vectors" which could map to either GPU SIMT threads or CPU SIMD lanes.