High performance computing
Many of today's advanced scientific and engineering problems require a vast amount of computing power, often exceeding the performance of current desktop computers by a factor of 105 or even more. High-performance computing (HPC) incorporates all computational tasks with exceptionally high requirements for computing power and memory capacity. Traditionally, these requirements were satisfied by highly parallel, specially designed supercomputer architectures. Over the last decade, however, comparatively inexpensive architectures assembled from commodity components emerged, the so called compute clusters. Together with advancements in software standards for portable parallel programming clusters have achieved great importance in HPC, becoming the dominating architecture in the list of the 500 most powerful computers worldwide as of today (Figure 1).
Modern clusters (Figure 2 and 3) are groups of individual, densely packaged servers interconnected by fast local networks (preferably providing high bandwidth and low latency transfers). To increase the computing density even further, hardware-based application accelerators, such as modern general purpose graphics processing units (GPGPUs), have recently become a powerful, cost-effective addition to high-performace computers.