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.