## 4 A \"State of the Art\" of HPC Systems in the Exascale Era  
Progress in the deployment of computing platforms has constituted both a pull and a push factor for the advancement of scientific knowledge and engineering design. Historically, the HPC systems era started in the 1980s, when vector supercomputing dominated high-performance computing, as embodied in systems designed by Cray Research Inc. [70; 71]. The 1990s saw the rise of massively parallel processing (MPP) in distributed memory systems and shared memory multiprocessors (SMPs) [72]. In turn, clusters of commodity (Intel/AMD x86) [73] and purpose-built processors (such as IBM's BlueGene) [74] dominated the beginning of this Millenium. Today, these clusters (which are made of hundreds of nodes and millions of processors/cores) are enriched by computational accelerators in the form of coproressors, such as General Purpose Graphical Processing Units (GP-GPUs); they are based on high-speed, low-latency interconnects (such as Infiniband) (see Figure 3 for a representation of modern HPC systems) [71]. Parallel computers (in all their different architectural evolutions) made it possible to lay the foundations for overcoming the limits that, over the years, have slowed down the possibility of enhancing processor computational power [75]. Just a few years ago, teraflops (\(10^{12}\) floating point operations/second) was the state-of-the-art of HPC technology. Today, those same values can be obtained by a simple personal computer with just one accelerator, so advanced computing is now defined by multiple petaflop ((\(10^{15}\)) floating operations/second) supercomputing systems. The exponential increase in advanced computing capability is outlined by the results of the well-known high-performance LINPACK (HPL) benchmark [76] which is used to compile the Top 500 list of the world's fastest computers [77]. Such a list shows that the Exascale (\(10^{18}\) operations per second) Era is by now the current affairs in the long journey of performance increases that lasts for more than half a century. Indeed, in the second part of the 2022 year, the \"Frontier\" supercomputer installed at the US Oak Ridge National Laboratory broke the glass ceiling of the Exascale limit [78]. Historically, HPC advances largely relied on concurrent advances (in a sort of co-design approach) in algorithms, software, architecture, and hardware that led to higher performance levels for computational models. However, there are many challenges related to the effective use of advanced computing platforms of the Exascale Era, including, but not limited to, massive parallelism and high complexity in programming such heterogeneous computing facilities. A series of studies identified research challenges in developing the generation of advanced computing systems for the Exascale objective [71, 79, 80]. From a computational scientist's point of view, particular relevance has challenges related to  
* Application programming support, which, in response to the complexity and scale of advanced computing hardware, makes available programming languages, numerical libraries, and programming models, eventually combined in hybrid and hierarchical approaches, exploit the multi-node, multi-core, and accelerators-based architecture of up-to-date HPC resources. * New mathematical models and algorithms that can give solutions to the need for increasing amounts of data locality and the need to obtain much higher levels of concurrency and that can guarantee a high level of _\"scalability\"_[81] and _\"granularity\"_[82]. Then, it is now the time to develop new algorithms that are more energy-aware, more resilient, and characterized by reduced synchronization and communication needs. Therefore, such scientists, supported by an appropriate programming environment, should spend effort developing models, re-designing algorithms, and re-implementing applications to fully exploit the power of Exascale architectures.