Parallel Algorithm Development Flashcards
What is data decomposition?
The data on which the computations are performed is partitioned. This turns a single task across a lot of data into a single task across many smaller chinch’s of data
What is task decomposition?
By splitting the tasks into independent task groups. These groups of task can be done without interference of another processor/thread.
What is loop decomposition? And what is a challenge faced when implementing loop decomposition?
It involves splitting a loop between threads/processors by allocating loops in chunks or in a round robin fashion to each thread/processor. An issue that can be run into is with data decencies i.e. a loop has a decency on the outcome of a previous loop
How does a forall loop parallelism type work?
Each assignment is treated like as a separate array assignment and thus uses up to date assignment of previous and subsequent array values.
How does a dopar for loop parallelism work?
Updates in one iteration are not visible to other iterations and therefore values of array are equal to the initial assignment before the loop has started