The SCHEDTYPE(t) qualifier specifies that the specific scheduling type t be used to schedule the DOALL loop.
Table 10-5 DOALL SCHEDTYPE Qualifiers
Scheduling Type |
Action |
---|---|
STATIC |
Use static scheduling for this DO loop. Distribute all iterations uniformly to all available processors. Example: With 1000 iterations and 4 CPUs each CPU gets a single iteration in turn until all the iterations have been distributed. |
SELF[(chunksize)] |
Use self-scheduling for this DO loop. Distribute chunksize iterations to each available processor: o Repeat with the remaining iterations until all the iterations have been processed. o If chunksize is not provided, f77 selects a value. Example: With 1000 iterations and chunksize of 4, distribute 4 iterations to each CPU. |
FACTORING[( m )] |
Use factoring scheduling for this DO loop. With n iterations initially and k CPUs, distribute n/(2k) iterations uniformly to each processor until all iterations have been processed. o At least m iterations must be assigned to each processor. o There can be one final smaller residual chunk. o If m is not provided, f77 selects a value. Example: With 1000 iterations and FACTORING(4), and 4 CPUs, distribute 125 iterations to each CPU, then 62 iterations, then 31 iterations, and so on. |
GSS[( m )] |
Use guided self-scheduling for this DO loop. With n iterations initially, and k CPUs, then: o Assign n/k iterations to the first processor. o Assign the remaining iterations divided by k to the second processor, and so on until all iterations have been processed. Note: o At least m iterations must be assigned to each CPU. o There can be one final smaller residual chunk. o If m is not provided, f77 selects a value. Example: With 1000 iterations and GSS(10), and 4 CPUs, distribute 250 iterations to the first CPU, then 187 to the second CPU, then 140 to the third CPU, and so on. |