Abstract
In this chapter we present the key steps for parallelizing and optimizing a loop-intensive application, iterative reconstruction of magnetic resonance imaging images, from its sequential form. We start with the appropriate organization of parallelization: the scatter approach versus the gather approach. We show that transforming from a scatter approach to a gather approach is key to avoiding atomic operations, which can significantly reduce the performance of parallel execution. We discuss the practical techniques, that is, loop fission and loop interchange, that are needed to enable the gather approach to parallelization. We further present the application of optimization techniques such as promoting array elements into registers, using constant memory/cache for input elements, and using hardware functions to improve the performance of the parallel kernel.
Original language | English (US) |
---|---|
Title of host publication | Programming Massively Parallel Processors |
Subtitle of host publication | a Hands-on Approach, Fourth Edition |
Publisher | Elsevier |
Pages | 391-414 |
Number of pages | 24 |
ISBN (Electronic) | 9780323912310 |
ISBN (Print) | 9780323984638 |
DOIs | |
State | Published - Jan 1 2022 |
Keywords
- MRI
- Statistical estimation methods
- constant cache
- constant memory
- cross-iteration dependence
- gather parallelization
- iterative methods
- linear solvers
- loop fission
- loop interchange
- matrix-vector multiplication
- non-Cartesian scan trajectory
- scatter parallelization
- signal-to-noise ratio
- trigonometry functions
ASJC Scopus subject areas
- General Computer Science