Learning Centre

Elastic control of parallelism in concurrent systems

 |  Login

Show simple item record

dc.contributor Aalto-yliopisto fi
dc.contributor Aalto University en
dc.contributor.advisor Hirvisalo, Vesa
dc.contributor.author Sundholm, Ari
dc.date.accessioned 2015-05-20T12:45:50Z
dc.date.available 2015-05-20T12:45:50Z
dc.date.issued 2014
dc.identifier.uri https://aaltodoc.aalto.fi/handle/123456789/16135
dc.description.abstract Using heterogeneous systems with accelerators, especially graphics processing units (GPUs), for high-performance computing is an emerging field. Dynamic variation of the resource demands of a parallel computation task can lead to significant underutilization of the devices, as the remaining resources in an accelerator may not allow for additional tasks to run. Computing on an accelerator, a graphics processing unit in particular, is rather rigid. Computations are run one at a time by a single user at a time to completion and there is very limited support for running multiple tasks concurrently. Additionally, a computational task may require more resources than a device can offer. These issues necessitate elastic computing, where the resource demands of a task can be altered to make the task fit the remaining resources. Elastic computing is particularly useful in video encoding and decoding, as the various primitives with differing resource requirements and computational dimensions can be elastically offloaded to accelerators. This thesis presents CUDA Wrapper, an API-level virtualization layer prototype for GPUs, implemented on top of CUDA, for dynamically and elastically running computational kernels on multiple GPUs while exploiting task-level parallelism both on an inter-and intra-device level. The prototype assumes that elastic kernels are used. This allows for changing the computational dimensions of kernel launches to make them fit the available resources. The GPUs are accessed through a resource pool which abstracts the GPUs away, allowing the application to be completely agnostic to the number of GPUs available. The approach is shown to work rather well. CUDA Wrapper accurately estimates the resource usage of the GPUs and achieves reasonable occupancy levels with an HEVC-inspired workload. en
dc.description.abstract Kiihdyttimiä, erityisesti grafiikkakiihdyttimiä sisältävien heterogeenisten järjestelmien käyttö suurteholaskentaan on kehittyvä ala. Rinnakkaisen laskentatehtävän resurssivaatimusten dynaaminen vaihtelu voi johtaa merkittävään laitteiden alikäyttöön koska kiihdyttimen jäljellä olevat resurssit eivät välttämättä salli lisälaskentatehtävien ajamista. Laskenta kiihdyttimellä, erityisesti grafiikkakiihdyttimellä, on varsin jäykkää. Laskennat ajaa yksi käyttäjä yksi kerrallaan alusta loppuun ja tuki useiden tehtävien ajolle rinnakkain on hyvin rajoitettu. Lisaksi laskentatehtävä voi vaatia enemmän resursseja kuin laite voi tarjota. Nämä seikat tekevät välttämättömäksi elastisen laskennan, jossa laskentatehtävän resurssivaatimuksia voidaan muuttaa sen sovittamiseksi jäljellä oleviin resursseihin. Elastinen laskenta on erityisen hyödyllistä videokoodauksessa ja -dekoodauksessa, silla monenlaiset primitiivit erilaisilla resurssivaatimuksilla voidaan siirtää kiihdytinten laskettaviksi. Tämä diplomityö esittää CUDA Wrapperin, API-tason virtualisointikerrosprototyypin, joka on toteutettu CUDAn päälle laskentakernelien ajamiseksi dynaamisesti ja elastisesti useilla grafiikkakiihdyttimillä käyttäen hyväksi tehtävätason rinnakkaisuutta sekä laitteiden välillä että yksittäisen laitteen sisällä. Prototyyppi olettaa, että kernelit ovat elastisia. Tämä mahdollistaa kernelkäynnistysten laskennallisten dimensioiden muuttamisen niiden sovittamiseksi saatavilla oleviin resursseihin. Grafiikkakiihdyttimiin päästään käsiksi resurssipoolin kautta, joka abstrahoi kiihdyttimet mahdollistaen sovelluksen täydellisen agnostisuuden kiihdytinten määrän suhteen. Tämän lähestymistavan näytetään toimivan varsin hyvin. CUDA Wrapper arvioi täsmällisesti grafiikkakiihdytinten resurssienkäytön ja saavuttaa kohtuullisia käyttöastetasoja kuormalla, joka on HEVCin inspiroima. fi
dc.format.extent 63 s.
dc.format.mimetype application/pdf
dc.language.iso en en
dc.title Elastic control of parallelism in concurrent systems en
dc.title Elastinen rinnakkaisuuden hallinta rinnakkaisissa järjestelmissä fi
dc.type G2 Pro gradu, diplomityö fi
dc.contributor.school Perustieteiden korkeakoulu fi
dc.contributor.school Perustieteiden korkeakoulu fi
dc.subject.keyword kiihdyttimet fi
dc.subject.keyword grafiikkasuorittimet fi
dc.subject.keyword virtualisointi fi
dc.subject.keyword HEVC fi
dc.subject.keyword accelerators en
dc.subject.keyword graphics processing units en
dc.subject.keyword virtualization en
dc.identifier.urn URN:NBN:fi:aalto-201505212831
dc.type.dcmitype text en
dc.programme.major Ohjelmistotekniikka fi
dc.programme.mcode T-106
dc.type.ontasot Diplomityö fi
dc.type.ontasot Master's thesis en
dc.contributor.supervisor Saikkonen, Heikki
local.aalto.openaccess yes
local.aalto.digifolder Aalto_92281
dc.rights.accesslevel openAccess
local.aalto.idinssi 49364
dc.type.publication masterThesis
dc.type.okm G2 Pro gradu, diplomityö


Files in this item

This item appears in the following Collection(s)

Show simple item record

Search archive


Advanced Search

article-iconSubmit a publication

Browse

Statistics