Fortran Programming Guide

SCHEDTYPE(t)

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.