next up previous contents
Next: Syntax of the TASK_REGION Up: Approved Extensions for Data and Previous: RESIDENT Directives Applied to

The TASK_REGION Construct


Task parallelism is expressed in HPF by mapping data objects onto subsets of processors and adding assertions that allow concurrent execution of different code blocks on different processor subsets. A data object is mapped to a processor subset by distribution onto a subsection of a processors arrangement. Execution on a subset of processors is specified by using an ON directive. This section introduces a TASK_REGION directive that allows the user to specify that disjoint processor subsets can execute blocks of code concurrently.

A TASK_REGION directive is used to assert that a block of code satisfies the following set of constraints. All lexically outermost ON blocks inside a task region must have a RESIDENT attribute implying that all data accessed inside them is mapped to the corresponding active processor subset. Further, the code inside two such ON blocks must not have interfering I/O. Under these constraints, two such ON blocks can safely execute concurrently if they execute on disjoint processor subsets.