Most image processing algorithms can be parallelized by splitting parallel loops and by using very few communication patterns. Code parallelization using MPI still involves much programming overheads. In order to reduce these overheads, we first developed a small SPMD library (SPMDlib) on top of MPI. The programmer can use the library routines themselves, because they are easy to learn and to apply, even without knowing MPI. However, in order to increase user-friendliness, we also develop a small set of parallelization and communication directives/pragmas (SPMDdir), together with a parser that converts these into library calls. SPMDdir will be used to develop a new version of SPMDlib. This new version will contain much less but generic routines that can be optimized for different network topologies. Extensions for Fortran 90/95 and C will be discussed, as well as communication optimizations.
Paulo F. Oliveira, J. M. Hans du Buf