# IBM Visualization Data Explorer Programmer's Reference

[ Bottom of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]

## 13.8 Parallelism

Note on Use
Modules used exclusively in a uniprocessor environment do not require any of the routines described in this section. However, modules that use these routines on a parallel processor can also be run on a uniprocessor without changing any code.

Task Groups constitute a mechanism for specifying a collection of tasks to be performed in parallel on a multiprocessor. The task model provides simple fork/join semantics, suitable for coarse-grain parallelism:

1. Begin a collection of tasks to be executed in parallel (with `DXCreateTaskGroup()`)
2. Specify each task (with `DXAddTask()`)
3. Complete the task Group and begin execution (with `DXExecuteTaskGroup()`). Creating all the tasks first simplifies the model and allows optimal scheduling on the basis of estimated task-completion times.

Notes on Use
It is important that all information required by parallel tasks be in global memory. This condition is generally met by passing Objects to tasks, since all Objects are in global memory. Tasks must not attempt to modify the same data structures simultaneously, with the exception of adding members to an existing Group (using `DXSetGroupMember()`).

`Error DXCreateTaskGroup()` | Starts a new Group of tasks to be run in parallel. See DXCreateTaskGroup.
`Error DXAddTask()` | Adds a task to be run later, in parallel if possible. See DXAddTask.
`Error DXAbortTaskGroup()` | Aborts a task group without executing it. See DXAbortTaskGroup.
`Error DXExecuteTaskGroup()` | Runs the Group of tasks in the current Group in parallel, if possible. See DXExecuteTaskGroup.
`int DXProcessors()` | Returns the number of processors. See DXProcessors.
`int DXProcessorId()` | Returns the current processor identifier. See DXProcessorId.

[ Top of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]
[Data Explorer Documentation | QuickStart Guide | User's Guide | User's Reference | Programmer's Reference | Installation and Configuration Guide ]

[Data Explorer Home Page | Contact Data Explorer | Same document on Data Explorer Home Page ]

[IBM Home Page | Order | Search | Contact IBM | Legal ]