MPI Programming and Subroutine Reference
This glossary includes terms and definitions from:
- The Dictionary of Computing, New York: McGraw-Hill, 1994.
- The American National Standard Dictionary for Information
Systems, ANSI X3.172-1990, copyright 1990 by the American National
Standards Institute (ANSI). Copies can be purchased from the American
National Standards Institute, 1430 Broadway, New York, New York 10018.
Definitions are identified by the symbol (A) after the definition.
- The ANSI/EIA Standard - 440A: Fiber Optic Terminology, copyright 1989 by the Electronics Industries Association (EIA).
Copies can be purchased from the Electronic Industries Association, 2001
Pennsylvania Avenue N.W., Washington, D.C.
20006. Definitions are identified by the symbol (E) after the
- The Information Technology Vocabulary developed by Subcommittee 1, Joint Technical Committee 1, of the
International Organization for Standardization and the International
Electrotechnical Commission (ISO/IEC JTC1/SC1). Definitions of
published parts of this vocabulary are identified by the symbol (I) after the
definition; definitions taken from draft international standards, committee
drafts, and working papers being developed by ISO/IEC JTC1/SC1 are identified
by the symbol (T) after the definition, indicating that final agreement has
not yet been reached among the participating National Bodies of SC1.
This section contains some of the terms that are commonly used in the
Parallel Environment books and in this book in particular.
IBM is grateful to the American National Standards Institute (ANSI) for
permission to reprint its definitions from the American National Standard
Vocabulary for Information Processing (Copyright 1970 by American National Standards Institute, Incorporated),
which was prepared by Subcommittee X3K5 on Terminology and Glossary of the
American National Standards Committee X3. ANSI definitions are preceded
by an asterisk (*).
Other definitions in this glossary are taken from IBM Vocabulary for
Data Processing, Telecommunications,
and Office Systems (GC20-1699).
- A value, possibly a character or group of characters that identifies a
register, a device, a particular part of storage, or some other data source or
- Abbreviation for Advanced Interactive Executive, IBM's licensed
version of the UNIX operating system. AIX is particularly suited to
support technical computing applications, including high function graphics and
floating point computations.
- AIXwindows Environment/6000
- A graphical user interface (GUI) for the RS/6000. It has the
- A graphical user interface and toolkit based on OSF/Motif
- Enhanced X-Windows, an enhanced version of the MIT X Window System
- Graphics Library (GL), a graphical interface library for the applications
programmer which is compatible with Silicon Graphics' GL
- Application Programming Interface.
- The use to which a data processing system is put; for example, topayroll
application, an airline reservation application.
- A parameter passed between a calling program and a called program or
- A named property of an entity.
- The difference, expressed in hertz, between the highest and the lowest
frequencies of a range of frequencies. For example, analog transmission
by recognizable voice telephone requires a bandwidth of about 3000 hertz (3
kHz). The bandwidth of an optical link designates the
information-carrying capacity of the link and is related to the maximum bit
rate that a fiber link can support.
- blocking operation
- An operation which does not complete until the operation either succeeds
or fails. For example, a blocking receive will not return until a
message is received or until the channel is closed and no further messages can
- A place in a program, specified by a command or a condition, where the
system halts execution and gives control to the workstation user or to a
- broadcast operation
- A communication operation in which one processor sends (or broadcasts) a
message to all other processors.
- A portion of storage used to hold input or output data temporarily.
- A general purpose programming language. It was formalized by ANSI
standards committee for the C language in 1984 and by Uniforum in 1983.
- A general purpose programming language, based on C, which includes
extensions that support an object-oriented programming paradigm.
- strong typing
- data abstraction and encapsulation
- polymorphism through function overloading and templates
- class inheritance.
- call arc
- The representation of a call between two functions within the Xprofiler
function call tree. It appears as a solid line between the two
functions. The arrowhead indicates the direction of the call; the
function it points to is the one that receives the call. The function
making the call is known as the caller, while the function receiving
the call is known as the callee.
- chaotic relaxation
- An iterative relaxation method which uses a combination of the
Gauss-Seidel and Jacobi-Seidel methods. The array of discrete values is
divided into sub-regions which can be operated on in parallel. The
sub-region boundaries are calculated using Jacobi-Seidel, whereas the
sub-region interiors are calculated using Gauss-Seidel. See also
- A function that requests services from a server, and makes them available
to the user.
- A group of processors interconnected through a high speed network that can
be used for high-performance computing. It typically provides excellent
- collective communication
- A communication operation which involves more than two processes or
tasks. Broadcasts, reductions, and the MPI_Allreduce subroutine are all
examples of collective communication operations. All tasks in a
communicator must participate.
- command alias
- When using the PE command line debugger, pdbx, you can create
abbreviations for existing commands using the pdbx alias
command. These abbreviations are know as command
- Communication Subsystem (CSS)
- A component of the Parallel System Support Programs that provides software
support for the SP Switch. CSS provides two protocols: IP (Internet Protocol) for
LAN-based communication and US (user space) as a message passing interface
that is optimized for performance over the switch. See also
Internet Protocol and User Space.
- An MPI object that describes the communication context and an associated
group of processes.
- To translate a source program into an executable program.
- One of a set of specified values that a data item can assume.
- control workstation
- A workstation attached to the IBM RS/6000 SP SP that serves as a single
point of control allowing the administrator or operator to monitor and manage
the system using Parallel System Support Programs.
- core dump
- A process by which the current state of a program is preserved in a
file. Core dumps are usually associated with programs that have
encountered an unexpected, system-detected fault, such as a Segmentation
Fault, or severe user error. The current program state is needed for
the programmer to diagnose and correct the problem.
- core file
- A file which preserves the state of a program, usually just before a
program is terminated for an unexpected error. See also core
- current context
- When using either of the PE parallel debuggers, control of the parallel
program and the display of its data can be limited to a subset of the tasks
that belong to that program. This subset of tasks is called the
current context. You can set the current context to be a
single task, multiple tasks, or all the tasks in the program.
- data decomposition
- A method of breaking up (or decomposing) a program into smaller parts to
exploit parallelism. One divides the program by dividing the data
(usually arrays) into smaller parts and operating on each part
- data parallelism
- Refers to situations where parallel tasks perform the same computation on
different sets of data.
- A symbolic command line debugger that is often provided with UNIX
systems. The PE command line debugger, pdbx, is based on the
- A debugger provides an environment in which you can manually control the
execution of a program. It also provides the ability to display the
program's data and operation.
- distributed shell (dsh)
- An Parallel System Support Programs command that lets you issue commands
to a group of hosts in parallel. See IBM Parallel System Support
Programs for AIX: Command and
Technical Reference for details.
- domain name
- The hierarchical identification of a host system (in a network),
consisting of human-readable labels, separated by decimals.
- environment variable
- 1. A variable that describes the operating environment of the
process. Common environment variables describe the home directory,
command search path, and the current time zone. 2. A variable
that is included in the current software environment and is therefore
available to any called program that requests it.
- An occurrence of significance to a task; for example, the completion of an
asynchronous operation such as an input/output operation.
- Ethernet is the standard hardware for TCP/IP LANs in the UNIX
marketplace. It is a 10 megabit per second baseband type network that
uses the contention based CSMA/CD (collision detect) media access
- A program that has been link-edited and therefore can be run in a
- To perform the actions specified by a program or a portion of a
- In programming languages, a language construct for computing a value from
one or more operands.
- A policy in which tasks, threads, or processes must be allowed eventual
access to a resource for which they are competing. For example, if
multiple threads are simultaneously seeking a lock, then no set of
circumstances can cause any thread to wait indefinitely for access to the
- Fiber distributed data interface (100 Mbit/s fiber optic LAN).
- file system
- In the AIX operating system, the collection of files and file management
structures on a physical or logical mass storage device, such as a diskette or
- 1) An individually installable option or update. Options provide
specific function while updates correct an error in, or enhance, a previously
installed product. 2) One or more separately installable, logically
grouped units in an installation package. See also Licensed
Program Product and package.
- foreign host
- See remote host.
- One of the oldest of the modern programming languages, and the most
popular language for scientific and engineering computations. It's
name is a contraction of FORmula TRANslation. The two most
common Fortran versions are Fortran 77, originally standardized in 1978, and
Fortran 90. Fortran 77 is a proper subset of Fortran 90.
- function call tree
- A graphical representation of all the functions and calls within an
application, which appears in the Xprofiler main window. The functions
are represented by green, solid-filled rectangles called function
boxes. The size and shape of each function box indicates its CPU
usage. Calls between functions are represented by blue arrows, called
call arcs, drawn between the function boxes. See also call
- function cycle
- A chain of calls in which the first caller is also the last to be
called. A function that calls itself recursively is not considered a
- functional decomposition
- A method of dividing the work in a program to exploit parallelism.
One divides the program into independent pieces of functionality which are
distributed to independent processors. This is in contrast to data
decomposition which distributes the same work over different data to
- functional parallelism
- Refers to situations where parallel tasks specialize in particular
- An iterative relaxation method for solving Laplace's equation.
It calculates the general solution by finding particular solutions to a set of
discrete points distributed throughout the area in question. The values
of the individual points are obtained by averaging the values of nearby
points. Gauss-Seidel differs from Jacobi-Seidel in that for the i+1st
iteration Jacobi-Seidel uses only values calculated in the ith
iteration. Gauss-Seidel uses a mixture of values calculated in the ith
and i+1st iterations.
- global max
- The maximum value across all processors for a given variable. It is
global in the sense that it is global to the available processors.
- global variable
- A variable defined in one portion of a computer program and used in at
least one other portion of the computer program.
- A UNIX command that produces an execution profile of C, Pascal, Fortran,
or COBOL programs. The execution profile is in a textual and tabular
format. It is useful for identifying which routines use the most CPU
time. See the man page on gprof.
- GUI (Graphical User Interface)
- A type of computer interface consisting of a visual metaphor of a
real-world scene, often of a desktop. Within that scene are icons,
representing actual objects, that the user can access and manipulate with a
- SP Switch
- The high-performance message passing network, of the IBM RS/6000 SP(SP)
machine, that connects all processor nodes.
- High performance parallel interface.
- hook is a pdbx command that allows you to
re-establish control over all task(s) in the current context that were
previously unhooked with this command.
- home node
- The node from which an application developer compiles and runs his
program. The home node can be any workstation on the LAN.
- A computer connected to a network, and providing an access method to that
network. A host provides end-user services.
- host list file
- A file that contains a list of host names, and possibly other information,
that was defined by the application which reads it.
- host name
- The name used to uniquely identify any computer on a network.
- hot spot
- A memory location or synchronization resource for which multiple
processors compete excessively. This competition can cause a
disproportionately large performance degradation when one processor that seeks
the resource blocks, preventing many other processors from having it, thereby
forcing them to become idle.
- IBM Parallel Environment for AIX
- A program product that provides an execution and development environment
for parallel FORTRAN, C, or C++ programs. It also includes tools for
debugging, profiling, and tuning parallel programs.
- installation image
- A file or collection of files that are required in order to install a
software product on a RS/6000 workstation or on SP system nodes. These
files are in a form that allows them to be installed or removed with the AIX
installp command. See also fileset, Licensed
Program Product, and package.
- The collection of worldwide networks and gateways which function as a
single, cooperative virtual network.
- Internet Protocol (IP)
- 1) The TCP/IP protocol that provides packet delivery between the hardware
and user processes. 2) The SP Switch library, provided with the Parallel System Support Programs, that
follows the IP protocol of TCP/IP.
- See Internet Protocol.
- See Gauss-Seidel.
- job management system
The software you use to manage the jobs across your system, based on the
availability and state of system resources.
- A publicly available security and authentication product that works with
the Parallel System Support Programs software to authenticate the execution of
- The core portion of the UNIX operating system which controls the resources
of the CPU and allocates them to the users. The kernel is
memory-resident, is said to run in kernel mode (in other words, at
higher execution priority level than user mode) and is protected
from user tampering by the hardware.
- Laplace's equation
- A homogeneous partial differential equation used to describe heat
transfer, electric fields, and many other applications.
The dimension-free version of Laplace's equation is:
The two-dimensional version of Laplace's equation may be written
- The time interval between the instant at which an instruction control unit
initiates a call for data transmission, and the instant at which the actual
transfer of data (or receipt of data at the remote end) begins. Latency
is related to the hardware characteristics of the system and to the different
layers of software that are involved in initiating the task of packing and
transmitting the data.
- Licensed Program Product (LPP)
- A collection of software packages, sold as a product, that customers pay
for to license. It can consist of packages and filesets a customer
would install. These packages and filesets bear a copyright and are
offered under the terms and conditions of a licensing agreement. See
also fileset and package.
- A job management system that works with POE to allow users to run jobs and
match processing needs with system resources, in order to better utilize the
- local variable
- A variable that is defined and used only in one specified portion of a
- loop unrolling
- A program transformation which makes multiple copies of the body of a
loop, placing the copies also within the body of the loop. The loop
trip count and index are adjusted appropriately so the new loop computes the
same values as the original. This transformation makes it possible for
a compiler to take additional advantage of instruction pipelining, data cache
effects, and software pipelining.
See also optimization.
- A list of options displayed to the user by a data processing system, from
which the user can select an action to be initiated.
- message catalog
- A file created using the AIX Message Facility from a message source file
that contains application error and other messages, which can later be
translated into other languages without having to recompile the application
- message passing
- Refers to the process by which parallel tasks explicitly exchange program
- MIMD (Multiple Instruction Multiple Data)
- A parallel programming model in which different processors perform
different instructions on different sets of data.
- MPMD (Multiple Program Multiple Data)
- A parallel programming model in which different, but related, programs are
run on different sets of data.
- Message Passing Interface; a standardized API for implementing the message
- An interconnected group of nodes, lines, and terminals. A network
provides the ability to transmit data to and receive data from other systems
- (1) In a network, the point where one or more functional units
interconnect transmission lines. A computer location defined in a
network. (2) In terms of the IBM RS/6000 SP, a single location or
workstation in a network. An SP node is a physical entity (a
- node ID
- A string of unique characters that identifies the node on a
- nonblocking operation
- An operation, such as sending or receiving a message, which returns
immediately whether or not the operation was completed. For example, a
nonblocking receive will not wait until a message is sent, but a blocking
receive will wait. A nonblocking receive will return a status value
that indicates whether or not a message was received.
- object code
- The result of translating a computer program to a relocatable, low-level
form. Object code contains machine instructions, but symbol names (such
as array, scalar, and procedure names), are not yet given a location in
- A not strictly accurate but widely used term for program performance
improvement, especially for performance improvement done by a compiler or
other program translation software. An optimizing compiler is one that
performs extensive code transformations in order to obtain an executable that
runs faster but gives the same answer as the original. Such code
transformations, however, can make code debugging and performance analysis
very difficult because complex code transformations obscure the correspondence
between compiled and original source code.
- option flag
- Arguments or any other additional information that a user specifies with a
program name. Also referred to as parameters or command
- A number of filesets that have been collected into a single installable
image of program products, or LPPs. Multiple filesets can be bundled
together for installing groups of software together. See also
fileset and Licensed Program Product.
- The degree to which parts of a program may be concurrently
- To convert a serial program for parallel execution.
- Parallel Operating Environment (POE)
- An execution environment that smooths the differences between serial and
parallel execution. It lets you submit and manage parallel jobs.
It is abbreviated and commonly known as POE.
- * (1) In Fortran, a symbol that is given a constant value for a specified
application. (2) An item in a menu for which the operator specifies a
value or for which the system provides a value when the menu is
interpreted. (3) A name in a procedure that is used to refer to an
argument that is passed to the procedure. (4) A particular piece of
information that a system or application program needs to process a
- (1) A fixed-size division of storage. (2) In terms of the IBM
RS/6000 SP, a logical definition of nodes to be viewed as one system or
domain. System partitioning is a method of organizing the SP into
groups of nodes for testing or running different levels of software of product
- Partition Manager
- The component of the Parallel Operating Environment (POE) that allocates
nodes, sets up the execution environment for remote tasks, and manages
distribution or collection of standard input (STDIN), standard output
(STDOUT), and standard error (STDERR).
- pdbx is the parallel, symbolic command line debugging facility
of PE. pdbx is based on the dbx debugger and has
a similar interface.
- The IBM Parallel Environment for AIX program product.
- performance monitor
- A utility which displays how effectively a system is being used by
- See Parallel Operating Environment.
- Groups of nodes on an SP that are known to the Resource Manager, and are
identified by a number.
- point-to-point communication
- A communication operation which involves exactly two processes or
tasks. One process initiates the communication through a
send operation. The partner process issues a
receive operation to accept the data being sent.
- (1) In a programming language, a block, with or without formal parameters,
whose execution is invoked by means of a procedure call. (2) A set of
related control statements that cause one or more programs to be
- A program or command that is actually running the computer. It
consists of a loaded version of the executable file, its data, its stack, and
its kernel data structures that represent the process's state within a
multitasking environment. The executable file contains the machine
instructions (and any calls to shared objects) that will be executed by the
hardware. A process can contain multiple threads of execution.
The process is created via a fork() system call and ends using
an exit() system call. Between fork and
exit, the process is known to the system by a unique process
Each process has its own virtual memory space and cannot access another
process's memory directly. Communication methods across processes
include pipes, sockets, shared memory, and message passing.
- A utility which produces an execution profile of an application or
program. It is useful to identifying which routines use the most CPU
time. See the man page for prof.
- The act of determining how much CPU time is used by each function or
subroutine in a program. The histogram or table produced is called the
- Program Marker Array
- An X-Windows run time monitor tool provided with Parallel Operating
Environment, used to provide immediate visual feedback on a program's
- A thread that conforms to the POSIX Threads Programming Model.
- reduction operation
- An operation, usually mathematical, which reduces a collection of data by
one or more dimensions. For example, the arithmetic SUM operation is a
reduction operation which reduces an array to a scalar value. Other
reduction operations include MAXVAL and MINVAL.
- remote host
- Any host on a network except the one at which a particular operator is
- remote shell (rsh)
- A command supplied with both AIX and the Parallel System Support Programs
that lets you issue commands on a remote host.
- In Xprofiler, a tabular listing of performance data that is derived from
the gmon.out files of an application. There are five types of
reports that are generated by Xprofiler, and each one presents different
statistical information for an application.
- Resource Manager
- A server that runs on one of the nodes of a IBM RS/6000 SP (SP)
machine. It prevents parallel jobs from interfering with each other,
and reports job-related node information.
- Reduced Instruction Set Computing (RISC), the technology for today's
high-performance personal computers and workstations, was invented in
- shell script
- A sequence of commands that are to be executed by a shell interpreter such
as C shell, korn shell, or Bourne shell. Script commands are stored in
a file in the same form as if they were typed at a terminal.
- segmentation fault
- A system-detected error, usually caused by referencing an invalid memory
- A functional unit that provides shared services to workstations over a
network; for example, a file server, a print server, a mail server.
- signal handling
- A type of communication that is used by message passing libraries.
Signal handling involves using AIX signals as an asynchronous way to move data
in and out of message buffers.
- source line
- A line of source code.
- source code
- The input to a compiler or assembler, written in a source language.
Contrast with object code.
- IBM RS/6000 SP; a scalable system from two to 128 processor nodes,
arranged in various physical configurations, that provides a high-powered
- SPMD (Single Program Multiple Data)
- A parallel programming model in which different processors execute the
same program on different sets of data.
- standard input (STDIN)
- In the AIX operating system, the primary source of data entered into a
command. Standard input comes from the keyboard unless redirection or
piping is used, in which case standard input can be from a file or the output
from another command.
- standard output (STDOUT)
- In the AIX operating system, the primary destination of data produced by a
command. Standard output goes to the display unless redirection or
piping is used, in which case standard output can go to a file or to another
- A pattern of memory references used for averaging. A 4-point
stencil in two dimensions for a given array cell, x(i,j), uses the four
adjacent cells, x(i-1,j), x(i+1,j), x(i,j-1), and x(i,j+1).
- (1) A sequence of instructions whose execution is invoked by a
call. (2) A sequenced set of instructions or statements that may be
used in one or more computer programs and at one or more points in a computer
program. (3) A group of instructions that can be part of another
routine or can be called by another program or routine.
- The action of forcing certain points in the execution sequences of two or
more asynchronous procedures to coincide in time.
- system administrator
- (1) The person at a computer installation who designs, controls, and
manages the use of the computer system. (2) The person who is
responsible for setting up, modifying, and maintaining the Parallel
- System Data Repository
- A component of the Parallel System Support Programs software that provides
configuration management for the SP system. It manages the storage and
retrieval of system data across the control workstation, file servers, and
- System Status Array
- An X-Windows run time monitor tool, provided with the Parallel Operating
Environment, that lets you quickly survey the utilization of processor
- A unit of computation analogous to an AIX process.
- A single, separately dispatchable, unit of execution. There may be
one or more threads in a process, and each thread is executed by the operating
- In PE, the collection of data for the Visualization Tool (VT). The
program is traced by collecting information about the execution of
the program in trace records. These records are then accumulated into a
trace file which a user visualizes with VT.
- Tracepoints are places in the program that, when reached during execution,
cause the debugger to print information about the state of the program.
- trace record
- In PE, a collection of information about a specific event that occurred
during the execution of your program. For example, a trace record is
created for each send and receive operation that occurs in your program (this
is optional and may not be appropriate). These records are then
accumulated into a trace file which allows the Visualization Tool to visually
display the communications patterns from the program.
- unrolling loops
- See loop unrolling.
- See user space.
- (1) A person who requires the services of a computing system. (2)
Any person or any thing that may issue or receive commands and message to or
from the information processing system.
- user space (US)
- A version of the message passing library that is optimized for direct
access to the SP Switch, that maximizes the performance capabilities of the SP
- utility program
- A computer program in general support of computer processes; for example,
a diagnostic program, a trace program, a sort program.
- utility routine
- A routine in general support of the processes of a computer; for example,
an input routine.
- (1) In programming languages, a named object that may take different
values, one at a time. The values of a variable are usually restricted
to one data type. (2) A quantity that can assume any of a given set of
values. (3) A name used to represent a data item whose value can be
changed while the program is running. (4) A name used to represent data
whose value can be changed, while the program is running, by referring to the
name of the variable.
- (1) In an information resource directory, the combination of a variation
name and revision number that is used as a component of an access name or of a
- Visualization Tool
- The PE Visualization Tool. This tool uses information that is
captured as your parallel program executes, and presents a graphical display
of the program execution. For more information, see IBM Parallel
Environment for AIX: Operation and Use, Volume 2.
- See Visualization Tool.
- X Window System
- The UNIX industry's graphics windowing standard that provides
simultaneous views of several executing programs or processes on high
resolution graphics displays.
- This is the former name of the PE graphical interface debugging facility,
which is now called pedb.
- An AIX tool that is used to analyze the performance of both serial and
parallel applications, via a graphical user interface. Xprofiler
provides quick access to the profiled data, so that the functions that are the
most CPU-intensive can be easily identified.
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]