Workload Scheduling
- In OpenMP, compiler accepts directives for work distribution:
- C$OMP DO SCHEDULE(type[,chunk]) where type is
- STATIC iterations are divided into pieces at compile time (default)
-
-
- DYNAMIC iterations assigned to processors as they finish, dynamically. This requires synchronization after each chunk iterations.
- GUIDED pieces reduce exponentially in size with each dispatched piece
-
-
- RUNTIME schedule determined by an environment variable OMP_SCHEDULE With RUNTIME it is illegal to specify chunk. Example: setenv OMP_SCHEDULE “dynamic, 4”
-
- If a directive does not mention the scheduling type, compiler switch -mp_schedtype=type can be used to set the scheduling type