"Semi-Automatic Parallelisation for Iterative Image Registration with B-splines"
Tamas Farago, Hristo Nikolov, Stefan Klein, Johan H.C. Reiber and Marius Staring
Nonrigid image registration is an important, but resource demanding and time-consuming task in medical image analysis. This limits its application in time-critical clinical routines. In this paper we explore acceleration of a registration algorithm by means of parallel processing. The serial algorithm is analysed and automatically rewritten (re-coded) by a recently introduced automatic parallelisation tool, Daedalus. Daedalus identifies task parallelism (which is more difficult than data parallelism) and converts the serial algorithm to a Polyhedral Process Network (PPN). Each process node in the PPN corresponds to a task that is mapped to a separate thread (of the CPU, but possibly also GPU). The threads communicate via first-in-first-out (FIFO) buffers. Difficulties such as deadlocks, race conditions and synchronisation issues are automatically taken care of by Daedalus. Data-parallelism is not automatically recognised by Daedalus, but can be achieved by manually prefactoring the serial code to make data parallelism explicit. We evaluated the performance gain on a 4-core CPU and compared it to an OpenMP implementation, exploiting only data parallelism. A speedup factor of 3.4 was realised using Daedalus, versus 2.6 using OpenMP. The automated Daedalus approach seems thus a promising means of accelerating image registration based on task parallelisation.