User`s guide
Glossary
barrier
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.
block scheduling
A method of loop scheduling 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 contiguous
iterations to each stream. The advantages to this method are that data in registers can
be reused across adjacent iterations, and that there is no overhead due to accessing a
shared iteration counter
dependence analysis
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 scheduling
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.
fork
Occurs when processors allocate additional streams to a thread at the point where it is
creating new threads for a parallel loop operation.
full-empty state
Indicates whether a variable contains a value (full) or not (empty). Generic read and
write operations use this state to determine whether they can perform an operation on
the variable. For example, a writeef operation can only write a value to a variable if
the state is empty. After the write operation, it sets the state to full.
S–2479–20 167