IBM Books

Hitchhiker's Guide


Appendix E. Glossary of Terms and Abbreviations

This glossary includes terms and definitions from:

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

address
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 destination.

AIX
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 following components:

API
Application Programming Interface.

application
The use to which a data processing system is put; for example, topayroll application, an airline reservation application.

argument
A parameter passed between a calling program and a called program or subprogram.

attribute
A named property of an entity.

B

bandwidth
The total available bit rate of a digital channel.

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 be received.

breakpoint
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 specified program.

broadcast operation
A communication operation in which one processor sends (or broadcasts) a message to all other processors.

buffer
A portion of storage used to hold input or output data temporarily.

C

C
A general purpose programming language. It was formalized by ANSI standards committee for the C language in 1984 and by Uniforum in 1983.

C++
A general purpose programming language, based on C, which includes extensions that support an object-oriented programming paradigm. Extensions include:

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 Gauss-Seidel.

client
A function that requests services from a server, and makes them available to the user.

cluster
A group of processors interconnected through a high speed network that can be used for high performance computing. It typically provides excellent price/performance.

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 aliases.

Communication Subsystem (CSS)
A component of the IBM AIX Parallel System Support Programs that provides software support for the High Performance Switch. It 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.

communicator
An MPI object that describes the communication context and an associated group of processes.

compile
To translate a source program into an executable program.

condition
One of a set of specified values that a data item can assume.

control workstation
A workstation attached to the IBM RS/6000 SP that serves as a single point of control allowing the administrator or operator to monitor and manage the system using IBM AIX 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 dump.

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.

D

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 independently.

data parallelism
Refers to situations where parallel tasks perform the same computation on different sets of data.

dbx
A symbolic command line debugger that is often provided with UNIX systems. The PE command line debugger, pdbx, is based on the dbx debugger.

debugger
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 IBM AIX Parallel System Support Programs command that lets you issue commands to a group of hosts in parallel. See the IBM RISC System/6000 Scalable POWERparallel Systems: Command and Technical Reference (GC23-3900-00) for details.

domain name
The hierarchical identification of a host system (in a network), consisting of human-readable labels, separated by decimals.

E

Earth
Mostly harmless.

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.

event
An occurrence of significance to a task; for example, the completion of an asynchronous operation such as an input/output operation.

Ethernet
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 method.

executable
A program that has been link-edited and therefore can be run in a processor.

execution
To perform the actions specified by a program or a portion of a program.

expression
In programming languages, a language construct for computing a value from one or more operands.

F

fairness
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 lock.

FDDI
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 minidisk.

fileset
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.

Fortran
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.

forty-two (42)
1) The answer to Life! The Universe! And Everything! It was originally determined by the great computer Deep Thought many millions of years ago for a race of hyperintelligent pandimensional beings. 2) The smallest whole number greater than forty-one.

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 arcs.

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 function cycle.

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 independent processors.

functional parallelism
Refers to situations where parallel tasks specialize in particular work.

G

Gauss-Seidel
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.

gprof
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 pointing device.

H

High Performance Switch
The high-performance message passing network, of the IBM RS/6000 SP(SP) machine, that connects all processor nodes.

HIPPI
High performance parallel interface.

hook
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.

host
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.

I

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.

Internet
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 High Performance Switch library, provided with the IBM AIX Parallel System Support Programs, that follows the IP protocol of TCP/IP.

IP
See Internet Protocol.

J

Jacobi-Seidel
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.

K

Kerberos
A publicly available security and authentication product that works with the IBM AIX Parallel System Support Programs software to authenticate the execution of remote commands.

kernel
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.

L

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:



View figure.

The two-dimensional version of Laplace's equation may be written as:



View figure.

latency
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.

LoadLeveler
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 system.

local variable
A variable that is defined and used only in one specified portion of a computer program.

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.

M

Marketing Division of the Sirius Cybernetics Corporation
A bunch of mindless jerks who'll be the first against the wall when the revolution comes. (1)

menu
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 source code.

message passing
Refers to the process by which parallel tasks explicitly exchange program data.

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.

MPI
Message Passing Interface; a standardized API for implementing the message passing model.

N

network
An interconnected group of nodes, lines, and terminals. A network provides the ability to transmit data to and receive data from other systems and users.

node
(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 processor).

node ID
A string of unique characters that identifies the node on a network.

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.

O

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 memory.

optimization
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 line options.

P

package
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.

parallelism
The degree to which parts of a program may be concurrently executed.

parallelize
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.

parameter
* (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 request.

partition
(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 environments.

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
pdbx is the parallel, symbolic command line debugging facility of PE. pdbx is based on the dbx debugger and has a similar interface.

PE
The IBM Parallel Environment for AIX program product.

performance monitor
A utility which displays how effectively a system is being used by programs.

POE
See Parallel Operating Environment.

pool
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.

procedure
(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 performed.

process
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 identifier (pid).

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.

prof
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.

profiling
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 execution profile.

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 execution.

pthread
A thread that conforms to the POSIX Threads Programming Model.

R

Ravenous Bugblatter Beast of Traal (RBBT)
A creature so mind-bogglingly stupid that it thinks if you can't see it, it can't see you. Ravenous Bugblatter Beasts often make a very good meal for visiting tourists.

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 working.

remote shell (rsh)
A command supplied with both AIX and the IBM AIX Parallel System Support Programs that lets you issue commands on a remote host.

Report
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 an IBM RS/6000 SP (SP) machine. It prevents parallel jobs from interfering with each other, and reports job-related node information.

RISC
Reduced Instruction Set Computing (RISC), the technology for today's high performance personal computers and workstations, was invented in 1975.

S

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 address.

server
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.

SP
IBM RS/6000 SP; a scalable system from two to 128 processor nodes, arranged in various physical configurations, that provides a high powered computing environment.

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 command.

stencil
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).

subroutine
(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.

synchronization
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 Environment.

System Data Repository
A component of the IBM AIX 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 nodes.

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 nodes.

T

task
A unit of computation analogous to an AIX process.

thread
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 system concurrently.

tracing
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.

tracepoint
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.

U

unrolling loops
See loop unrolling.

US
See user space.

user
(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 High Performance Switch, that maximizes the performance capabilities of the SP hardware.

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.

V

variable
(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.

view
(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 descriptive name.

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, Vol. 2

VT
See Visualization Tool.

X

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.

xpdbx
This is the former name of the PE graphical interface debugging facility, which is now called pedb.

Xprofiler
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.

Footnotes:

(1) The editors welcome applications from anyone interested in taking over the post of robotics correspondent (this is a joke...get it?).


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