AbstractUnderstanding on-node application power and performance karakteristika är avgörande för pushen mot exascale computing. I detta dokument presenterar vi en analys av faktorer som påverkar både prestanda och energianvändning av OpenMP-applikationer. Med hjälp av maskinvaruprestandaräknare i arkitekturen Intel Sandybridge X86-64 mäter vi energiförbrukning och strömdragning för en mängd olika OpenMP-program: enkla mikro-benchmarks, en uppgift parallell riktmärkessvit, och en hydrodynamik miniapp på några tusen linjer. Utvärderingen avslöjar betydande variationer i energianvändningen beroende på algoritmen, kompilatorn, optimeringsnivån, antalet trådar, och även temperaturen på chipet. Variationer på 20% var vanliga och i extrema fall över 2X. I de flesta fall ökar prestandan och energianvändningen minskar när fler trådar används. Dock, för program med sub-linjär speedup, minimal energianvändning sker ofta vid en lägre trådräkning än toppprestanda. Våra resultat informerade om utformningen och genomförandet av ett adaptivt körtidssystem som automatiskt stryper konvergens med hjälp av data som mäts on-line från maskinvaruprestandaräknare. Utan ändringar av källkoden eller användarinterventioner bestämmer trådschemaläggaren exakt när energi kan sparas genom att begränsa antalet aktiva trådar. För målprogrammen minskar dynamisk körning konstant effekt och total energianvändning med upp till 3%. Jämförelsen mellan prestanda och energianvändning har varit ett hinder för flera generationer av råvarumikroprocessorer. Att minska spänningen och klockfrekvensen är en vanlig mekanism för att minska effekten som kan leda till betydande energibesparingar för vissa tillämpningar (se avsnitt V). Ökande frekvens, t.ex., med hjälp av Intels Turbo Boost eller AMD TurboCore, kan spara energi genom att slutföra problemet snabbare (men vanligtvis dra högre effekt). Intels Sandybridge chip ger flera hårdvarutekniker för att styra frekvens och hårdvaruprestanda räknare för att dynamiskt övervaka chipets energianvändning. Med dessa verktyg kan runtime-systemet aktivt delta i avvägningen mellan energi och prestanda. Genom att begränsa antalet aktiva trådar kan körtiden minska det momentana strömbehovet, men effekten på den totala energianvändningen beror på hur den totala drifttiden ändras genom att färre hårdvarugängor körs. När delade maskinvaruresurser (cache på sista nivån, minne eller nätverksbandbredd) övertecknas, kommer en minskning av antalet trådar inte att påverka den totala exekveringstiden i någon större utsträckning. I detta fall kan färre aktiva trådar leda till energibesparingar. Men om det finns
Tidningen av Portield m.fl. REF presenterar en teknik som minskar energiförbrukningen i OpenMP-program genom att strypa konvergensen när både ström- och minnesbandbredden är hög.
Power Measurement and Concurrency Throttling for Energy Reduction in OpenMP Programs
{'venue': '2013 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum', 'journal': '2013 IEEE International Symposium on Parallel & Distributed Processing, Workshops and Phd Forum', 'mag_field_of_study': ['Computer Science']}