Next: 12.4 The distributed memory
Up: 12. Multi-tasking
Previous: 12.2 When to multi-task
12.3 Approaches to multi-tasking
Two approaches to multi-tasking MOM have been experimented with at
GFDL. They were:
- The fine grained approach to multi-tasking where parallelism
is applied at the level of each nested do loop. This is also known
as ``autotasking''. All processors work simultaneously on
each nested do loop and there are many parallel regions.
- The coarse grained approach to multi-tasking where
parallelism is applied at the level of latitude rows. For example, all
work associated with solving equations for one latitude row is assigned
to one processor. All work associated with solving the equations for
another latitude row is assigned to a second processor ...and so
forth. Then, all processors work simultaneously and independently.
This implies that there is only one parallel region.
In a nutshell, the fine grained approach to multi-tasking gives about
85% parallelism. That translates into a speedup of a little less than
4 on 8 processors. Why is the parallel efficiency so low? The reason
is basically due to not enough work within the many parallel regions
and the fact that the range on the parallel loop ``j'' index is not the
same for all loops. Increasing the model resolution can somewhat
address the first problem but not the second. The result is that
processors stand idle and the parallel performance degrades. This is
clearly not a long term solution. The coarse grained approach is the
best and yields a near linear speedup with the number of processors.
Next: 12.4 The distributed memory
Up: 12. Multi-tasking
Previous: 12.2 When to multi-task
RC Pacanowski and SM Griffies, GFDL, Jan 2000