% IMPORTANT: The following is UTF-8 encoded.  This means that in the presence
% of non-ASCII characters, it will not work with BibTeX 0.99 or older.
% Instead, you should use an up-to-date BibTeX implementation like “bibtex8” or
% “biber”.

@TECHREPORT{Carpenter:1005502,
      author       = {Carpenter, Paul and Utz, Uwe-Haus and Narasimhamurthy, Sai
                      and Suarez, Estela},
      title        = {{H}eterogeneous {H}igh {P}erformance {C}omputing},
      number       = {6},
      address      = {ETP4HPC},
      publisher    = {Zenodo},
      reportid     = {FZJ-2023-01508, 6},
      series       = {ETP4HPC White Papers},
      pages        = {18 pp.},
      year         = {2022},
      abstract     = {Modern HPC systems are becoming increasingly heterogeneous,
                      affecting all components of HPC systems, from the processing
                      units, through memory hierarchies and network components to
                      storage systems. This trend is on the one hand due to the
                      need to build larger, yet more energy efficient systems, and
                      on the other hand it is caused by the need to optimise
                      (parts of the) systems for certain workloads. In fact, it is
                      not only the systems themselves that are becoming more
                      heterogeneous, but also scientific and industrial
                      applications are increasingly combining different
                      technologies into complex workflows, including simulation,
                      data analytics, visualisation, and artificial
                      intelligence/machine learning. Different steps in these
                      workflows call for different hardware and thus today’s HPC
                      systems are often composed of different modules optimised to
                      suit certain stages in these workflows. While the trend
                      towards heterogeneity is certainly helpful in many aspects,
                      it makes the task of programming these systems and using
                      them efficiently much more complicated. Often, a combination
                      of different programming models is required and selecting
                      suitable technologies for certain tasks or even parts of an
                      algorithm is difficult. Novel methods might be needed for
                      heterogeneous components or be only facilitated by them. And
                      this trend is continuing, with new technologies around the
                      corner that will further increase heterogeneity, e.g.
                      neuromorphic or quantum accelerators, in-memory-computing,
                      and other non-von-Neumann approaches. In this paper, we
                      present an overview of the different levels of heterogeneity
                      we find in HPC technologies and provide recommendations for
                      research directions to help deal with the challenges they
                      pose. We also point out opportunities that particularly
                      applications can profit from by exploiting these
                      technologies. Research efforts will be needed over the full
                      spectrum, from system architecture, compilers and
                      programming models/languages, to runtime systems, algorithms
                      and novel mathematical approaches.},
      cin          = {JSC},
      cid          = {I:(DE-Juel1)JSC-20090406},
      pnm          = {5122 - Future Computing $\&$ Big Data Systems (POF4-512) /
                      DEEP-SEA - DEEP – SOFTWARE FOR EXASCALE ARCHITECTURES
                      (955606)},
      pid          = {G:(DE-HGF)POF4-5122 / G:(EU-Grant)955606},
      typ          = {PUB:(DE-HGF)3 / PUB:(DE-HGF)29},
      doi          = {10.5281/ZENODO.6090425},
      url          = {https://juser.fz-juelich.de/record/1005502},
}