In a Sun MPI application, each process is identified by a unique rank. This is an integer in the range 0 to np-1, where np is the total number of processes associated with the application.
This use of rank is totally unrelated to references to S3L array ranks. Process ranks correspond to MPI ranks as used in interprocess communication. Array ranks indicate the number of dimensions an array has.
Sun S3L maps each S3L array onto a logical arrangement of processes, referred is to as a process grid. A process grid will have the same number of dimensions as the S3L array with which it is associated. Each S3L array section that is distributed to a particular process is called a subgrid.
Sun S3L controls the ordering of the np processes within the n-dimensional process grid. Figure 2-1through Figure 2-3 illustrate this with examples of how Sun S3L might arrange eight processes in one- and two-dimensional process grids.
In Figure 2-1, the eight processes form a one-dimensional grid.
Figure 2-2 and Figure 2-3 show the eight processes organized into rectangular 2x4 process grids. Although both have 2x4 extents, the array process grids differ in their majorness attribute. This attribute determines the order in which the processes are distributed onto a process grid's axes or local subgrid axes. The two possible modes are:
Column major - Processes are distributed along column axes first; that is, the process grid's row indices increase fastest.
Row major - Processes are distributed along row axes first; the process grid's column indices increase fastest.
In Figure 2-2, subgrid distribution follows a column-major order. In Figure 2-3, process grid distribution is in row-major order.
In these examples, axis numbers are one-based (Fortran-style). For the C-language interface, reduce each value by 1.