C H A P T E R 4 |
Compiling MPI Programs |
This chapter describes the compilers that Sun HPC ClusterTools Software supports for both the Solaris OS and Linux. In addition, it describes changes you might make in your application code to recompile and run programs developed with a previous version of Sun HPC ClusterTools software in Sun HPC ClusterTools 8.
This chapter contains the following topics:
If you previously compiled your application with the tmcc compiler, then you must recompile your applications using the mpicc compiler if you want them to be compatible with Sun HPC ClusterTools 8 software. The tmcc compiler is not supported in Sun HPC ClusterTools 8, and there is no backward compatibility.
For the Solaris OS, Sun HPC ClusterTools 8 software supports Sun Studio 10, 11, and 12 C, C++, and Fortran compilers.
For the Linux OS, the ClusterTools 8 software supports the Sun Studio 12 compilers and the gcc Linux compiler versions 3.3.3, 3.4.6, and 4.1.2.
Sun HPC ClusterTools 8 supplies wrapper compilers for you to use instead of directly calling the compilers when compiling applications for use with the Sun HPC ClusterTools 8 software. These wrapper compilers do not actually perform the compilation and linking steps themselves, but they add the appropriate compiler and linker flags and call the compiler and linker.
Note - Using the wrapper compilers is strongly suggested. If you decide not to use them, the Open MPI Web site at http://www.open-mpi.org contains instructions about how to compile without using them. |
The following wrapper compilers are available:
mpiCC, mpicxx, or mpic++ (Note: mpiCC is for use on case-sensitive file systems only) |
|
For more information about the wrapper compilers, their use, and troubleshooting, see the Open MPI FAQ at:
http://www.open-mpi.org/faq/?category=mpi-apps
Open MPI currently does not support MPI_Accumulate on user-defined types. If you try to use MPI_Accumulate in a program with a user-defined type, the following error message is displayed:
MPI_Accumulate currently does not support reductions with any user-defined types. This will be rectified in a future release. |
In Open MPI, the non-default error handler does not persist, and the default error handler is used. This causes any call used after MPI_Finalize to be aborted.
When you are compiling MPI programs writtern in Fortran 90, you must use the
-xalias=actual switch. Otherwise, your program could fail.
This condition is due to a known condition in the MPI standard. The standard states that “The MPI Fortran binding is inconsistent with the Fortran 90 standard in several respects.” Specifically, the Fortran 90 compiler could break MPI programs that use non-blocking operations.
For more information about this issue, see
http://www-unix.mcs.anl.gov/mpi/mpi-standard/mpi-report-2.0/node19.htm#Node19
Copyright © 2008 Sun Microsystems, Inc. All Rights Reserved.