This chapter describes the differences in support for the Message Passing Toolkit (MPT) on IRIX and Linux systems. For general information on using MPT under Linux, see the Message Passing Toolkit (MPT) User's Guide.
The compile and link syntax for MPI programs is similar on IRIX and Linux systems. See the mpi(1) man page for more specific information and compiler command syntax.
On Linux, SHMEM programs are launched using the mpirun command on one or more Altix partitions or hosts. On IRIX, SHMEM programs were started by setting the NPES environment variable and running the executable program directly.
On IRIX systems, SHMEM processes start via a fork in the start_pes() function call. On Linux systems, the SHMEM processes are MPI processes that are forked prior to entry of the main program.
See the shmem(3) man page for more information.
On IRIX systems, MPI will automatically distribute the program's processes in a reasonable way across the CPUs within the system or a cpuset using the Memory Management Control Interface (MMCI) interface provided in IRIX.
On Linux systems, MPI will distribute the processes from CPU 0 to N-1 on the system or within a cpuset when exclusive execution mode is selected. MPI's exclusive execution mode can be activated in a couple ways. One way is for the user to set the MPI_DSM_DISTRIBUTE environment variable. Alternatively, when LSF launches an MPI program into cpusets that are dedicated to this program, it will set exclusive execution mode in the launched MPI program.
See the mpi(1) man page for more information.
The dplace command can also be used to specify NUMA placement of MPI, OpenMP, and other parallel programs on IRIX and Linux systems. The dplace command syntax is substantially revised on Linux systems.
On IRIX, MPI programs were started this way using dplace:
%mpirun -np 4 dplace -place placement_file a.out |
On Linux, MPI programs were started this way using dplace:
%mpirun -np 4 dplace -s1 a.out |
See the dplace(1) man page for more information.
On IRIX systems, SGI SpeedShop and perfex are available for monitoring performance of parallel programs. On Linux, the profile.pl tool is available for this purpose. You can run profile.pl with MPI in this way:
%mpirun -np 4 profile.pl -s1 a.out |
On IRIX systems, the relnotes command could be used to read MPT release notes. On Linux systems, you can find the name of the file containing release notes information using this command:
%rpm -ql sgi-mpt | grep relnotes |
On IRIX systems, the optimized MPI data transfer methods were never implemented for MPI programs that are run across multiple partitions. On Linux systems, the latency and bandwidth of MPI communication is the same whether you are communication inside a single host or between partitions. The only effect on performance will arise from the number of hardware routers that lie in the path between the CPUs that are running the MPI processes.
You can install SCSL, MPT, and other library packages in alternate locations using Software Modules on Linux. However, the rich set of compiler wrapper scripts (for example. cc and f77) do not exist on Linux. Therefore, you need to specify the -I and -L options when compiling or linking with libraries that are installed in alternate locations.
The following table summarizes the MPT features that are available on IRIX only and the MPT features that are available on Linux only.
Table 6-1. System-Specific MPT features
IRIX only | Linux only |
|---|---|
Support for 48p x 128p clusters | Optimized MPI send/ across partitions |
Support for up to 512p single hosts | MPI one-sided across partitions |
Support for checkpoint and restart (CPR) | SHMEM across partitions |
Fortran 90 compile-time MPI interface checking |
|
MPI-2 capabilities |
|
Support for MPI_Comm_spawn and MPI_Comm_spawn_multiple |
|
Thread safety |
|
USEM MPI Fortran 90 statement support |
|