[MITgcm-support] Optimizing the 2D pressure solver

Christopher L. Wolfe clwolfe at ucsd.edu
Fri Sep 21 17:30:43 EDT 2007


Hello modelers,

I've found that a major barrier to scaling the MITgcm to large  
numbers (>1000) of processors is the 2D pressure solver ( I run in  
hydrostatic mode), which consumes between 30% to 70% of the runtime,  
depending on the machine and the number of processors. The overhead  
of the pressure solver gets worse as the number of processors  
increases, which is not surprising given that the pressure inversion  
is the most nonlocal procedure in the time-stepping cycle.

The current version of the 2D conjugate gradient solver does 2  
exchanges and 3 global sums per iteration, which adds up quickly  
since the solver does hundreds of iterations per time step. It seems  
likely that communication overhead is dominating the time-to-solution  
of the pressure solver. Someone apparently had the idea to reduce  
communication overhead by including a flag (cg2dChkResFreq) that  
allows the CG residual to be checked every N iterations instead of  
every iteration. However, this flag in fact does nothing and the  
variable cg2dChkResFreq is not even referenced in cg2d.F.

Before I start mucking around with the internals of the CG solver, I  
was hoping that someone more knowledgeable than I might have some  
straightforward pointers on how to optimize the 2D pressure solver  
for large numbers of processors.

For reference, my domain is 1792 x 448 x 20, I have

rigidLid=.FALSE.,
implicitFreeSurface=.TRUE.,

and my PARM02 block contains

cg2dMaxIters=400,
cg2dTargetResidual=1.5E-7,

I'm currently running in an all-MPI mode. I haven't tried running in  
mixed OpenMP/MPI mode, but I'm willing to try if anyone thinks it'll  
improve the solver performance. I suspect gains of going this route  
will be modest since several of the machines I run on have very small  
numbers (2) of processors per node.

Thanks in advance for any advice,
Christopher

-----------------------------------------------------------
Dr. Christopher L. Wolfe                   858-534-4560
Physical Oceanography Research Division    OAR 357
Scripps Institution of Oceanography, UCSD  clwolfe at ucsd.edu
-----------------------------------------------------------







More information about the MITgcm-support mailing list