Show simple item record

dc.rights.licenseCC-BY-NC-ND
dc.contributor.advisorWolff, Ivo de
dc.contributor.authorMatser, Marien
dc.date.accessioned2023-08-11T00:01:33Z
dc.date.available2023-08-11T00:01:33Z
dc.date.issued2023
dc.identifier.urihttps://studenttheses.uu.nl/handle/20.500.12932/44609
dc.description.abstractParallel execution has a large potential to improve the speed of a program. To make good use of parallelism we need a program that is properly split into several tasks that can be performed in parallel. High level frameworks like Accelerate make it easier to create such programs. Accelerate creates programs using data parallel array computations. For more parallelism we propose a way to automatically add task parallelism to programs as part of the Accelerate compiler. We define a transformation to introduce forks to a program. We formalize this transformation using inference rules and we implement it in the Accelerate compiler. To reduce the overhead of the added task parallelism, we propose several optimizations to not introduce forks where they do not introduce actual opportunities of added parallelism, like not forking trivial statements and combining statements that directly wait on the result of the previous statement. Our results show that the compilation of this implementation is not significantly slower than the current Accelerate compiler.
dc.description.sponsorshipUtrecht University
dc.language.isoEN
dc.subjectWe propose a way to automaticaaly add task parallelism to programs as part of the Accelerate compiler.
dc.titleAutomatic task parallelism in Accelerate
dc.type.contentMaster Thesis
dc.rights.accessrightsOpen Access
dc.subject.keywordsParallelism;Compiler;Task parallelism;Arrays;Haskell
dc.subject.courseuuComputing Science
dc.thesis.id21582


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record