[MITgcm-support] Something very slow has happened to the pressure solver

Christopher L. Wolfe clwolfe at ucsd.edu
Fri Feb 29 13:48:50 EST 2008


Hi all,

Following Patrick's suggestion, I was able to pin down to the problem  
to change in cg2d made between 1.47 and 1.48. The CVS log says:

"use S/R GLOBAL_SUM_TILE to compute global sum: for a given tile  
decomposition, make results independent on the number of threads (and  
also independent on number of processes when GLOBAL_SUM_SEND_RECV is  
defined)"

The Cray X1E architecture is a little weird, so I'm not entirely sure  
why this change would cause the conjugate gradient solver to slow down  
by a factor of 10 (especially since I'm not using threads and  
GLOBAL_SUM_SEND_RECV is not defined). I am, however, willing to stick  
with version 1.47 and take my speedup. It would be interesting,  
though, to know why this change has such a profound effect on  
performance on this particular architecture. Any thoughts?

Thanks for the help,
Christopher

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


On Feb 27, 2008, at 1:04 PM, Patrick Heimbach wrote:

>
> One guess/thing to try:
> Revert cg2d.F routine to revision 1.47 by doing (in model/src):
> cvs update -r 1.47 cg2d.F
> see whether problem goes away,
> then update to next revision:
> cvs update -r 1.48 cg2d.F
> and see whether problem starts.
> This would isolate one set of changes performed in Sept. 2007.
>
> -p.
>
>
>
> On Feb 27, 2008, at 3:01 PM, Dimitris Menemenlis wrote:
>
>> It should not be ... but cg2d_iters is what sets how long the  
>> solver takes to compute.  This would be a sanity check whether you  
>> are indeed setting all the options the same, etc.  D.
>>
>>>> Christopher, I am no expert on solve_for_pressure but first thing  
>>>> I would
>>>> look at is the number of cg2d_iters that it does.  Set  
>>>> ALLOW_DEBUG and
>>>> debuglevel=1
>>> I'll check it, but should the number be different for two runs  
>>> differing only
>>> by the code itself?
>>> Christopher
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>
> ---
> Patrick Heimbach | heimbach at mit.edu | http://www.mit.edu/~heimbach
> MIT | EAPS 54-1518 | 77 Massachusetts Ave | Cambridge MA 02139 USA
> FON +1-617-253-5259 | FAX +1-617-253-4464 | SKYPE patrick.heimbach
>
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support







More information about the MITgcm-support mailing list