# 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]

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