haku: @keyword mittaus / yhteensä: 49
viite: 10 / 49
Tekijä:Rasa, Marko
Työn nimi:Instrumentation of OpenMP task scheduling
OpenMP tehtävävuoronnuksen instrumentointi
Julkaisutyyppi:Diplomityö
Julkaisuvuosi:2015
Sivut:58      Kieli:   eng
Koulu/Laitos/Osasto:Perustieteiden korkeakoulu
Oppiaine:Ohjelmistotekniikka   (T3001)
Valvoja:Heljanko, Keijo
Ohjaaja:Hirvisalo, Vesa
Elektroninen julkaisu: http://urn.fi/URN:NBN:fi:aalto-201505142687
Sijainti:P1 Ark Aalto  2783   | Arkisto
Avainsanat:parallel
task parallelism
runtime system
measuring
OpenMP
rinnakkaisuus
tehtävärinnakkaisuus
ajonaikainen järjestelmä
mittaus
Tiivistelmä (fin):Rinnakkaislaskentamallit kuten tehtävärinnakkaisuus ovat yhä tärkeämpiä modernien suorittimien skaalautuessa enimmäkseen suoritinytimien lisäämisellä kellotaajuuden kasvattamisen sijaan.
Tehtävien vuoronnus vaatii laskentaresursseja ja voidaan toteuttaa joko ohjelmistolla tai laitteistolla.

Tämän työn tavoite on ollut kehittää mittausjärjestelmä, joka antaa perusmittareita tehtävärinnakkaisuuden tehokkuudesta.
Päähaaste järjestelmän kehittämisessä on mittauksen aiheuttama kuormitus, erityisesti kun tehtävät ovat erittäin hienojakoisia.
Lisätavoite työlle on ollut ymmärtää vuoronnuksen ominaisuuksia OpenMP:n tehtävärinnakkaismallissa.

Valitsimme version 4.9 GCC kääntäjästä ja sen ajonaikaisen järjestelmän (GOMP) konkreettiseksi kohteeksi tutkimukselle.
Kääntäjä toteuttaa työlle oleelliset osat OpenMP 4.0 määritelmästä.
Tehtävien vuoronnus toimii jakamalla tehtäviä työsäikeille.
Tämän mahdollistamiseksi sen täytyy käsitellä riippuvuusrakenteita ja tehtäväjonoja, jotka vaativat koordinointia.
Tutkittu GOMP toteutus käyttää lukkoja tähän tarkoitukseen.

Suunnittelimme ja toteutimme mittausjärjestelmän käyttämällä ohjelmistotehokkuuslaskureita instrumentoimalla ajonaikaisen järjestelmän (GOMP) ja laitteistotehokkuuslaskureita kutsumalla PAPI (Performance Application Programming Interface) funktioita ajonaikaisen järjestelmän sisällä.
Testasimme mittausjärjestelmän toteutteuttamalla tehtävärinnakkaisen version AES:stä (Advanced Encryption Standard), joka tuottaa pienijakoisia tehtäviä.
Testeissä havaitsimme rinnakkaista skaalautumista neljään säikeeseen asti, jonka jälkeen lukon ruuhkautuminen kasvoi nopeasti.

Mittausjärjestelmämme suorituskyvyn ymmärtämiseksi vertasimme instrumentoidun ja instrumentoimattoman ajonaikaisen järjestelmän suorituskykyä.
Kehitetyllä mittausjärjestelmällä on matala mittauskuormitus.
Tiivistelmä (eng):Parallel computing models, such as tasking, are increasingly important as the modern processors are scaled mostly by adding processor cores instead of increasing clock speed.
Scheduling the tasks requires computational resources and can be implemented with either software or hardware.

The goal of the thesis has been to develop a measurement system that is able to yield the basic tasking performance metrics of parallel program execution.
The main challenge in developing such system is the overhead caused by the measuring, especially when tasks are extremely fine grained.
An additional aim for the thesis has been understanding the scheduling properties of OpenMP task parallelism model.

We selected version 4.9 of the GCC compiler and its runtime (GOMP) as the concrete target of our study.
The parts of the OpenMP 4.0 specification that are essential for the study are implemented by the compiler.
The task scheduling operates by assigning tasks to worker threads.
In doing so, it handles dependence structures and task queues, which require synchronisation to ensure correct operation.
The studied GOMP implementation uses locking for that purpose.

We designed and implemented a measuring system using software performance counters by instrumenting the runtime system (GOMP) and hardware counters by calling PAPI (Performance Application Programming Interface) functions inside the runtime system.
We tested the measurement system by implementing a task parallel version of AES (Advanced Encryption Standard), which yields small granularity tasks.
In our tests we observed parallel scaling up to four threads, at which point lock congestion rose rapidly.

To understand the performance of our measurement systems, we compared the performance of instrumented and non-instrumented versions of the runtime system.
The developed measurement system yields low overhead.
ED:2015-05-24
INSSI tietueen numero: 51339
+ lisää koriin
INSSI