#!F-adobe-helvetica-medium-r-normal--18* #!N #!CNavyBlue #!N #!Rplsm Parallelism #!N #!EC #!CIndianRed #!N #!N #!N #!F-adobe-times-bold-r-normal--18* Note on Use #!N #!N 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. #!N #!N #!EC #!N #!N 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: #!N #!I0 #!N #!F-adobe-times-medium-r-normal--18* #!N #!N #!I30 #!N 1. Begin a collection of tasks to be executed in parallel (with #!F-adobe-times-bold-r-normal--18* DXCreateTaskGroup() #!EF ) #!N #!I30 #!N 2. Specify each task (with #!F-adobe-times-bold-r-normal--18* DXAddTask() #!EF ) #!N #!I30 #!N 3. Complete the task Group and begin execution (with #!F-adobe-times-bold-r-normal--18* DXExecuteTaskGroup() #!EF ). Creating all the tasks first simplifies the model and allows optimal scheduling on the basis of estimated task-completion times. #!N #!I0 #!N #!EF #!N #!CIndianRed #!N #!N #!N #!F-adobe-times-bold-r-normal--18* Notes on Use #!N #!I0 #!N #!F-adobe-times-medium-r-normal--18* #!N #!N #!I30 #!N o 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. #!N #!I30 #!N o Tasks must not attempt to modify the same data structures simultaneously, with the exception of adding members to an existing Group (using #!F-adobe-times-bold-r-normal--18* DXSetGroupMember() #!EF ). #!N #!I0 #!N #!EF #!N #!N #!N #!EC #!N #!I0 #!N #!N #!I0 #!N #!F-adobe-times-bold-r-normal--18* #!F-adobe-times-bold-r-normal--18* Error DXCreateTaskGroup() #!EF #!EF #!I50 #!N Starts a new Group of tasks to be run in parallel. See #!Ldxctg,dxall1192 h DXCreateTaskGroup #!EL . #!N #!I0 #!N #!F-adobe-times-bold-r-normal--18* #!F-adobe-times-bold-r-normal--18* Error DXAddTask() #!EF #!EF #!I50 #!N Adds a task to be run later, in parallel if possible. See #!Ldxat,dxall1170 h DXAddTask #!EL . #!N #!I0 #!N #!F-adobe-times-bold-r-normal--18* #!F-adobe-times-bold-r-normal--18* Error DXAbortTaskGroup() #!EF #!EF #!I50 #!N Aborts a task group without executing it. See #!Ldxatg,dxall1163 h DXAbortTaskGroup #!EL . #!N #!I0 #!N #!F-adobe-times-bold-r-normal--18* #!F-adobe-times-bold-r-normal--18* Error DXExecuteTaskGroup() #!EF #!EF #!I50 #!N Runs the Group of tasks in the current Group in parallel, if possible. See #!Ldxetg,dxall1203 h DXExecuteTaskGroup #!EL . #!N #!I0 #!N #!F-adobe-times-bold-r-normal--18* #!F-adobe-times-bold-r-normal--18* int DXProcessors() #!EF #!EF #!I50 #!N Returns the number of processors. See #!Ldxproc,dxall1335 h DXProcessors #!EL . #!N #!I0 #!N #!F-adobe-times-bold-r-normal--18* #!F-adobe-times-bold-r-normal--18* int DXProcessorId() #!EF #!EF #!I50 #!N Returns the current processor identifier. See #!Ldxproi,dxall1334 h DXProcessorId #!EL . #!I0 #!N #!N #!N #!N #!N #!F-adobe-times-medium-i-normal--18* Next Topic #!EF #!N #!N #!Lall1105,dxall1106 h Basic Data Types #!EL #!N #!F-adobe-times-medium-i-normal--18* #!N
Generated by dwww version 1.15 on Sat Jun 22 12:46:52 CEST 2024.