Tests divers 2

Décembre 2011

In code, a barrier is used after a phase. The barrier delays the streams that were executing parallel operations in the phase until all the streams from the phase reach the barrier. Once all the streams reach the barrier, the streams begin work on the next phase.

bladeProduct: Cray XMT

1) A field-replaceable physical entity. A Cray XMT service blade consists of AMD Opteron sockets, memory, Cray SeaStar chips, PCI-X or PCIe cards, and a blade control processor. A Cray XMT compute blade consists of Threadstorm processors, memory, Cray SeaStar chips, and a blade control processor. 2) From a system management perspective, a logical grouping of nodes and blade control processor that monitors the nodes on that blade.

Method of thread execution used by the compiler where contiguous blocks of loop iterations are divided equally and assigned to available streams. For example, if there are 100 loop iterations and 10 streams, the compiler assigns 10 iterations to each stream. The advantage to this method is that data in registers can be reused across adjacent iterations rather than releasing a stream after each iteration.

The hardware component of a Cray XMT cabinet that houses blades. Each cabinet contains three vertically stacked chassis, and each chassis contains eight vertically mounted blades. See also cage.

Cray SeaStar chipProduct: Cray XMT

The component of the system interconnection network that provides message routing and communication services. See also system interconnection network.

dependence analysisProduct: Cray XMT

A technique used by the compiler to determine if any iteration of a loop depends on any other iteration (this is known as a loop-carried dependency).

dynamic schedulingProduct: Cray XMT

In a dynamic schedule, the compiler does not bind iterations to streams at loop startup. Instead, streams compete for each iteration using a shared counter.

futureProduct: Cray XMT

Implements user-specified or explicit parallelism by starting new threads. A future is a sequence of code that can be executed by a newly created thread that is running concurrently with other threads in the program. Futures delay the execution of code if the code is using a value that is computed by a future, until the future completes. The thread that spawns the future uses parameters to pass information from the future to the waiting thread, which then executes. In a program, the term future is used as a type qualifier for a synchronization variable or as a keyword for a future statement.

induction variableProduct: Cray XMT

A variable that is increased or decreased by a fixed amount on each iteration of a loop.

inductive loopProduct: Cray XMT

An inductive loop is one which contains no loop-carried dependencies and has the following characteristics: a single entrance at the top of the loop; controlled by an induction variable; and has a single exit that is controlled by comparing the induction variable against an invariant.

interleaved schedulingProduct: Cray XMT

Method of executing loop iterations used by the compiler where contiguous iterations are assigned to distinct streams. For example, for a loop with 100 iterations and 10 streams, one stream performs iterations 1, 11, 21,... while another stream performs iterations 2, 12, 22, ..., and so on. This method is typically used for triangular loops because it reduces imbalances. One disadvantage to using this method is that there is loss of data reuse between loop iterations because the stream is released at the end of the iteration.

An administrator-defined portion of a physical Cray XMT system, operating as an independent computing resource.

loop-carried dependencesProduct: Cray XMT

The value from one iteration of a loop is used during a subsequent iteration of the loop. This type of loop cannot be parallelized by the compiler.

multicoreProduct: Cascade, Cray X2, Cray XMT, Cray XT series

A processor that combines multiple independent execution engines ("cores"), each with its own cache and cache controller.

multiprocessor modeProduct: Cray XMT

A mode that can be set at compile time that ensures that when the compiled application is run, iterations of a loop are run on multiple processors.

nodeProduct: Cray XT series, Cray XMT, Cray XE series, Cray X2

For CLE systems, the logical group of processor(s), memory, and network components that acts as a network end point on the system interconnection network.

phaseProduct: Cray XMT

A set of one or more sections of code that the stream executes in parallel. Each section contains an iteration of a loop. Phases and sections are contained in control flow code generated by the compiler to control the parallel execution of a function.

recurrenceProduct: Cray XMT

A recurrence occurs when a loop uses values computed in one iteration in subsequent iterations. These subsequent uses of the value imply loop-carried dependences and thus usually prevent parallelization. To increase parallelization, use linear recurrence.

reductionProduct: Cray XMT

A simple form of recurrence that reduces a large amount of data to a single value. It is commonly used to find the minimum and maximum elements of a vector. Although similar to a reduction, it is easier to parallelize and uses less memory.

regionProduct: Cray XMT

A region is an area in code where threads are forked in order to perform a parallel operation. The region ends at the point where the threads join back together at the end of the parallel operation.

service nodeProduct: Cray XMT

Performs support functions for applications and system services such as login, network, I/O, boot, and service database (SDB). Service nodes run a version of CLE.

single-processor modeProduct: Cray XMT

A mode that can be set at compile time that ensures that when the compiled application is run, iterations of a loop are run on a single processor.