Optimizations for Energy Efficiency within Distributed Memory Programming Models
Jana, Siddhartha 1989-
MetadataShow full item record
With the breakdown of Dennard Scaling and Moore's law, power consumption appears to be a primary challenge on the pathway to exascale computing. Extreme Scale Research reports indicate the energy consumption during movement of data off-chip is orders of magnitude higher than within a chip. The direct outcome of this has been a rising concern about the energy and power consumption of large-scale applications that rely on various communication libraries and parallelism constructs for distributed computing. While innovative designs of hardware set the upper bounds for power consumption, there is a need for the software to adapt itself to achieve maximum efficiency at minimal joules. This work presents detailed analyses of multiple factors within the software stack, that affect the energy consumption of large scale distributed memory HPC applications and programming environments. As part of this empirical analyses, we isolate multiple constraints imposed by the communication, memory, and the execution model that affect energy profiles of such applications. With regards to the communication model, empirical analyses in this thesis reveals significant impact due to constraints like the size of the data payload being transferred, the number of data fragments, the overhead of memory management, the use of additional OS threads, as well as the hardware design of the underlying processor. Additional software design characteristics that have been shown to have a significant impact on communication-intensive kernels include -- the design of remote data-access patterns (greater than 40\% energy savings), the transport layer protocols (25X improvement in bytes/joules) as well as the choice of the interconnect (760X improvement in bytes/joules). This dissertation also revisits a two-decade-old programming paradigm - Active Messages, and presents empirical evidence that suggests that integrating it within current SPMD execution models leads to significant performance and energy efficiency. It is hoped that the work presented in this literature paves the way for taking software design into consideration while designing current and future large-scale energy-efficient systems operating within a power budget.