This chapter will help you, the algorithm designer, to leave the parallel algorithm design abstract enough to support portability while ensuring that it can eventually be implemented effectively for the parallel systems on which it will be executed.
The Algorithm Structure Design Space in Parallel Programming
2005-03-13 General Development 1 Comment
Using MPI will ensure that your application can run on any platform where there is an implementation of the standed. It removes the algorith designer/programmer from worrying about the network topology. Figuring out how to structure your program will depend on the problem, and to some degree whether your target is a shared or distibuted memory system. I skimmed through this chapter, and while it gives a good overview, this alone won’t help you become a good parallel application designer.
Several project attempt to remove the need for a programmer to explicity parallelize their application – one of these is http://www.cactuscode.org