User`s guide

Cray XMT Programming Environment Users Guide
future
Implements user-specified or explicit parallelism by creating a continuation that
points to a sequence of statements that may be executed by another idle thread.
Futures also optionally contain a return value. Execution of code that uses the return
value is delayed until the future completes. The thread that spawns the future uses
parameters to pass data to the thread that executes the future. In a program, the term
future is used as a type qualifier for a synchronization variable used to return the
value of a future or as a keyword for a future statement.
induction variable
A variable that is increased or decreased by a fixed amount on each iteration of a
loop.
inductive loop
A loop that 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 scheduling
A 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 adjacent
iterations are not executed by the same stream.
join
Occurs when threads that are forked for a parallel operation finish the operation.
As threads finish and drop the streams they are running on, the streams join back
together until there is a single stream running the thread.
linear recurrence
A special type of recurrence that can be parallelized.
loop-carried dependences
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.
168 S247920