IBM Books

IBM PE for AIX V2R4.0: Operation and Use, Vol. 1


Appendix A. Parallel Environment Commands

This appendix contains the manual pages for the PE commands discussed throughout this book. Each manual page is organized into the sections listed below. The sections always appear in the same order, but some appear in all manual pages while others are optional.

NAME
Provides the name of the command described in the manual page, and a brief description of its purpose.

SYNOPSIS
Includes a diagram that summarizes the command syntax, and provides a brief synopsis of its use and function. If you are unfamiliar with the typographic conventions used in the syntax diagrams, see "Typographic Conventions".

FLAGS
Lists and describes any required and optional flags for the command.

DESCRIPTION
Describes the command more fully than the NAME and SYNOPSIS sections.

ENVIRONMENT VARIABLES
Lists and describes any applicable environment variables.

EXAMPLES
Provides examples of ways in which the command is typically used.

FILES
Lists and describes any files related to the command.

RELATED INFORMATION
Lists commands, functions, file formats, and special files that are employed by the command, that have a purpose related to the command, or that are otherwise of interest within the context of the command.

mcp

NAME

mcp - Allows you to propagate a copy of a file to multiple nodes on an IBM POWERparallel system.

SYNOPSIS

mcp infile [outfile] [POE options]

In the command synopsis above, the infile is the name of the file to be copied. You can copy to a new name by specifying an outfile. If you do not provide the outfile name, the file will be placed in its current directory on each node. The outfile can be either an explicit output file name or a directory name. When a directory is specified, the file is copied with the same name to that directory.

DESCRIPTION

The mcp command allows you to propagate a copy of a file to multiple nodes on an IBM RS/6000 SP. The file must initially reside (or be NFS-mounted) on at least one node.

mcp is a POE program and, therefore, all POE options are available. You can set POE options with either command line flags or environment variables. The number of nodes to copy the file to (-procs), and the message passing protocol used to copy the file (-euilib) are the POE options of most interest. The input file must be readable from the node assigned to task 0.
Note:A POE job loads faster if a copy of the job resides on each node. For this reason, it is suggested that you use mcp to copy your executable to a file system such as /tmp, which resides on each node.

Return codes are:
Note:The actual command return code value is 128 plus the unsigned return code value. That is, a return code of -2 will give a value of 130. For more information, see the "Exit Status" section in IBM Parallel Environment for AIX: MPI Programming and Subroutine Reference

-1

incorrect usage

-2

error opening input file

-3

error opening to file on originating node

-4

error writing data to to file on originating node

-5

no room on remote node's file system

-6

error opening file on remote node

-7

error writing data on remote node

-8

error renaming temp file to file name

-9

input file is empty

-10

invalid block size

-11

error allocating storage

ENVIRONMENT VARIABLES

MP_BLKSIZE
sets the block size used for copying the data. This can be a value between 1 and 8,000,000 (8 megabytes). The default is 100,000 (100K).

EXAMPLES

  1. To copy a file from your current directory to the current directory on all nodes of a 16-processor system, using the High Performance Switch, enter:
    mcp filename -procs 16 -euilib us
    

  2. To copy a filename from your current directory to the /tmp directory on all nodes of a 16-processor system, using IP, enter:
    mcp filename /tmp -procs 16 -euilib ip
    

  3. To copy a file from your current directory to a different filename on all nodes of a 16-processor system, enter:
    mcp filename /tmp/newfilename -procs 16
    

RELATED INFORMATION

Commands: mprcp(1), rcp(1)

mcpgath

NAME

mcpgath - Takes files from each task of tasks 0 through task N and copies them back in sequence to task 0.

SYNOPSIS

mcpgath [-ai] source ... destination [POE options]

Source is one of the following:

Destination is an existing destination directory name to where the data will be copied. The destination directory must be the last item specified before any POE flags.

FLAGS

-a

An optional flag that appends the task number to the end of the file name when it is copied to task 0. This is for task identification purposes, to know where the data came from. The -a and -i flags can be combined to check for existing files appended with the task number.

-i

An optional flag that checks for duplicate or existing files of the same name, and does not replace any existing file found. Instead, issues an error message and continues with the remaining files to be copied. The -a and -i flags can be combined to check for existing files appended with the task number.

See "Executing Parallel Programs" for information on POE options.

DESCRIPTION

The mcpgath function determines the list of files to be gathered on each task. This function also resolves the source file, destination directory, and path names with any meta characters, wildcard expansions, etc. to come up with valid file names. Wildcards should be enclosed in double quotes, otherwise they will be expanded locally on the task from where the command is issued, which may not produce the intended file name resolution.

mcpgath is a POE program and, therefore, all POE options are available. You can set POE options with either command line flags or environment variables. The number of nodes to copy the file to (-procs), and the message passing protocol used to copy the file (-euilib) are the POE options of most interest.
Note:A default of 100K data block size is used for copying the data. This can be changed by updating the source found in /usr/lpp/ppe.poe/samples/mpi, and compiling it with the mpcc command.

Return codes are:
Note:The actual command return code value is 128 plus the unsigned return code value. That is, a return code of -2 will give a value of 130. For more information, see the "Exit Status" section in IBM Parallel Environment for AIX: MPI Programming and Subroutine Reference

-1

invalid number of arguments specified

-2

invalid option flag specified

-3

unable to resolve input file name(s)

-4

could not open input file for read

-5

no room on destination node's file system

-6

error opening file output file

-7

error creating output file

-8

error writing to output file

-9

MPI_Send of data failed

-10

final MPI_Send failed

-11

MPI_Recv failed

-12

invalid block size

-13

error allocating storage

-14

total number of tasks must be greater than one

ENVIRONMENT VARIABLES

MP_BLKSIZE
sets the block size used for copying the data. This can be a value between 1 and 8,000,000 (8 megabytes). The default is 100,000 (100K).

EXAMPLES

  1. You can copy a single file from all tasks into the destination directory. For example, enter:
    mcpgath -a hello_world /tmp -procs 4
    

    This will copy the file hello_world (assuming it is a file and not a directory) from tasks 0 through 3 as to task 0:

    From task 0:  /tmp/hello_world.0
     
    From task 1:  /tmp/hello_world.1
     
    From task 2:  /tmp/hello_world.2
     
    From task 3:  /tmp/hello_world.3
    

  2. You can specify any number of files as source files. The destination directory must be the last item specified before any POE flags. For example:
    mcpgath -a file1.a file2.a file3.a file4.a file5.a /tmp -procs 4
    

    will take file1.a through file5.a from the local directory on each task and copy them back to task 0. All files specified must exist on all tasks involved. The file distribution will be as follows:

    From Task 0: /tmp/file1.a.0
     
    From Task 1: /tmp/file1.a.1
     
    From Task 2: /tmp/file1.a.2
     
    From Task 3: /tmp/file1.a.3
     
    From Task 0: /tmp/file2.a.0
     
    From Task 1: /tmp/file2.a.1
     
    From Task 2: /tmp/file2.a.2
     
    From Task 3: /tmp/file2.a.3
     
    From Task 0: /tmp/file3.a.0
     
    From Task 1: /tmp/file3.a.1
     
    From Task 2: /tmp/file3.a.2
     
    From Task 3: /tmp/file3.a.3
     
    From Task 0: /tmp/file4.a.0
     
    From Task 1: /tmp/file4.a.1
     
    From Task 2: /tmp/file4.a.2
     
    From Task 3: /tmp/file4.a.3
     
    From Task 0: /tmp/file5.a.0
     
    From Task 1: /tmp/file5.a.1
     
    From Task 2: /tmp/file5.a.2
     
    From Task 3: /tmp/file5.a.3
    

  3. You can specify wildcard values to expand into a list of files to be gathered. For this example, assume the following distribution of files before calling mcpgath:
    Task 0 contains file1.a and file2.a
     
    Task 1 contains file1.a only
     
    Task 2 contains file1.a, file2.a, and file3.a
     
    Task 3 contains file4.a, file5.a, and file6.a
    

    Enter:

    mcpgath -a "file*.a" /tmp -procs 4
    

    This will pass the wildcard expansion to each task, which will resolve into the list of locally existing files to be copied. This will result in the following distribution of files on task 0:

    From Task 0: /tmp/file1.a.0
     
    From Task 0: /tmp/file2.a.0
     
    From Task 1: /tmp/file1.a.1
     
    From Task 2: /tmp/file1.a.2
     
    From Task 2: /tmp/file2.a.2
     
    From Task 2: /tmp/file3.a.2
     
    From Task 3: /tmp/file4.a.3
     
    From Task 3: /tmp/file5.a.3
     
    From Task 3: /tmp/file6.a.3
    

  4. You can specify a directory name as the source, from which the files to be gathered are found. For this example, assume the following distribution of files before calling mcpgath:
    Task 0 /test contains file1.a and file2.a
     
    Task 1 /test contains file1.a only
     
    Task 2 /test contains file1.a and file3.a
     
    Task 3 /test contains file2.a, file4.a, and file5.a
    

    Enter:

    mcpgath -a /test /tmp -procs 4
    

    This results in the following file distribution:

    From Task 0: /tmp/file1.a.0
     
    From Task 0: /tmp/file2.a.0
     
    From Task 1: /tmp/file1.a.1
     
    From Task 2: /tmp/file1.a.2
     
    From Task 2: /tmp/file3.a.2
     
    From Task 3: /tmp/file2.a.3
     
    From Task 3: /tmp/file4.a.3
     
    From Task 3: /tmp/file5.a.3
    

mcpscat

NAME

mcpscat - Takes a number of files from task 0 and scatters them in sequence to all tasks, in a round robin order.

SYNOPSIS

mcpscat [-f] [-i] source ... destination
[POE options]

Source can be one of the following:

Destination is an existing destination directory name to where the data will be copied.

FLAGS

-f

Is an optional flag that says the first file contains the names of the source files that are to be scattered. Each file name, in the file, must be specified on a separate line. No wildcards are supported when this option is used. Directory names are not supported in the file either. When this option is used, the mcpscat parameters should consist of a single source file name (for the list of files) and a destination directory. The files will then be scattered just as if they had all been specified on the command line in the same order as they are listed in the file.

-i

Checks for duplicate or existing files of the same name, and does not replace any existing file found. Instead, issues an error message and continues with the remaining files to be copied. Without this flag, the default action is to replace any existing files with the source file.

See "Executing Parallel Programs" for information on POE options.

DESCRIPTION

The mcpscat function determines the order in which to distribute the files, using a round robin method, according to the list of nodes and number of tasks. Files are sent in a one-to-one correspondence to the nodes in the list of tasks. If the number of files specified is greater than the number of nodes, the remaining files are sent in another round through the list of nodes. Wildcards should be enclosed in double quotes, otherwise they will be expanded locally on the task from where the command is issued, which may not produce the intended file name resolution.

mcpscat is a POE program and, therefore, all POE options are available. You can set POE options with either command line flags or environment variables. The number of nodes to copy the file to (-procs), and the message passing protocol used to copy the file (-euilib) are the POE options of most interest.

Return codes are:
Note:The actual command return code value is 128 plus the unsigned return code value. That is, a return code of -2 will give a value of 130. For more information, see the "Exit Status" section in IBM Parallel Environment for AIX: MPI Programming and Subroutine Reference

-1

invalid number of arguments specified

-2

invalid option flag specified

-3

unable to resolve input file name(s)

-4

could not open input file for read

-5

no room on destination node's file system

-6

error opening file output file

-7

error creating output file

-8

MPI_Send of data failed

-9

final MPI_Send failed

-10

MPI_Recv failed

-11

failed opening temporary file

-12

failed writing temporary file

-13

error renaming temp file to filename

-14

input file is empty (zero byte file size)

-15

invalid block size

-16

error allocating storage

-17

number of tasks and files do not match

-18

not enough memory for list of file names

ENVIRONMENT VARIABLES

MP_BLKSIZE
sets the block size used for copying the data. This can be a value between 1 and 8,000,000 (8 megabytes). The default is 100,000 (100K).

EXAMPLES

  1. You can copy a single file to all tasks into the destination directory. For example, enter:
    mcpscat filename /tmp -procs 4
    

    This will take the file and distribute it to tasks 0 through 3 as /tmp/filename.

  2. You can specify any number of files as source files. The destination directory must be the last item specified before any POE flags. For example:
    mcpscat file1.a file2.a file3.a file4.a file5.a /tmp -procs 4
    

    will take file1.a through file5.a from the local directory and copy them in a round robin order to tasks 0 through 3 into /tmp. The file distribution will be as follows:

    Task 0: /tmp/file1.a
     
    Task 1: /tmp/file2.a
     
    Task 2: /tmp/file3.a
     
    Task 3: /tmp/file4.a
     
    Task 0: /tmp/file5.a
    

  3. You can specify the source files to copy in a file. For example:
    mcpscat -f file.list /tmp -procs 4
    

    will produce the same results as the previous example if as file.list contains five lines with the file names file1.a through file5.a in it.

  4. You can specify wildcard values to expand into a list of files to be scattered. Enter:
    mcpscat "file*.a" /tmp -procs 4
    

    Assuming Task 0 contains file1.a, file2.a, file3.a, file4.a, and file5.a in its home directory, this will result in a similar distribution as in the previous example.

  5. You can specify a directory name as the source, from which the files to be scattered are found. Assuming /test contains myfile.a, myfile.b, myfile.c, myfile.d, myfile.f, and myfile.g on Task 0, enter:
    mcpscat /test /tmp -procs 4
    

    This results in the following file distribution:

    Task 0: /tmp/myfile.a
     
    Task 1: /tmp/myfile.b
     
    Task 2: /tmp/myfile.c
     
    Task 3: /tmp/myfile.d
     
    Task 0: /tmp/myfile.f
     
    Task 1: /tmp/myfile.g
    

mpamddir

NAME

mpamddir - echoes an amd-mountable directory name.

SYNOPSIS

mpamddir
 
 
 
or, if you're using the Parallel Environment for AIX:
 
 
 
export MP_REMOTEDIR=mpamddir

This script determines whether or not the current directory is a mounted file system. If it is, it looks to see if it appears in the amd maps, and constructs a name for the directory that is known to amd. You can modify this script, or create additional ones that apply to your installation.

By default, POE uses the Korn shell pwd command to obtain the name of the current directory to pass to the remote nodes for execution. This works for C shell users if the current directory is:

If this is not the case, (for example, if the user's current directory is a subdirectory of the home directory), then you can supply your own script for providing the name of the current directory on the remote nodes.

To use mpamddir as the script for providing the name, export the environment variable MP_REMOTEDIR, and set it to mpamddir.

RELATED INFORMATION

Commands: ksh(1), poe(1), csh(1)

mpcc

NAME

mpcc - Invokes a shell script to compile C programs.

SYNOPSIS

mpcc [cc_flags]... program.c

The mpcc shell script compiles C programs while linking in the Partition Manager, Message Passing Interface (MPI), and/or Message Passing Library (MPL).

FLAGS

Any of the compiler flags normally accepted by the cc command can also be used on mpcc. For a complete listing of these flag options, refer to the manual page for the AIX cc command. Typical options to mpcc include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed for debugging with the pdbx and pedb debuggers, and is also needed by the Source Code view of the Visualization Tool (vt).

-o

names the executable.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

DESCRIPTION

The mpcc shell script calls the AIX xlc compiler. In addition, the Partition Manager and message passing interface are automatically linked in. The script creates an executable that dynamically binds with the message passing libraries. If you wish to create a statically bound application, use the instructions in "Creating a Static Executable" in place of this script.

Flags are passed by mpcc to the xlc command, so any of the xlc options can be used on the mpcc shell script. The communication subsystem library implementation is dynamically linked when you invoke the executable using the poe command. The value specified by the MP_EUILIB environment variable or the -euilib flag will then determine which communication subsystem library implementation is dynamically loaded.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

EXAMPLES

To compile a C program, enter:

mpcc program.c -o program

FILES

When you compile a program using mpcc, the following libraries are automatically selected:

/usr/lpp/ppe.poe/lib/libmpi.a (Message Passing Interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc.a (POE version of libc.a)

RELATED INFORMATION

Commands: mpcc_r(1), mpCC(1), mpCC_r(1), mpxlf(1), cc(1), pdbx(1), pedb(1), vt(1), xprofiler(1)

mpcc_chkpt

NAME

mpcc_chkpt - Invokes a shell script to compile checkpointable C programs.

SYNOPSIS

mpcc_chkpt [cc_flags]... -us | -ip program.c

The mpcc_chkpt shell script compiles C programs while linking in the Partition Manager, Message Passing Interface (MPI), and support code for parallel Checkpoint/Restart. It builds an executable with no shared objects.

FLAGS

Most of the compiler flags normally accepted by the cc command can also be used on mpcc_chkpt. For a complete listing of these flag options, refer to the manual page for the AIX cc command. Typical options to mpcc_chkpt include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed for debugging with the pdbx and pedb debuggers, and is also needed by the Source Code view of the Visualization Tool (vt).

-o

names the executable.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-ip

specifies that the executable is bound with the UDP/IP message passing support library.

-us

specifies that the executable is bound with the RS/6000 SP User Space message passing library. Executables using this option should be compiled on an RS/6000 SP node compatible with the node on which execution will occur.

DESCRIPTION

The mpcc_chkpt shell script invokes the AIX cc command. The Partition Manager, message passing interface, and checkpoint support code are automatically linked in. The script creates an executable with no shared obects. This executable must be run on a node of the same machine type and having the same level of system software as the machine on which the executable is built. The executable is not binary compatible over changes to the system software.

Flags are passed by mpcc_chkpt to the cc command, so most of the cc options can be used on the mpcc_chkpt shell script. Options which would generate shared objects should not be used.

At execution time, the value specified by the MP_EUILIB environment variable or the -euilib flag must match the -ip | -us option specified when this command was run.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

EXAMPLES

To compile a C program, enter:

mpcc_chkpt program.c -o program

FILES

When you compile a program using mpcc_chkpt, the following libraries are automatically included:

/usr/lpp/ppe.poe/lib/libmpi.a (Message Passing Interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc.a (POE version of libc.a)
/usr/lpp/LoadL/nfs/lib/chkrst.a (LoadLeveler checkpoint/support)

When the -us option is selected, the following libraries are included:

/usr/lpp/ppe.poe/lib/us/libmpci.a (PSSP message passing interface)
/usr/lpp/ssp/css/lib/hal.a (PSSP User Space adapter interface)
/usr/lib/swclock.o (PSSP Switch clock interface)

When the -ip option is selected, the following libraries are included:

/usr/lpp/ppe.poe/lib/ip/libmpci.a (PSSP message passing interface)

RELATED INFORMATION

Commands: mpcc(1), mpCC_chkpt(1), mpxlf_chkpt(1)

mpcc_r

NAME

mpcc_r - Invokes a shell script to compile C programs which use threaded MPI.

SYNOPSIS

mpcc_r [cc_flags]... program.c

The mpcc_r shell script compiles C programs while linking in the Partition Manager, the threaded implementation of Message Passing Interface (MPI), and Low-level Applications Programming Interface (LAPI).

FLAGS

Any of the compiler flags normally accepted by the xlc_r or cc_r command can also be used on mpcc_r. For a complete listing of these flag options, refer to the manual page for the AIX cc_r command. Typical options to mpcc_r include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed for debugging with the pdbx and pedb debuggers, and is also needed by the Source Code view of the Visualization Tool (vt).

-o

names the executable.

-d7

compiles the program with POSIX Threads Draft 7 base MPI and compatibility libraries. Otherwise, POSIX Threads Draft 10 base libraries are used.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.
Note:Not all AIX libraries are thread safe. Verify that your intended use is supported.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

DESCRIPTION

The mpcc_r shell script calls the AIX xlc_r compiler. In addition, the Partition Manager and data communication interfaces are automatically linked in. The script creates an executable that dynamically binds with the communication subsystem libraries. If you wish to create a statically bound application, use the instructions in "Creating a Static Executable" in place of this script.

Flags are passed by mpcc_r to the xlc_r command, so any of the xlc_r options can be used on the mpcc_r shell script. The communication subsystem library implementation is dynamically linked when you invoke the executable using the poe command. The value specified by the MP_EUILIB environment variable or the -euilib flag will then determine which communication subsystem library implementation is dynamically linked.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

EXAMPLES

To compile a C program, enter:

mpcc_r program.c -o program

FILES

When you compile a program using mpcc_r, the following libraries are automatically selected:

/usr/lpp/ppe.poe/lib/libmpi_r.a (Message Passing Interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd_r.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe_r.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc_r.a (POE version of libc_r.a)
The following library is selected if it exists as a symbolic link to /usr/lpp/ssp/css/lib/liblapi_r.a:
/usr/lib/liblapi_r.a

RELATED INFORMATION

Commands: mpCC(1), mpCC_r(1), mpcc(1), cc(1), pdbx(1), pedb(1), vt(1), xprofiler(1)

mpCC

NAME

mpCC - Invokes a shell script to compile C++ programs.

SYNOPSIS

mpCC [xlC_flags]... program.C

The mpCC shell script compiles C++ programs while linking in the Partition Manager, Message Passing Interface (MPI), and/or Message Passing Library (MPL).

FLAGS

Any of the compiler flags normally accepted by the xlC command can also be used on mpCC. For a complete listing of these flag options, refer to the manual page for the xlC command. Typical options to mpCC include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed by the Source Code view of the Visualization Tool (vt).

-o

names the executable.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

DESCRIPTION

The mpCC shell script calls the AIX xlC compiler. In addition, the Partition Manager and message passing interface are automatically linked in. The script creates an executable that dynamically binds with the message passing libraries. If you wish to create a statically bound application, use the instructions in "Creating a Static Executable" in place of this script.

Flags are passed by mpCC to the xlC command, so any of the xlC options can be used on the mpCC shell script. The communication subsystem library implementation is dynamically linked when you invoke the executable using the poe command. The value specified by the MP_EUILIB environment variable or the -euilib flag will then determine which communication subsystem library implementation is dynamically linked.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

EXAMPLES

To compile a C++ program, enter:

mpCC program.C -o program

FILES

When you compile a program using mpCC, the following libraries are automatically selected:

/usr/lpp/ppe.poe/lib/libmpi.a (Message passing interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc.a (POE version of libc.a)

RELATED INFORMATION

Commands: mpCC_r(1), mpcc(1), mpcc_r(1), mpxlf(1), xlC(1), pdbx(1), pedb(1), vt(1), xprofiler(1)

mpCC_chkpt

NAME

mpCC_chkpt - Invokes a shell script to compile checkpointable C++ programs.

SYNOPSIS

mpCC_chkpt [xlC_flags]... -us | -ip program.C

The mpCC_chkpt shell script compiles C++ programs while linking in the Partition Manager, Message Passing Interface (MPI), and support code for parallel Checkpoint/Restart. It builds an executable with no shared objects.

FLAGS

Most of the compiler flags normally accepted by the xlC command can also be used on mpCC_chkpt. For a complete listing of these flag options, refer to the manual page for the AIX xlC command. Typical options to mpCC_chkpt include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed for debugging with the pdbx and pedb debuggers, and is also needed by the Source Code view of the Visualization Tool (vt).

-o

names the executable.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-ip

specifies that the executable is bound with the UDP/IP message passing support library.

-us

specifies that the executable is bound with the RS/6000 SP User Space message passing library. Executables using this option should be compiled on an RS/6000 SP node compatible with the node on which execution will occur.

DESCRIPTION

The mpCC_chkpt shell script invokes the AIX xlC command. The Partition Manager, message passing interface, and checkpoint support code are automatically linked in. The script creates an executable with no shared obects. This executable must be run on a node of the same machine type and having the same level of system software as the machine on which the executable is built. The executable is not binary compatible over changes to the system software.

Flags are passed by mpCC_chkpt to the xlC command, so most of the xlC options can be used on the mpCC_chkpt shell script. Options which would generate shared objects should not be used.

At execution time, the value specified by the MP_EUILIB environment variable or the -euilib flag must match the -ip | -us option specified when this command was run.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

EXAMPLES

To compile a C++ program, enter:

mpCC_chkpt program.C -o program

FILES

When you compile a program using mpCC_chkpt, the following libraries are automatically included:

/usr/lpp/ppe.poe/lib/libmpi.a (Message Passing Interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc.a (POE version of libc.a)
/usr/lpp/LoadL/full/lib/chkrst.a (LoadLeveler checkpoint/support)

When the -us option is selected, the following libraries are included:

/usr/lpp/ppe.poe/lib/us/libmpci.a (PSSP message passing interface)
/usr/lpp/ssp/css/lib/hal.a (PSSP User Space adapter interface)
/usr/lib/swclock.o (PSSP Switch clock interface)

When the -ip option is selected, the following libraries are included:

/usr/lpp/ppe.poe/lib/ip/libmpci.a (PSSP message passing interface)

RELATED INFORMATION

Commands: mpCC(1), mpcc_chkpt(1), mpxlf_chkpt(1)

mpCC_r

NAME

mpCC_r - Invokes a shell script to compile C++ programs which use threaded MPI.

SYNOPSIS

mpCC_r [xlC_flags]... program.C

The mpCC_r shell script compiles C++ programs while linking in the Partition Manager, the threaded implementation of Message Passing Interface (MPI), and Low-level Applications Programming Interface (LAPI).

FLAGS

Any of the compiler flags normally accepted by the xlC_r command can also be used on mpCC_r. For a complete listing of these flag options, refer to the manual page for the xlC_r command. Typical options to mpCC_r include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed by the Source Code view of the Visualization Tool (vt).

-o

names the executable.

-d7

compiles the program with POSIX Threads Draft 7 base MPI and compatibility libraries. Otherwise, POSIX Threads Draft 10 base libraries are used.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.
Note:Not all AIX libraries are thread safe. Verify that your intended use is supported.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

DESCRIPTION

The mpCC_r shell script calls the AIX xlC_r compiler. In addition, the Partition Manager and data communication interfaces are automatically linked in. The script creates an executable that dynamically binds with the communication subsystem libraries. If you wish to create a statically bound application, use the instructions in "Creating a Static Executable" in place of this script.

Flags are passed by mpCC_r to the xlC_r command, so any of the xlC_r options can be used on the mpCC_r shell script. The communication subsystem library implementation is dynamically linked when you invoke the executable using the poe command. The value specified by the MP_EUILIB environment variable or the -euilib flag will then determine which communication subsystem library implementation is dynamically linked.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

EXAMPLES

To compile a C++ program, enter:

mpCC_r program.C -o program

FILES

When you compile a program using mpCC_r, the following libraries are automatically selected:

/usr/lpp/ppe.poe/lib/libmpi_r.a (Message passing interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd_r.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe_r.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc_r.a (POE version of libc_r.a)
The following library is selected if it exists as a symbolic link to /usr/lpp/ssp/css/lib/liblapi_r.a:
/usr/lib/liblapi_r.a

RELATED INFORMATION

Commands: mpcc_r(1), mpcc(1), mpCC(1), xlC(1), pdbx(1), pedb(1), vt(1), xprofiler(1)

mprcp

NAME

mprcp - copies a file from the home node to a list of remote hosts.

SYNOPSIS

mprcp host_list_file file_id

The mprcp shell script uses the rcp command to copy the file specified by file_id to all the remote hosts listed in the specified host_list_file. This file_id must be specified by an absolute path name.

FLAGS

None.

DESCRIPTION

The mprcp shell script is typically used to distribute executables, data files, and (in order to use the parallel debuggers) source code files from the home node to all the remote nodes of the partition prior to invoking poe. This only needs to be done if the needed files are not in a shared file system, or are not part of a file collection which is distributed automatically.

For each remote host listed in the specified host_list_file, the size and date of file_id on the remote system is determined. If the file does not exist on the remote system, or if either the size or date differs from the corresponding statistic for the local system, the rcp command is used to copy the file to the remote system. The copied file retains the local system size and date and overlays any existing file of the same name. The remote copy uses the same userid as the local system. If the remote host cannot be contacted, or if the rcp command fails, an error message is printed and the script exits.

EXAMPLES

To send a copy of the executable program to all the processor nodes listed in host.list in your current directory, enter:

mprcp host.list $PWD/program

RELATED INFORMATION

Commands: rcp(1), mcp(1)

mpxlf

NAME

mpxlf - Invokes a shell script to compile Fortran programs.

SYNOPSIS

mpxlf [xlf_flags]... program.f

The mpxlf shell script compiles Fortran programs while linking in the Partition Manager, Message Passing Interface (MPI), and/or Message Passing Library (MPL).

FLAGS

Any of the compiler flags normally accepted by the xlf command can also be used on mpxlf. For a complete listing of these flag options, refer to the manual page for the xlf command. Typical options to mpxlf include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed for debugging with the pdbx and pedb debuggers, and is also needed by the Source Code view of the Visualization Tool.

-o

names the executable.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

DESCRIPTION

The mpxlf shell script calls the xlf compiler. In addition, the Partition Manager and message passing interface are automatically linked in. The script creates an executable that dynamically binds with the message passing libraries. If you wish to create a statically bound application, use the instructions in "Creating a Static Executable" in place of this script.

Flags are passed by mpxlf to the xlf command, so any of the xlf options can be used on the mpxlf shell script. The communication subsystem library implementation is dynamically linked when you invoke the executable using the poe command. The value specified by the MP_EUILIB environment variable or the -euilib flag will then determine which communication subsystem library implementation is dynamically linked.

mpxlf, mpxlf_r, mpxlf90, mpxlf90_r, mpxlf_chkpt, mpxlf90_chkpt have been updated to support High Performance Fortran (HPF) Version 1, Release 3. In doing so, if other Fortran compilers are installed on your system in addition to HPF 1.3, you may need to use a new environment variable with the compiler script in order to use HPF 1.3.

xlf and HPF use different compiler paths and stanzas. Therefore, the scripts will now check for the compiler level installed, and will do the following:

As such, the POE Fortran compile scripts check for a new environment variable, MP_HPF, to determine if the HPF should be used. Customers with both HPF and xlf installed should set MP_HPF=YES when they desire to use the HPF 1.3 compiler.

Customers without both HPF and xlf installed do not need to set the MP_HPF variable.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

MP_HPF
If High Performance Fortran (HPF) 1.3 is installed along with other Fortran compilers, set this to YES if the HPF 1.3 compiler is to be used. Otherwise the default xlf compiler will be used.

EXAMPLES

To compile a Fortran program, enter:

mpxlf program.f -o program

FILES

When you compile a program using mpxlf, the following libraries are automatically selected:

/usr/lpp/ppe.poe/lib/libmpi.a (Message passing interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc.a (POE version of libc.a)

RELATED INFORMATION

Commands: mpcc(1), xlf(1), pdbx(1), pedb(1), vt(1), xprofiler(1)

mpxlf_chkpt

NAME

mpxlf_chkpt - Invokes a shell script to compile checkpointable FORTRAN programs.

SYNOPSIS

mpxlf_chkpt [xlf_flags]... -us | -ip program.f

The mpxlf_chkpt shell script compiles FORTRAN programs while linking in the Partition Manager, Message Passing Interface (MPI), and support code for parallel Checkpoint/Restart. It builds an executable with no shared objects.

FLAGS

Most of the compiler flags normally accepted by the xlf command can also be used on mpxlf_chkpt. For a complete listing of these flag options, refer to the manual page for the AIX xlf command. Typical options to mpxlf_chkpt include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed for debugging with the pdbx and pedb debuggers, and is also needed by the Source Code view of the Visualization Tool (vt).

-o

names the executable.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-ip

specifies that the executable is bound with the UDP/IP message passing support library.

-us

specifies that the executable is bound with the RS/6000 SP User Space message passing library. Executables using this option should be compiled on an RS/6000 SP node compatible with the node on which execution will occur.

DESCRIPTION

The mpxlf_chkpt shell script invokes the AIX xlf command. The Partition Manager, message passing interface, and checkpoint support code are automatically linked in. The script creates an executable with no shared obects. This executable must be run on a node of the same machine type and having the same level of system software as the machine on which the executable is built. The executable is not binary compatible over changes to the system software.

Flags are passed by mpxlf_chkpt to the xlf command, so most of the xlf options can be used on the mpxlf_chkpt shell script. Options which would generate shared objects should not be used.

At execution time, the value specified by the MP_EUILIB environment variable or the -euilib flag must match the -ip | -us option specified when this command was run.

mpxlf, mpxlf_r, mpxlf90, mpxlf90_r, mpxlf_chkpt, mpxlf90_chkpt have been updated to support High Performance Fortran (HPF) Version 1, Release 3. In doing so, if other Fortran compilers are installed on your system in addition to HPF 1.3, you may need to use a new environment variable with the compiler script in order to use HPF 1.3.

xlf and HPF use different compiler paths and stanzas. Therefore, the scripts will now check for the compiler level installed, and will do the following:

As such, the POE Fortran compile scripts check for a new environment variable, MP_HPF, to determine if the HPF should be used. Customers with both HPF and xlf installed should set MP_HPF=YES when they desire to use the HPF 1.3 compiler.

Customers without both HPF and xlf installed do not need to set the MP_HPF variable.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

MP_HPF
If High Performance Fortran (HPF) 1.3 is installed along with other Fortran compilers, set this to YES if the HPF 1.3 compiler is to be used. Otherwise the default xlf compiler will be used.

EXAMPLES

To compile a FORTRAN program, enter:

mpxlf_chkpt program.f -o program

FILES

When you compile a program using mpxlf_chkpt, the following libraries are automatically included:

/usr/lpp/ppe.poe/lib/libmpi.a (Message Passing Interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc.a (POE version of libc.a)
/usr/lpp/LoadL/full/lib/chkrst.a (LoadLeveler checkpoint/support)

When the -us option is selected, the following libraries are included:

/usr/lpp/ppe.poe/lib/us/libmpci.a (PSSP message passing interface)
/usr/lpp/ssp/css/lib/hal.a (PSSP User Space adapter interface)
/usr/lib/swclock.o (PSSP Switch clock interface)

When the -ip option is selected, the following libraries are included:

/usr/lpp/ppe.poe/lib/ip/libmpci.a (PSSP message passing interface)

RELATED INFORMATION

Commands: mpxlf(1), mpcc_chkpt(1), mpxlf90_chkpt(1)

mpxlf_r

NAME

mpxlf_r - Invokes a shell script to compile Fortran programs and link them into a threaded environment.

SYNOPSIS

mpxlf_r [xlf_flags]... program.f

The mpxlf_r shell script compiles Fortran programs while linking in the Partition Manager, the threaded implementation of Message Passing Interface (MPI), and Low-level Applications Programming Interface (LAPI).
Note:Only one thread can run a Fortran program.

FLAGS

Any of the compiler flags normally accepted by the xlf command can also be used on mpxlf_r. For a complete listing of these flag options, refer to the manual page for the xlf command. Typical options to mpxlf_r include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed for debugging with the pdbx and pedb debuggers, and is also needed by the Source Code view of the Visualization Tool.

-o

names the executable.

-d7

compiles the program with POSIX Threads Draft 7 base MPI and compatibility libraries. Otherwise, POSIX Threads Draft 10 base libraries are used. This flag can only be used with Fortran Version 5.1.1 or later.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.
Note:Not all AIX libraries are thread safe. Verify that your intended use is supported.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

DESCRIPTION

The mpxlf_r shell script calls the xlf compiler. In addition, the Partition Manager and data communication interfaces are automatically linked in. The script creates an executable that dynamically binds with the communication subsystem libraries. If you wish to create a statically bound application, use the instructions in "Creating a Static Executable" in place of this script.

Flags are passed by mpxlf_r to the xlf command, so any of the xlf options can be used on the mpxlf_r shell script. The communication subsystem library implementation is dynamically linked when you invoke the executable using the poe command. The value specified by the MP_EUILIB environment variable or the -euilib flag will then determine which communication subsystem library implementation is dynamically linked.

mpxlf, mpxlf_r, mpxlf90, mpxlf90_r, mpxlf_chkpt, mpxlf90_chkpt have been updated to support High Performance Fortran (HPF) Version 1, Release 3. In doing so, if other Fortran compilers are installed on your system in addition to HPF 1.3, you may need to use a new environment variable with the compiler script in order to use HPF 1.3.

xlf and HPF use different compiler paths and stanzas. Therefore, the scripts will now check for the compiler level installed, and will do the following:

As such, the POE Fortran compile scripts check for a new environment variable, MP_HPF, to determine if the HPF should be used. Customers with both HPF and xlf installed should set MP_HPF=YES when they desire to use the HPF 1.3 compiler.

Customers without both HPF and xlf installed do not need to set the MP_HPF variable.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

MP_HPF
If High Performance Fortran (HPF) 1.3 is installed along with other Fortran compilers, set this to YES if the HPF 1.3 compiler is to be used. Otherwise the default xlf compiler will be used.

EXAMPLES

To compile a Fortran program, enter:

mpxlf_r program.f -o program

FILES

When you compile a program using mpxlf_r, the following libraries are automatically selected:

/usr/lpp/ppe.poe/lib/libmpi_r.a (Message passing interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd_r.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe_r.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc_r.a (POE version of libc_r.a)
The following library is selected if it exists as a symbolic link to /usr/lpp/ssp/css/lib/liblapi_r.a:
/usr/lib/liblapi_r.a

Note:Fortran Version 4.1.0.1, specifically the library libxlf90_t.a, must be available for both linking and execution.

RELATED INFORMATION

Commands: mpcc_r(1), xlf(1), pdbx(1), pedb(1), vt(1), xprofiler(1)

mpxlf90

NAME

mpxlf90 - Invokes a shell script to compile Fortran 90 programs.

SYNOPSIS

mpxlf90 [xlf_flags]... program.f

The mpxlf90 shell script compiles Fortran 90 programs while linking in the Partition Manager, Message Passing Interface (MPI), and Message Passing Library (MPL).

FLAGS

Any of the compiler flags normally accepted by the xlf command can also be used on mpxlf90. For a complete listing of these flag options, refer to the manual page for the xlf command. Typical options to mpxlf90 include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed by the Source Code view of the Visualization Tool.

-o

names the executable.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

DESCRIPTION

The mpxlf90 shell script calls the xlf compiler. In addition, the Partition Manager and message passing interface are automatically linked in. The script creates an executable that dynamically binds with the message passing libraries. If you wish to create a statically bound application, use the instructions in "Creating a Static Executable" in place of this script.

Flags are passed by mpxlf90 to the xlf command, so any of the xlf options can be used on the mpxlf90 shell script. The communication subsystem library implementation is dynamically linked when you invoke the executable using the poe command. The value specified by the MP_EUILIB environment variable or the -euilib flag will then determine which communication subsystem library implementation is dynamically linked.

mpxlf, mpxlf_r, mpxlf90, mpxlf90_r, mpxlf_chkpt, mpxlf90_chkpt have been updated to support High Performance Fortran (HPF) Version 1, Release 3. In doing so, if other Fortran compilers are installed on your system in addition to HPF 1.3, you may need to use a new environment variable with the compiler script in order to use HPF 1.3.

xlf and HPF use different compiler paths and stanzas. Therefore, the scripts will now check for the compiler level installed, and will do the following:

As such, the POE Fortran compile scripts check for a new environment variable, MP_HPF, to determine if the HPF should be used. Customers with both HPF and xlf installed should set MP_HPF=YES when they desire to use the HPF 1.3 compiler.

Customers without both HPF and xlf installed do not need to set the MP_HPF variable.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

MP_HPF
If High Performance Fortran (HPF) 1.3 is installed along with other Fortran compilers, set this to YES if the HPF 1.3 compiler is to be used. Otherwise the default xlf compiler will be used.

EXAMPLES

To compile a Fortran 90 program, enter:

mpxlf90 program.f -o program

FILES

When you compile a program using mpxlf90, the following libraries are automatically selected:

/usr/lpp/ppe.poe/lib/libmpi.a (Message passing interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc.a (POE version of libc.a)

RELATED INFORMATION

Commands: mpcc(1), mpCC(1), xlf(1), mpxlf(1), vt(1), xprofiler(1)

mpxlf90_chkpt

NAME

mpxlf90_chkpt - Invokes a shell script to compile checkpointable Fortran 90 programs.

SYNOPSIS

mpxlf90_chkpt [xlf90_flags]... -us | -ip program.f

The mpxlf90_chkpt shell script compiles Fortran 90 programs while linking in the Partition Manager, Message Passing Interface (MPI), and support code for parallel Checkpoint/Restart. It builds an executable with no shared objects.

FLAGS

Most of the compiler flags normally accepted by the xlf90 command can also be used on mpxlf90_chkpt. For a complete listing of these flag options, refer to the manual page for the AIX xlf90 command. Typical options to mpxlf90_chkpt include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed for debugging with the pdbx and pedb debuggers, and is also needed by the Source Code view of the Visualization Tool (vt).

-o

names the executable.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-ip

specifies that the executable is bound with the UDP/IP message passing support library.

-us

specifies that the executable is bound with the RS/6000 SP User Space message passing library. Executables using this option should be compiled on an RS/6000 SP node compatible with the node on which execution will occur.

DESCRIPTION

The mpxlf90_chkpt shell script invokes the AIX xlf90 command. The Partition Manager, message passing interface, and checkpoint support code are automatically linked in. The script creates an executable with no shared obects. This executable must be run on a node of the same machine type and having the same level of system software as the machine on which the executable is built. The executable is not binary compatible over changes to the system software.

Flags are passed by mpxlf90_chkpt to the xlf90 command, so most of the xlf90 options can be used on the mpxlf90_chkpt shell script. Options which would generate shared objects should not be used.

At execution time, the value specified by the MP_EUILIB environment variable or the -euilib flag must match the -ip | -us option specified when this command was run.

mpxlf, mpxlf_r, mpxlf90, mpxlf90_r, mpxlf_chkpt, mpxlf90_chkpt have been updated to support High Performance Fortran (HPF) Version 1, Release 3. In doing so, if other Fortran compilers are installed on your system in addition to HPF 1.3, you may need to use a new environment variable with the compiler script in order to use HPF 1.3.

xlf and HPF use different compiler paths and stanzas. Therefore, the scripts will now check for the compiler level installed, and will do the following:

As such, the POE Fortran compile scripts check for a new environment variable, MP_HPF, to determine if the HPF should be used. Customers with both HPF and xlf installed should set MP_HPF=YES when they desire to use the HPF 1.3 compiler.

Customers without both HPF and xlf installed do not need to set the MP_HPF variable.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

MP_HPF
If High Performance Fortran (HPF) 1.3 is installed along with other Fortran compilers, set this to YES if the HPF 1.3 compiler is to be used. Otherwise the default xlf compiler will be used.

EXAMPLES

To compile a FORTRAN program, enter:

mpxlf90_chkpt program.f -o program

FILES

When you compile a program using mpxlf90_chkpt, the following libraries are automatically included:

/usr/lpp/ppe.poe/lib/libmpi.a (Message Passing Interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc.a (POE version of libc.a)
/usr/lpp/LoadL/full/lib/chkrst.a (LoadLeveler checkpoint/support)

When the -us option is selected, the following libraries are included:

/usr/lpp/ppe.poe/lib/us/libmpci.a (PSSP message passing interface)
/usr/lpp/ssp/css/lib/hal.a (PSSP User Space adapter interface)
/usr/lib/swclock.o (PSSP Switch clock interface)

When the -ip option is selected, the following libraries are included:

/usr/lpp/ppe.poe/lib/ip/libmpci.a (PSSP message passing interface)

RELATED INFORMATION

Commands: mpxlf90(1), mpcc_chkpt(1), mpxlf_chkpt(1)

mpxlf90_r

NAME

mpxlf90_r - Invokes a shell script to compile Fortran 90 programs and link them into a threaded environment.

SYNOPSIS

mpxlf90_r [xlf_flags]... program.f

The mpxlf90_r shell script compiles Fortran 90 programs while linking in the Partition Manager, the threaded implementation of Message Passing Interface (MPI), and Low-level Applications Programming Interface (LAPI).
Note:Only one thread can run a Fortran program.

FLAGS

Any of the compiler flags normally accepted by the xlf command can also be used on mpxlf90_r. For a complete listing of these flag options, refer to the manual page for the xlf command. Typical options to mpxlf90_r include:

-v

causes a "verbose" output listing of the shell script.

-g

Produces an object file with symbol table references. This object file is needed by the Source Code view of the Visualization Tool.

-o

names the executable.

-d7

compiles the program with POSIX Threads Draft 7 base MPI and compatibility libraries. Otherwise, POSIX Threads Draft 10 base libraries are used. This flag can only be used with Fortran Version 5.1.1 or later.

-l (lower-case L)

names additional libraries to be searched. Several libraries are automatically included, and are listed below in the FILES section.
Note:Not all AIX libraries are thread safe. Verify that your intended use is supported.

-I (upper-case i)

names directories for additional includes. The directory /usr/lpp/ppe.poe/include is automatically included.

-p

enables profiling with the prof command. For more information, see the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

-pg

enables profiling with the xprofiler and gprof commands. For more information, see the "Xprofiler" chapter and the appendix on "Profiling Programs" in IBM Parallel Environment for AIX: Operation and Use, Volume 2, Tools Reference

DESCRIPTION

The mpxlf90_r shell script calls the xlf compiler. In addition, the Partition Manager and data communication interfaces are automatically linked in. The script creates an executable that dynamically binds with the communication subsystem libraries. If you wish to create a statically bound application, use the instructions in "Creating a Static Executable" in place of this script.

Flags are passed by mpxlf90_r to the xlf command, so any of the xlf options can be used on the mpxlf90_r shell script. The communication subsystem library implementation is dynamically linked when you invoke the executable using the poe command. The value specified by the MP_EUILIB environment variable or the -euilib flag will then determine which communication subsystem library implementation is dynamically linked.

mpxlf, mpxlf_r, mpxlf90, mpxlf90_r, mpxlf_chkpt, mpxlf90_chkpt have been updated to support High Performance Fortran (HPF) Version 1, Release 3. In doing so, if other Fortran compilers are installed on your system in addition to HPF 1.3, you may need to use a new environment variable with the compiler script in order to use HPF 1.3.

xlf and HPF use different compiler paths and stanzas. Therefore, the scripts will now check for the compiler level installed, and will do the following:

As such, the POE Fortran compile scripts check for a new environment variable, MP_HPF, to determine if the HPF should be used. Customers with both HPF and xlf installed should set MP_HPF=YES when they desire to use the HPF 1.3 compiler.

Customers without both HPF and xlf installed do not need to set the MP_HPF variable.

ENVIRONMENT VARIABLES

MP_PREFIX
sets an alternate path to the scripts library. If not set or NULL, the standard path /usr/lpp/ppe.poe is used. If this environment variable is set, then all libraries are prefixed by $MP_PREFIX/ppe.poe.

MP_HPF
If High Performance Fortran (HPF) 1.3 is installed along with other Fortran compilers, set this to YES if the HPF 1.3 compiler is to be used. Otherwise the default xlf compiler will be used.

EXAMPLES

To compile a Fortran 90 program, enter:

mpxlf90_r program.f -o program

FILES

When you compile a program using mpxlf90_r, the following libraries are automatically selected:

/usr/lpp/ppe.poe/lib/libmpi_r.a (Message passing interface, collective communication routines)
/usr/lpp/ppe.poe/lib/libvtd_r.a (VT tracing subsystem)
/usr/lpp/ppe.poe/lib/libppe_r.a (PE common routines)
/usr/lpp/ppe.poe/lib/libc_r.a (POE version of libc_r.a)
The following library is selected if it exists as a symbolic link to /usr/lpp/ssp/css/lib/liblapi_r.a:
/usr/lib/liblapi_r.a

Note:Fortran Version 4.1.0.1, specifically the library libxlf90_t.a, must be available for both linking and execution.

RELATED INFORMATION

Commands: mpcc_r(1), xlf(1), mpxlf_r(1), pdbx(1), pedb(1), vt(1), xprofiler(1)

pmarray

NAME

pmarray - Starts the Program Marker Array, which is an X-Windows tool for monitoring a parallel executable's run.

SYNOPSIS

pmarray

The pmarray command starts the Program Marker Array X-Windows tool prior to invoking poe. This tool is used for run-time monitoring.

FLAGS

None.

DESCRIPTION

The pmarray command starts the Program Marker Array. This X-Windows run-time monitoring tool consists of a number of small squares, or lights. Each task in a parallel program has its own row of lights. Using calls to the Parallel Utility Functions enables a parallel program to control the appearance of the Program Marker Array Window. Calls to MP_MARKER (for Fortran programs) or mpc_marker (for C programs) enables a program to color lights on, and/or send output strings to the Window. Calls to MP_NLIGHTS (for Fortran programs) and mpc_nlights (for C programs) enables a program to determine the number of lights displayed per task row.

ENVIRONMENT VARIABLES

This command responds to the following environment variables:

MP_PMLIGHTS
Indicates the number of lights displayed per row on the Array. (If, when you invoke poe, you override MP_PMLIGHTS using the -pmlights flag, the Array will redisplay with the new number of lights per row.)

MP_PROCS
Indicates the number of program tasks. The pmarray command sets the number of task rows displayed in the Array equal to the value of MP_PROCS. (If, when you invoke poe, you override MP_PROCS using the -procs flag, the Array will redisplay with the new number of rows.)

MP_USRPORT
Indicates the port id used by the Partition Manager to connect to the Array. By default, the Partition Manager connects to the Array using a socket assigned to port 9999. If you get an error message indicating that the port is in use, specify a different port. Standard TCP/IP practice suggests using ports greater than 5000 and less than 10000.

EXAMPLES

To start the Program Marker Array program as a background process, and open its window, enter:

pmarray &

FILES

/usr/lib/X11/app-defaults/PMarray (Xdefaults file)

/usr/lib/ppe.poe/samples/PMarray.ad (X-Windows resource information)

RELATED INFORMATION

Commands: poe(1)

Subroutines: mpc_marker(3), MP_MARKER(3), mpc_nlights(3), MP_NLIGHTS(3)

"Monitoring Program Execution Using the Program Marker Array" in IBM Parallel Environment for AIX: Operation and Use

poe

NAME

poe - Invokes the Parallel Operating Environment (POE) for loading and executing programs on remote processor nodes.

SYNOPSIS

poe [-h] [program] [program_options]...
[-adapter_use adapter_specifier]
[-cpu_use cpu_specifier]
[-euidevice device_specifier]
[-euilib {ip | us}]
[-euilibpath path_specifier]
[{-hostfile | -hfile} host_file_name]
[-procs partition_size]
[-pulse interval]
[-resd {yes | no}]
[-retry retry_interval]
[-retrycount retry_count]
[-rmpool pool_ID]
[-savehostfile output_file_name]
[-spname name]
[-cmdfile commands_file]
[-newjob {yes | no}]
[-pgmmodel {spmd | mpmd}]
[-labelio {yes | no}]
[-stdinmode {all | none | task_ID}]
[-stdoutmode {unordered | ordered | task_ID}]
[{-samplefreq | -sfreq} samp_int]
[{-tbuffsize | -tbsize} buffer_size]
[{-tbuffwrap | -tbwrap} {yes | no}]
[-tmpdir temp_trace_directory]
[{-tracedir | -tdir} final_trace_directory]
[{-tracefile | -tfile} trace_file_name]
[{-tracelevel | -tlevel} level_int]
[{-ttempsize | -ttsize} temp_file_size]
[{-infolevel | -ilevel} message_level]
[-pmdlog {yes | no}]
[-buffer_mem] memory_size
[-css_interrupt {yes | no}]
[-eager_limit size_limit]
[-intrdelay delay_parameter]
[-max_typedepth maximum_depth]
[-use_flow_control {yes | no}]
[-thread_stacksize]
[-single_thread {no | yes}]
[-wait_mode {poll | yield | sleep}]
[-polling_interval interval]
[-euidevelop {yes | no | deb | min | nor}]
[-pmlights number_of_lights]
[-usrport port_ID] [fence_string additional_options]
[-coredir]

The poe command invokes the Parallel Operating Environment for loading and executing programs on remote processor nodes. The operation of POE is influenced by a number of POE environment variables. The flag options on this command are each used to temporarily override one of these environment variables. User program_options can be freely interspersed with the flag options. If no program is specified, POE will either prompt you for programs to load, or, if the MP_CMDFILE environment variable is set, will load the partition using the specified commands file.

FLAGS

The -h flag, when used, must appear immediately after poe, and causes the poe man page, if it exists, to be printed to the screen.

The remaining flags you can specify on this command are used to temporarily override POE environment variables. For more information on valid values, and on what a particular flag sets, refer to the description of its associated environment variable in the ENVIRONMENT VARIABLES section. The following flags are grouped by function.

The following Partition Manager control flags override the associated environment variables.

-adapter_use

MP_ADAPTER_USE

-cpu_use

MP_CPU_USE

-euidevice

MP_EUIDEVICE

-euilib

MP_EUILIB

-euilibpath

MP_EUILIBPATH

-hostfile  or  -hfile

MP_HOSTFILE

-procs

MP_PROCS

-pulse

MP_PULSE

-resd

MP_RESD

-retry

MP_RETRY

-retrycount

MP_RETRYCOUNT

-msg_api

MP_MSG_API

-rmpool

MP_RMPOOL

-nodes

MP_NODES

-tasks_per_node

MP_TASKS_PER_NODE

-savehostfile

MP_SAVEHOSTFILE

-spname

SP_NAME

The following Job Specification flags override the associated environment variables.

-cmdfile

MP_CMDFILE

-newjob

MP_NEWJOB

-pgmmodel

MP_PGMMODEL

The following I/O Control flags override the associated environment variables.

-labelio

MP_LABELIO

-stdinmode

MP_STDINMODE

-stdoutmode

MP_STDOUTMODE

The following VT Trace Collection flags override the associated environment variables.

-samplefreq  or  -sfreq

MP_SAMPLEFREQ

-tbuffsize  or  -tbsize

MP_TBUFFSIZE

-tbuffwrap  or  -tbwrap

MP_TBUFFWRAP

-tmpdir

MP_TMPDIR

-tracedir  or  -tdir

MP_TRACEDIR

-tracefile  or  -tfile

MP_TRACEFILE

-tracelevel  or  -tlevel

MP_TRACELEVEL

-ttempsize  or  -ttsize

MP_TTEMPSIZE

The following generation of diagnostic information flags override the associated environment variables.

-infolevel  or  -ilevel

MP_INFOLEVEL

-pmdlog

MP_PMDLOG

The following Message Passing flags override the associated environment variables.

-buffer_mem

MP_BUFFER_MEM

-css_interrupt

MP_CSS_INTERRUPT

-eager_limit

MP_EAGER_LIMIT

-intrdelay

MP_INTRDELAY

-max_typedepth

MP_MAX_TYPEDEPTH

-use_flow_control

MP_USE_FLOW_CONTROL

-thread_stacksize

MP_THREAD_STACKSIZE

-single_thread

MP_SINGLE_THREAD

-wait_mode

MP_WAIT_MODE

-polling_interval

MP_POLLING_INTERVAL

The following are miscellaneous flags:

-euidevelop

Overrides the MP_EUIDEVELOP environment variable.

-pmlights

Determines the number of lights displayed (per row) on the Program Marker Array. This overrides the MP_PMLIGHTS environment variable. For more information on the Program Marker Array, refer to the manual page for the pmarray command.

-usrport

Overrides the MP_USRPORT environment variable.

-coredir

Overrides the MP_COREDIR environment variable.

DESCRIPTION

The poe command invokes the Parallel Operating Environment for loading and executing programs on remote nodes. You can enter it at your home node to:

The operation of POE is influenced by a number of POE environment variables. The flag options on this command are each used to temporarily override one of these environment variables. User program_options can be freely interspersed with the flag options, and additional_options not to be parsed by POE can be placed after a fence_string defined by the MP_FENCE environment variable. If no program is specified, POE will either prompt you for programs to load, or, if the MP_CMDFILE environment variable is set, will load the partition using the specified commands file.

The environment variables and flags that influence the operation of this command fall into distinct categories of function. They are:

ENVIRONMENT VARIABLES

The environment variable descriptions in this section are grouped by function.

The following environment variables are associated with Partition Manager control.

MP_ADAPTER_USE
Determines how the node's adapter should be used. If using LoadLeveler, the US communication subsystem library does not require dedicated use of the SP switch on the node. Adapter use will be defaulted, as in Table 4, but shared usage may be specified. If using the Resource Manager, this value is only used when POE is requesting non-specific nodes via the MP_RMPOOL or -rmpool setting. Valid values are dedicated and shared. If not set, the default is dedicated for US jobs, or shared for IP jobs. The value of this environment variable can be overridden using the -adapter_use flag.

MP_AUTH
Determines the type of user authorization to be used. Valid values are AIX (the default) for AIX based user authorization, using /etc/hosts.equiv or .rhosts entries, and DFS for DFS/DCE based authorization. This value can be overridden with an entry in the /etc/poe.limits file. There is no associated command line flag.

MP_CPU_USE
Determines how the node's CPU should be used. If using LoadLeveler, the US communication subsystem library does not require unique CPU use on the node. CPU use will be defaulted, as in Table 4, but multiple use may be specified. If using the Resource Manager, this value is only used when POE is requesting non-specific nodes via the MP_RMPOOL or -rmpool setting. Valid values are multiple and unique. If not set, the default is unique for US jobs, or multiple for IP jobs. The value of this environment variable can be overridden using the -cpu_use flag.

MP_EUIDEVICE
Determines the adapter set to use for message passing. Valid values are en0 (for Ethernet), fi0 (for FDDI), tr0 (for token-ring), and css0 (for the SP system's high performance switch feature).

MP_EUILIB
Determines the communication subsystem library implementation to use for communication - either the IP communication subsystem or the US communication subsystem. In order to use the US communication subsystem, you must have an SP system configured with its high performance switch feature. Valid, case-sensitive, values are ip (for the IP communication subsystem) or us (for the US communication subsystem). The value of this environment variable can be overridden using the -euilib flag.

MP_EUILIBPATH
Determines the path to the message passing and communication subsystem libraries. This only needs to be set if the libraries are moved. Valid values are any path specifier. The value of this environment variable can be overridden using the -euilibpath flag.

MP_HOSTFILE
Determines the name of a host list file for node allocation. Valid values are any file specifier. If not set, the default is host.list in your current directory. The value of this environment variable can be overridden using the -hostfile or -hfile flags.

MP_PROCS
Determines the number of program tasks. Valid values are any number from 1 to 128. If not set, the default is 1. The value of this environment variable can be overridden using the -procs flag.

MP_PULSE
The interval (in seconds) at which POE checks the remote nodes to ensure that they are communicating with the home node. The default interval is 600 seconds (10 minutes). To disable the pulse function, specify an interval of 0 (zero) seconds. The pulse function is automatically disabled when running the pdbx or pedb debuggers. You can override the value of this environment variable with the -pulse flag.

MP_REMOTEDIR
Specifies the name of a script which echoes the name of the current directory to be used on the remote nodes. By default, the current directory is the current directory at the time that POE is run. You may need to specify this if the AutoMount Daemon is used to mount user file systems, and the user is not using the Korn shell.

The script mpamddir is provided for mapping the C shell directory name to an AutoMount Daemon name.

MP_RESD
Determines whether or not the Partition Manager should connect to LoadLeveler or the SP system Resource Manager to allocate nodes. Valid values are either yes or no, and there is no default. The value of this environment variable can be overridden using the -resd flag.

MP_RETRY
Determines the period of time (in seconds) between processor node allocation retries if there are not enough processor nodes immediately available to run a program. This is only valid if you are using LoadLeveler or the SP system Resource Manager. Valid values are any integer greater than or equal to 0. The default is 0 (no retry). The value of this environment variable can be overridden using the -retry flag.

MP_RETRYCOUNT
The number of times (at the interval set by MP_RETRY) that the Partition Manager should attempt to allocate processor nodes. Valid values are any integer greater than or equal to 0. If not set, the default is 0. The value of this environment variable can be overridden using the -retrycount flag.

MP_MSG_API
Indicates to POE which message passing API is being used by the parallel tasks. You need to set this environment variable if a parallel task is using LAPI alone or in conjunction with MPI. You do not need to set it if a parallel task is using MPI only. The value of this environment variable can be overridden using the -msg_api flag.

MP_RMPOOL
With regard to LoadLeveler, determines the name or number of the pool that should be used for non-specific node allocation. With regard to the Resource Manager, determines the number of the SP system pool that should be used for non-specific node allocation. This environment variable/command-line flag only applies to LoadLeveler or the SP system Resource Manager. Valid values are any identifying pool name or number for LoadLeveler, and any identifying pool number for the Resource Manager. There is no default. The value of this environment variable can be overridden using the -rmpool flag.

MP_NODES
Specifies the number of physical nodes on which to run the parallel tasks. It may be used alone or in conjunction with MP_TASKS_PER_NODE and/or MP_PROCS, as described in Table 7. The value of this environment variable can be overridden using the -nodes flag.

MP_TASKS_PER_NODE
Specifies the number of tasks to be run on each of the physical nodes. It may be used in conjunction with MP_NODES and/or MP_PROCS, as described in Table 7, but may not be used alone. The value of this environment variable can be overridden using the -tasks_per_node flag.

MP_SAVEHOSTFILE
The name of an output host list file to be generated by the Partition Manager. Valid values are any relative or full path name. The value of this environment variable can be overridden using the -savehostfile flag.

MP_TIMEOUT
Controls the length of time POE waits before abandoning an attempt to connect to the remote nodes. The default is 150 seconds. MP_TIMEOUT also changes the length of time the communication subsystem will wait for a connection to be established during message passing initialization.

SP_NAME
Determines the job management system (LoadLeveler or the SP system Resource Manager) to use. If all nodes to be used for the parallel job exist in a PSSP 2.4.0 partition, the SP_NAME environment variable should be set to the name of the control workstation of the SP system on which these nodes exist. This is the only case that results in POE contacting the Resource Manager rather than LoadLeveler for node allocation requests. When running POE from a workstation that is external to the LoadLeveler cluster, the LoadL.so fileset must be installed on the external node (see Using and Administering LoadLeveler and IBM Parallel Environment for AIX: Installation for more information). When running POE from a workstation that is external to the SP system, and using the Resource Manager, the ssp.clients fileset must be installed on the external node (see IBM Parallel Environment for AIX: Installation for more information).

MP_CHECKFILE
Defines the base name of the checkpoint file when checkpointing or restarting a program. See "Checkpointing and Restarting Programs" for more information.

MP_CHECKDIR
Defines the directory where the checkpoint file will reside when checkpointing or restarting a program. See "Checkpointing and Restarting Programs" for more information.

The following environment variables are associated with Job Specification.

MP_CMDFILE
Determines the name of a POE commands file used to load the nodes of your partition. If set, POE will read the commands file rather than STDIN. Valid values are any file specifier. The value of this environment variable can be overridden using the -cmdfile flag.

MP_NEWJOB
Determines whether or not the Partition Manager maintains your partition for multiple job steps. Valid values are yes or no. If not set, the default is no. The value of this environment variable can be overridden using the -newjob flag.

MP_PGMMODEL
Determines the programming model you are using. Valid values are spmd or mpmd. If not set, the default is spmd. The value of this environment variable can be overridden using the -pgmmodel flag.

The following environment variables are associated with I/O Control.

MP_LABELIO
Determines whether or not output from the parallel tasks are labeled by task id. Valid values are yes or no. If not set, the default is no. The value of this environment variable can be overridden using the -labelio flag.

MP_STDINMODE
Determines the input mode - how STDIN is managed for the parallel tasks. Valid values are:

all
all tasks receive the same input data from STDIN.

none
no tasks receive input data from STDIN; STDIN will be used by the home node only.

n
STDIN is only sent to the task identified (n).

If not set, the default is all. The value of this environment variable can be overridden using the -stdinmode flag.

MP_HOLD_STDIN
Determines whether or not sending of STDIN from the home node to the remote nodes is deferred until the message passing partition has been established. Valid values are yes or no. If not set, the default is no.

MP_STDOUTMODE
Determines the output mode - how STDOUT is handled by the parallel tasks. Valid values are:

unordered
all tasks write output data to STDOUT asynchronously.

ordered
output data from each parallel task is written to its own buffer. Later, all buffers are flushed, in task order, to STDOUT.

a task id
only the task indicated writes output data to STDOUT.

If not set, the default is unordered. The value of this environment variable can be overridden using the -stdoutmode flag.

The following environment variables are associated with VT Trace Collection.

MP_SAMPLEFREQ
Determines the interval (in milliseconds) at which AIX kernel statistics are sampled when executing a program with tracing on. Valid values are any integer greater than or equal to 0. If not set, the default is 10. The value of this environment variable can be overridden using the -samplefreq or -sfreq flags.

MP_TBUFFSIZE
Determines the size (in bytes) of the buffer used when generating trace files. This may be specified as nnnK or nnnM. If not set, the default is 5M. The value of this environment variable can be overridden using the -tbuffsize or -tbsize flags.

MP_TBUFFWRAP
Determines that a wraparound storage approach for trace records should be used instead of the default three-tiered approach. With this approach, the system keeps overwriting the buffer instead of flushing it to a temp file. Valid values are either yes or no. If not set, the default is no. The value of this environment variable can be overridden using the -tbuffwrap or -tbwrap flags.

MP_TMPDIR
The temporary directory to which output trace files are written. Valid values are any path specifier. If not set, the default is /tmp/username. The value of this environment variable can be overridden using the -tmpdir flag.

MP_TRACEDIR
Determines the directory to which the final integrated trace file is built. Valid values are any path specifier. If not set, the default is the current directory. The value of this environment variable can be overridden using the -tracedir or -tdir flags.

MP_TRACEFILE
Determines the name of the output trace file created when executing a program with tracing on. Valid values are any file specifier. If not set, the default is the name of the program with the suffix .trc added. The value of this environment variable can be overridden using the -tracefile and -tfile flags.

MP_TRACELEVEL
Determines the level of VT tracing that should be generated during the execution of a program. Valid values are:

0
no trace records

1
Application Markers

2
AIX Kernel Statistic and Application Markers

3
Message Passing, Collective Communication, and Application Markers

9
all trace records

If not set, the default is 0 (no trace records). The value of this environment variable can be overridden using the -tracelevel or -tlevel flags.

MP_TTEMPSIZE
Determines the size (in bytes) of the temp file used when generating trace files. This may be specified as nnnM or nnnG. If not set, the default is 10M. The value of this environment variable can be overridden using the -ttempsize or -ttsize flags.

The following environment variables are associated with the generation of diagnostic information.

MP_INFOLEVEL
Determines the level of message reporting. Valid values are:

0
error

1
warning and error

2
informational, warning, and error

3
informational, warning, and error. Also reports diagnostic messages for use by the IBM Support Center.

4, 5, 6
Informational, warning, and error. Also reports high- and low-level diagnostic messages for use by the IBM Support Center.

If not set, the default is 1 (warning and error). The value of this environment variable can be overridden using the -infolevel or -ilevel flags.

MP_PMDLOG
Determines whether or not diagnostic messages should be logged to a file in /tmp on each of the remote nodes. Typically, this environment variable/command-line flag is only used under the direction of the IBM Support Center in resolving a PE-related problem. Valid values are yes or no. If not set, the default is no. The value of this environment variable can be overridden using the -pmdlog flag.

MP_DEBUG_LOG
Determines the level of diagnostic messages written to $MP_tmp/dbelog.pid.taskid. Typically, this environment variable/command-line flag is only used under the direction of the IBM Support Center in resolving a PE-related problem. This environment variable has no associated command-line flag.

MP_DEBUG_INITIAL_STOP
Determines the initial breakpoint in the application where pdbx or pedb will get control. MP_DEBUG_INITIAL_STOP should be specified as file_name:line_number. The line_number is the number of the line within the source file file_name; where file_name has been compiled with -g. The line number has to be one that defines executable code. In general, this is a line of code for which the compiler generates machine level code. Another way to view this is that the line number is one for which debuggers will accept a breakpoint. Another valid string for MP_DEBUG_INITIAL_STOP would be the function_name of the desired initial stopping point in the debugger. If this variable is not specified, the default is to stop at the first executable source line in the main routine. This environment variable has no associated command-line flag.

MP_PMDSUFFIX
When using LoadLeveler, this environment variable determines a string to be appended to the normal partition manager daemon executable. The normal partition manager daemon executable specified is /etc/pmdv2. By setting MP_PMDSUFFIX, you can append a string to pmdv2. If MP_PMDSUFFIX is set to abc, for example, then the partition manager daemon that gets run on each node of the parallel task is /etc/pmdv2abc. When using the Resource Manager, this environment variable determines a string to be appended to the normal tcp service. The normal tcp service specified in /etc/services is named pmv2. By setting MP_PMDSUFFIX, you can append a string to pmv2. If MP_PMDSUFFIX is set to abc, for example, then the service requested in /etc/services is pmv2abc. Using the environment variable with LoadLeveler or the Resource Manager as described above permits testing of alternate versions of the Partition Manager daemon. Typically, this environment variable is only used under the direction of the IBM Support Center in resolving a PE-related problem. Valid values are any string. This environment variable has no associated command-line flag.

The following environment variables are associated with the Message Passing Interface.

MP_BUFFER_MEM
Changes the maximum size of memory used by the communication subsystem to buffer early arrivals. The default is 2.8 megabytes for IP and 64 megabytes for US. However, if checkpointing a program, for US the default will be 2.8 megabytes. If you are using this environment variable to change the maximum size of memory used by the communication subsystem while checkpointing a program, please be aware that the amount of space needed for the checkpointing files will be increased by the value of MP_BUFFER_MEM.

MP_CSS_INTERRUPT
Determines whether or not arriving message packets cause interrupts. This may provide better performance for certain applications. Valid values are yes and no. If not set, the default is no.

MP_EAGER_LIMIT
Changes the threshold value for message size, above which rendezvous protocol is used.

MP_INTRDELAY
Allows user programs to tune the delay parameter without having to recompile existing applications.

MP_MAX_TYPEDEPTH
Changes the maximum depth of message buffer types.

MP_USE_FLOW_CONTROL
Limits the maximum number of outstanding messages posted by a sender.

MP_THREAD_STACKSIZE
Determines the additional stacksize allocated for user programs executing on an MPI service thread. If you allocate insufficient space, the program may encounter a SIGSEGV exception.

MP_SINGLE_THREAD
Avoids mutex lock overheads in a single threaded program. This is an optimization flag, with values of no and yes. The default value is no, which means multiple user message passing threads are assumed.

Note:MPI-IO cannot be used if this is set to YES. Results are undefined if this is YES, with multiple message passing threads in use.

MP_WAIT_MODE
Determines how a thread or task behaves when it discovers it is blocked, waiting for a message to arrive. Values are poll, yield, and sleep. The default mode for the signal handling library is poll for US, and sleep for IP.

MP_POLLING_INTERVAL
Defines the polling interval in microseconds. The maximum interval is approximately 2 billion microseconds (2000 seconds). The default is 180,000 microseconds for IP, and 400,000 microseconds for US.

The following are miscellaneous environment variables:

MP_EUIDEVELOP
Determines whether or not the message passing interface performs more detailed checking during execution. This additional checking is intended for developing applications, and can significantly slow performance. Valid values are yes or no, deb (for "debug"), nor (for "normal"), and min (for "minimum"). The debug and min values are used to start and stop parameter checking. If not set, the default is no. The value of this environment variable can be overridden using the -euidevelop flag.

MP_FENCE
Determines a fence_string to be used for separating options you want parsed by POE from those you do not. Valid values are any string, and there is no default. Once set, you can then use the fence_string followed by additional_options on the poe command line. The additional_options will not be parsed by POE. This environment variable has no associated command-line flag.

MP_NOARGLIST
Determines whether or not POE ignores the argument list. Valid values are yes and no. If set to yes, POE will not attempt to remove POE command-line flags before passing the argument list to the user's program. This environment variable has no associated command-line flag.

MP_PMLIGHTS
Indicates the number of lights displayed per row on the Program Marker Array.

MP_PRIORITY
Determines a dispatch priority adjustment class for execution. See IBM Parallel Environment for AIX: Installation for more information on dispatch priority classes. Valid values are any of the dispatch priority classes set up by the system administrator in the file /etc/poe.priority. This environment variable has no associated command-line flag.

MP_USRPORT
Indicates the port id used by the Partition Manager to connect to the Program Marker Array. By default, the Partition Manager connects to the Array using a socket assigned to port 9999. If you get an error message indicating that the port is in use, specify a different port. Standard TCP/IP practice suggests using ports greater than 5000 and less than 10000.

MP_COREDIR
Creates a separate directory for each task's core file.

EXAMPLES

  1. Assume the MP_PGMMODEL environment variable is set to spmd, and MP_PROCS is set to 6. To load and execute the SPMD program sample on the six remote nodes of your partition, enter:
    poe sample
    

  2. Assume you have an MPMD application consisting of two programs - master and workers. These programs are designed to run together and communicate via calls to message passing subroutines. The program master is designed to run on one processor node. The workers program is designed to run as separate tasks on any number of other nodes. The MP_PGMMODEL environment variable is set to mpmd, and MP_PROCS is set to 6. To individually load the six remote nodes with your MPMD application, enter:
    poe
    

    Once the partition is established, the poe command responds with the prompt:

    0:host1_name>
    

    To load the master program as task 0 on host1_name, enter:

    master
    

    The poe command responds with a prompt for the next node to load. When you have loaded the last node of your partition, the poe command displays the message Partition loaded... and begins execution.

  3. Assume you want to run three SPMD programs - setup, computation, and cleanup - as job steps on the same partition of nodes. The MP_PGMMODEL environment variable is set to spmd, and MP_NEWJOB is set to yes. You enter:
    poe
    

    Once the partition is established, the poe command responds with the prompt:

    Enter program name (or quit):
    

    To load the program setup, enter:

    setup
    

    The program setup executes on all nodes of your partition. When execution completes, the poe command again prompts you for a program name. Enter the program names in turn. To release the partition, enter:

    quit
    

  4. To check the process status (using the non-parallel command ps) for all remote nodes in your partition, enter:
    poe ps
    

FILES

host.list (Default host list file)

RELATED INFORMATION

Commands: mpcc(1), mpcc_r(1), mpCC(1), mpCC_r(1), mpxlf(1), mpxlf_r(1), pdbx(1), pedb(1), pmarray(1), vt(1), xprofiler(1)

poeauth

NAME

poeauth - Allows you to copy Distributed File System (DFS) credentials to all nodes on which you want to run POE jobs.

SYNOPSIS

poeauth [POE options]

DESCRIPTION

The poeauth command allows you to copy DFS credentials to all nodes on which you want to run POE jobs. You can use any POE command line flag or environment variable with poeauth, because it is a POE application. Before running poeauth, you must run dce_login from task 0 (where DFS/DCE credentials reside). The credentials must reside on task 0 for poeauth to copy them. In order to be properly authorized, you must run poeauth before running any POE applications. When the credentials are copied, there is no need to use poeauth until the credentials expire.

Return codes are:
Note:The actual command return code value is 128 plus the unsigned return code value. That is, a return code of -2 will give a value of 130. For more information, see the "Exit Status" section in IBM Parallel Environment for AIX: MPI Programming and Subroutine Reference

-1

error reading KRB5CCNAME environment variable

-3

credentials files not found on home node, task 0

-4

could not open credentials file for read

-5

no room on destination node's filesystem

-6

error opening file output file

-7

error creating output file

-8

error writing to output file

-9

MPI_Send of data failed

-10

Final MPI_Send failed

-11

MPI_Recv failed

-13

error creating unique id for credentials

-14

error opening /tmp/poedce_master file

-15

error creating /tmp/poedce_master file

-16

error writing to /tmp/poedce_master file

EXAMPLES

  1. To copy the credentials to the first 32 nodes listed in the host list file named "my_hosts" in your home directory, enter:
    poeauth -procs 32 -hfile $HOME/my_hosts -labelio yes -pmdlog yes
    

Note:If you were previously set up to use a PMD suffix, remember to set the MP_PMDSUFFIX environment variable and export it before running poeauth.

RELATED INFORMATION

Commands: poe(1), pdbx(1), pedb(1)

poekill

NAME

poekill - terminates all remote tasks for a give program.

SYNOPSIS

poe poekill pgm_name [poe_options]
 
 
 
or
 
 
 
rsh remote_node poekill pgm_name
 

poekill is a Korn shell script that searches for the existence of running programs (named pgm_name) owned by the user, and terminates them via SIGTERM signals. If run under POE, poekill uses the standard POE mechanism for identifying the set of remote nodes (host.list, Resource Manager, etc.). If run under rsh, poekill applies only to the node specified as remote_node.

FLAGS

When run as a POE program, standard POE flags apply.

DESCRIPTION

poekill determines the user ID of the user that submitted the command. It then uses the ID to obtain a list of active processes, which is filtered by the pgm_name argument into a scratch file in /tmp. The file is processed by an awk script that sends a SIGTERM signal (15) to each process in the list, and echoes the action back to the user. The scratch file is then erased, and the script exits with code of 0.

If you do not provide a pgm_name, an error message is printed and the script exits with a code of 0.

The pgm_name can be a substring of the program name.

RELATED INFORMATION

Commands: rsh(1), poe(1), kill(1)

poestat

NAME

poestat - Starts the System Status Array, which is an X-Windows tool for monitoring the operational status and CPU utilization of processor nodes.

SYNOPSIS

poestat [-norm]

The poestat command starts the System Status Array. This X-Windows tool lets you quickly survey the utilization of processor nodes. Normally, this would be run in the background.

FLAGS

-norm

Indicates that a job management system, which would normally be used to select nodes for monitoring, is not available. Instead, the System Status Array program selects for monitoring each of the nodes on the LAN that have the VT Statistics Collector Daemon (digd) running. It also selects each of the nodes listed in the host list file indicated by the MP_HOSTFILE environment variable. If you are monitoring nodes of an RS/6000 network cluster, you must use this flag.

DESCRIPTION

The poestat command starts the System Status Array. This X-Windows monitoring tool lets you quickly survey the utilization of processor nodes. The Array consists of a number of squares, each representing a processor node of your SP system or cluster. The squares are colored pink and yellow to show the instantaneous percent of CPU utilization for each processor node. If a square were to appear all pink, the node would be at 0 percent utilization. If a square were to appear all yellow, it would be at 100 percent utilization. To the right of the Array is a node list which contains the name of each node shown in the Array. The nodes are listed in the order in which they were contacted, left to right, starting with the top row of the Array. You use this list to identify the name of a node represented in the Array.

In order to use this tool, the Visualization Tool's Statistics Collector Daemon process (digd) needs to be running on each of the nodes you wish to monitor. The daemon feeds the System Status Array with the CPU information it displays, and is created on each of your nodes as part of the Visualization Tool's installation procedure. The digd statistics collector daemon can also feed information to the Visualization Tool. If a square on the Array appears gray, the node is unavailable for monitoring. It either does not have the Statistics Collector daemon running, or the Array cannot communicate with it.

ENVIRONMENT VARIABLES

MP_HOSTFILE
This environment variable is normally associated with node allocation. However, it is also checked by the poestat command when running with the -norm option. It determines the name of a host list file to use in selecting nodes for monitoring. If not set, the default is host.list in your current directory.

MP_RESD
Identifies whether or not node data for allocated nodes received from a job management system (LoadLeveler or the SP system Resource Manager) should be filtered with a host list file. If MP_RESD=yes, and a host list file is specified, only those nodes allocated by the job management system and listed in the host list file will be displayed. This option is useful if you would like to view selected job management system allocated nodes or view up to 512 nodes. To view 512 nodes, create two host list files. Each file can contain up to 255 nodes. Set MP_HOSTFILE to one of the host list files and start poestat in the background. Set MP_HOSTFILE to the other host list file and start another poestat in the background. Two instances of poestat will be running, each displaying a different set of 255 nodes. If MP_RESD=no, the job management system node data will not be displayed (similar to the -norm command line option). For more information, see "Step 3e: Set the MP_RESD Environment Variable".

SP_NAME
Identifies the control workstation of the SP system. This should only be used when all nodes to be monitored exist in a PSSP 2.3.0 or 2.4.0 partition. This is the only case that results in poestat contacting the Resource Manager rather than LoadLeveler for node allocation requests. When running poestat from a workstation that is external to the SP system, and using the Resource Manager, the ssp.clients fileset must be installed on the external node (see IBM Parallel Environment for AIX: Installation for more information).

EXAMPLES

To start the System Status Array as a background process when the SP system Resource Manager is available, enter:

poestat &

To start the System Status Array as a background process to monitor an RS/6000 network cluster, enter:

poestat -norm &

To display 512 resource manager nodes, enter:

export MP_RESD=yes
 
export MP_HOSTFILE= a host list file with 1st 255 nodes
 
poestat &
 
export MP_HOSTFILE= a host list file with 2nd 255 nodes
 
poestat &

FILES

host.list (Default host list file)

RELATED INFORMATION

Commands: vt(1)


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]