Energy and performance profiling of scientific computing

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu | Master's thesis
Date
2015
Department
Major/Subject
Ohjelmistotekniikka
Mcode
T3001
Degree programme
Tietotekniikan koulutusohjelma
Language
en
Pages
76
Series
Abstract
In this thesis, we study the energy consumption and performance of scientific software. Our goal is to find the causes of energy and power consumption from a software perspective, and then to explore approaches to minimize energy consumption and maximize performance. We use the Intel RAPL (Running Average Power Limit) feature for our energy measurements. RAPL is a built-in hardware feature that estimates the power consumption of the processor package. Overall, we study three specific problem areas. First, we evaluate how suitable the RAPL feature is for energy profiling. Energy profiling requires measuring power consumption at a high sample rate. RAPL updates the energy counters approximately every millisecond, resulting in a fairly high sample rate of 1000 samples per second. Unfortunately, due to the timing of these updates being unpredictable, it is very difficult to take full advantage of the high sample rate. We still think RAPL is suitable for energy profiling but the accuracy is limited. Second, we study the energy consumption and performance of ParFullCMS, which is a high energy physics (HEP) benchmark. We find that power consumption has the highest correlation with the number of instructions executed. In addition, power consumption correlates strongly with cache accesses. We identify a particular power consumption problem with ParFullCMS. The excess code size causes both the micro-operation cache and the L1 instruction cache to perform poorly. In addition, we uncover one "hotspot" with large power consumption. Third, we investigate the power consumption of the instruction decoders in an Intel x86-64 processor. The instruction decoders are responsible for translating x86-64 instructions into simpler micro-operations. We design a set of benchmarks to specifically trigger the instruction decoders. This allows us to measure the power consumption of the instruction decoders. The results show that the instruction decoders consume relatively little power compared to other components in the processor. Therefore, the x86-64 instruction set is not a significant drawback in terms of energy efficiency.

Tässä diplomityössä tutkitaan tieteellisen laskennan energiankulutusta ja suorituskykyä. Tavoitteena on löytää energian- ja tehonkulutuksen syyt ohjelmiston näkökulmasta. Työssä yritetään minimoida energiankulutusta ja maksimoida suorituskyky. Tehonkulutusta mitataan Intelin RAPL (Running Average Power Limit) -toiminnon avulla. RAPL on laitteistoon sisäänrakennettu toiminto, joka arvioi suoritinpiirin tehonkulutuksen. Työ käsittelee kaiken kaikkiaan kolmea aihealuetta. Työssä arvioidaan RAPL-ominaisuuden soveltuvuutta energiaprofilointiin. Energiaprofiloinnissa täytyy pystyä mittamaan tehonkulutusta suurella näytteenottotaajuudella. RAPL päivittää energialaskurit keskimäärin yhden millisekunnin välein, joten näytteenottotaajuus on suhteellisen korkea 1000 näytettä sekunnissa. Valitettavasti korkeaa näytteenottotaajuutta ei pysty kuitenkaan täysin hyödyntämään, koska päivitysten ajoitus ei ole ennustettavaa. Tästä huolimatta RAPL soveltuu silti energiaprofilointiin, mutta tarkkuus on rajallinen. Työssä tutkitaan ParFullCMS:n energiankulutusta ja suorituskykyä. ParFullCMS on suurenergiafysiikan suorituskykytestiohjelma. Tehonkulutus korreloi parhaiten suoritettujen käskyjen määrän kanssa. Se korreloi myös välimuistien käytön kanssa. Työssä havaittiin tietty tehonkulutusongelma ParFullCMS:ssä. Koodin suuren koon takia sekä mikro-operaatio välimuisti että L1-käskyvälimuisti toimivat huonosti. Työssä havaittiin myös "hotspotti", joka kuluttaa suuren määrän tehoa. Työssä selvitetään Intelin x86-64 -suorittimen käskydekoodereiden tehonkulutus. Käskydekooderit muuttavat x86-64 -käskyt yksinkertaisemmiksi mikro-operaatioiksi suorittimen sisällä. Työssä suunnitellaan sarja suorituskykytestejä, jotka käynnistävät käskydekooderit. Tällä tavalla pystytään mittaamaan käskydekoodereiden tehonkulutus. Tulosten perusteella käskydekoodereiden tehonkulutus on suhteellisen pieni verrattuna muihin komponentteihin suorittimessa. Näin ollen x86-64 -käskykanta ei ole merkittävä haittapuoli energiatehokkuuden kannalta.
Description
Supervisor
Nurminen, Jukka
Thesis advisor
Ou, Zhonghong
Keywords
energy-efficiency, energy profiling, performance analysis, RAPL, instruction decoders
Other note
Citation