- Expect most upcoming large systems to feature many-core processors and more complex NUMA configurations
-
MPI + OpenMP will likely remain a viable programming model for HPC
- OpenMP includes support for SIMD processing (i.e., vectorization of inner loops)
- Heterogeneous architectures, too, are supported by OpenMP, via offloading to accelerators
-
Some HPC applications might still exist only as pure-MPI or pure-OpenMP codes
- Think about upgrading to a hybrid scheme, if you haven't already
-
There are alternatives to MPI + OpenMP...
- TBB, the Threading Building Blocks library from Intel (C++ open source)
- MKL, as well as other multithreaded libraries
- CAF, a framework that handles both messaging and multithreading (C++ open source)
-
Future prospects for hybrid programming:
- Core counts will continue to increase on both processors and accelerators
- Good scaling with MPI + OpenMP will accordingly become more important
- Even more effort will be focused on process scheduling and data locality
- Expect to see more multithreaded libraries
- Be alert for these libraries' potential interaction with your own multithreading strategy