• 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
 
©  |   Cornell University    |   Center for Advanced Computing    |   Copyright Statement    |   Inclusivity Statement