Skip to Main Content
Software patterns codify the collective knowledge and experience of software experts. Over the years, the parallel programming community has accumulated a significant amount of experience in the form of software patterns. We show that parallel programming patterns can be used in medical imaging applications on multicore platforms. We discuss two problem decomposition patterns – task and data decomposition, which can be used to expose concurrency in programming tasks; and three program structuring patterns – task parallelism, data parallelism, and pipelining, which can be exploited to structure a parallel program. We illustrate how to use those patterns to improve the startup time, runtime throughput, and algorithm reliability in medical image viewing, visualization, and analysis on multicore platforms. Our experience suggests that the computing power provided by multicore and many core platforms can be systematically exploited in medical imaging applications by following the best practices established by software patterns for parallel programming.