Glossary

basic block

A set of instructions with a single entry point, a single exit point, and no branches into or out of the set.

bead

A record in an experiment file.

blocking

Waiting in the kernel for a resource to become available.

caliper points

Markers in the time domain that can be used to delimit a performance analysis. For instance, you may want to analyze only the CPU-bound part of your code.

call stack

A software stack of functions and routines used by the running program. The functions and routines are listed in the reverse order, from top to bottom, in which they were called. If function a is immediately below function b in the stack, then a was called by b. The function at the bottom of the stack is the one currently executing.

collective calls

Move a message from one processor to multiple processors or from multiple processors to one processor.

context switch

When the system scheduler stops a job from executing and replaces it with another job.

cord mapping file

A file containing a list of functions, their sizes, and their addresses.

CPU time

Process virtual time (see the glossary entry) plus time spent when the system is running on behalf of the process, performing such tasks as executing a system call. This is the time returned in pcsamp and usertime experiments.

disassembly

Assembly language version of the program.

exclusive time

The time spent only in the function itself, not including any functions it might call.

heartbeat resource data

Resource usage data (such as CPU time, wait time, I/O transfers, and so on) recorded at regular intervals. The cvperf usage view graphs are drawn using this data.

HIPPI

The High Performance Parallel Interface is a network link, often used to connect computers. It is slower than shared memory transfers but faster than TCP/IP transfers.

inclusive time

The total time spent in a function and all the functions it calls.

instrumenting

A method of collecting data by inserting code into the executable program to count events, such as the number of times a section of the program executes.

interlock

A feature of the CPU that causes a stall when resources are not available.

load imbalance

When the work in a parallel program is not evenly distributed among the processors, causing some processors to wait while the others finish their tasks.

memory leak

Making malloc calls without the corresponding calls to free. The result is that the amount of heap memory used continues to increase as the process runs.

memory page

The smallest unit of memory handled by the operating system. It is usually either 4 or 16 Kbytes.

page fault

A problem resulting in the possible loss of data. A high page fault rate is an indication of a memory-bound situation.

PC

Program counter. A register that contains the address of the instruction that is currently executing.

phase

A part of a program that concentrates on a single activity. Examples are the input phase, the computation phase, and the output phase.

point-to-point call

Moves a message from one processor to another single processor.

pollpoint

A regular time interval at which performance data is captured.

process virtual time

Time spent when a program is actually running. This does not include either 1) the time spent when the program is swapped out and waiting for a CPU or 2) the time when the operating system is in control, such as executing a system call for the program.

profiling

A method of collecting data by periodically examining and recording the program's program counter (PC), call stack, and hardware counters that measure resource consumption.

profiling time

This is the same as CPU time.

real time

The same as wall-clock time.

sample event

A point in the program at which the PC or some resource is sampled.

system time

The time during a program's execution during which the system has control. It could be performing I/O or executing a system call.

TCP/IP

A networking protocol that moves data between two systems on the Internet.

thrashing

Accessing data from different parts of memory, causing frequent loads of pages of memory into cache. Using random access on an array might be an example.

threshold

An upper limit. For example, in the Source View, any line of code that exceeds a threshold of resource usage is flagged in the display.

total time

The same as wall-clock time.

user time

The same as CPU time.

virtual address

A location in memory as it appears in a program. For example, a[10] is the virtual address of element 10 of the array a. Internally, the virtual address is translated into the computer's physical address.

virtual time

The same as process virtual time.

wall-clock time

The total time a program takes to execute, including the time it takes waiting for a CPU. This is real time, not computer time.

working set

Executable pages, functions, and instructions that are actually brought into memory during a phase or operation of the executable.