Why The Message Passing Interface, MPI?
For
reasons of program simplicity, portability across systems, and costs
associated with testing and maintenance, MPI is today's clear choice
for parallel programming. It is particularly appealing for two reasons:
its development is supported by the U.S. government, and perhaps most
importantly, it is an agreed upon, common standard for companies that
produce high performance computers.
Even a very small subset of the MPI functions are enough to harness the
power of supercomputers and clustered desktop computers such as Beowulf
systems. The current version of MPI is MPI2. This system of functions
makes parallelization of C/C++ or Fortran serial programs a relatively
simple exercise, whether the parallelized form is embarrassingly
parallel or a more sophisticated forms of parallelization.
But why C++? Why not Java?
Because Java has become the standard teaching language, it would
seem sensible that this introductory text would write code in Java.
However, there is no Java-MPI standard, so most people do not use Java
when running programs under MPI.
Although C and C++ have their share of teaching barriers, simple C/C++
programs, when compared to Java, are pleasantly similar.
This is particularly true when, as in Supercomputing
Simplified, the housekeeping aspects of C/C++ are already laid out and
can be copied by the beginning programmer.
Please see Java vs. C++ for more information.