HadCM3 memory size

This is a brief report of memory size requirements for HadCM3.

These are virtual size figures for various parallel configurations of the model. They are obtained by watching output from "top" command, and are a maximum over time (the memory usage varies with time because some subroutines have more dynamically allocated arrays than others; memory usage is greatest during the ocean sub-model), and relate to PE0 (marginally greater than for the other PEs).

They should be treated as approximate.

HadCM3  64-bit, stash on (reasonably full set of diags)

  16 Proc    162 MB
   8 Proc    180 MB
   4 Proc    270 MB (*)
   2 Proc    420 MB
   1 Proc    766 MB

HadCM3  64-bit, stash off

  16 Proc     96 MB
   4 Proc    127 MB
   1 Proc    214 MB

HadCM3  32-bit (stash on, as above)

  16 proc     88 MB
   8 proc    118 MB
   4 proc    155 MB
   2 proc    231 MB
   1 proc    400 MB

Note: it is not disastrous to exceed physical memory by a small amount. This is because the virtual size includes static arrays for both atmos and ocean model (as well as the maximum size of dynamic arrays). The static arrays for the currently inactive sub-model are swapped out, but this swapping only need happen twice per coupling period. For example, two copies of the 270MB code (marked (*) above), plus maybe a few tens of MB for the operating system, running on a dual-processor shared-memory node with 512MB physical RAM do not show any obvious performance hit on scaling benchmark curves. But the 2-proc, 420MB, equivalent is very slow on the same hardware, presumably because swapping is within an inner loop.