High performance computingheterogeneity and programmability
- Acosta Díaz, Alfredo Alejandro
- Francisco Almeida Rodriguez Zuzendaria
Defentsa unibertsitatea: Universidad de La Laguna
Fecha de defensa: 2015(e)ko abendua-(a)k 10
- Casiano Rodríguez León Presidentea
- Rafael Asenjo Plaza Idazkaria
- Horacio Gonzalez Velez Kidea
Mota: Tesia
Laburpena
High Performance Computing (HPC) has quickly become a critical tool for research that is helping to modernize industry and enhance economic development. The announced end of Moore's Law prevented the further development and enhancement of CPU performance, thus forcing manufacturers to adapt the architecture of CPUs in order to be able to continue offering improved performance. Multicore architecture has emerged as a solution to keep offering increased performance. In this case, the number of computing cores has increased to get more performance. This technology has been extended to the graphics processors, and, as result of this, the GPU (Graphics Processing Unit) is used for general-purpose computation (GPGPU General Purpose Computation on Graphics Hardware). Many of the systems of the TOP500 list are composed by multicore processors and some kind of hardware accelerators like GPUs. To maintain performance levels, the supercomputers of the future will be built using these architectural models. These new designs in the processor architecture not only affect the supercomputer's architecture but also the computing capability of desktop computers and handheld systems such as the mobile devices (smartphones, tablets,...). Currently, these mobile devices integrate multicore architectures and accelerators like a GPU or DSP that can share the memory between the computational units; by way of example, some of these recent commodity architectures offer 8 CPU cores (Samsung Exynos) and 192 processor cores in the GPU (NVIDIA Tegra). The incremental computing demands being made from the mobile devices (image and video processing, augmented reality, etc) is added to the already recognised demands of supercomputing in applications in the fields of science and engineering. The level of heterogeneity in current systems makes it that more difficult to develop applications that take advantage of available performance capabilities. On one hand, there exists the problem of programming such systems; the proposed programming models are highly complex and therefore require the expertise of expert programmers. On the other hand, there is also the issue of portability; many applications have to be redesigned and reimplemented for each computational unit as a result of the different architectures and programming models and their restrictions. The following sections discuss the challenges encountered when exploiting high performance heterogeneous systems, specifically the challenges associated with programmability, and challenges associated with portability in terms of source code and efficiency. These challenges, in addition to hindering progress towards achieving common high-level programming models, may also potentially limit performancein heterogeneous systems.