[MITgcm-devel] [MITgcm-support] Single reduction CG solver

Martin Losch Martin.Losch at awi.de
Fri Nov 20 03:41:54 EST 2009


I forgot to say, that S/R GLOBAL_VEC_SUM_R8 (Ed's code) actually uses  
dynamic array allocation:
>       INTEGER ndim, nval, myThid
>       Real*4 sumPhi(ndim,nSx,nSy)
> CEOP
>
> C     !LOCAL VARIABLES:
> C     mpiRC    :: MPI return code
>       INTEGER i, bi,bj
>       Real*8  tmp1(nval), tmp2(nval)
Is that a problem in general? (using this routine instead of  
global_sum_tile, etc.  is the part of the cg2d_sr, that makes it  
"single reduction")

Martin

On Nov 20, 2009, at 9:32 AM, Martin Losch wrote:

> Hi Jean-Michel,
>
> anything with cg3d will not happen soon (at my end). So go ahead and  
> do your stuff.
> However, we should consider putting Christopher's contribution into  
> the respository, maybe even with a runtime flag. Unfortunately, I do  
> not currently use any large scale parallel computers, so I won't be  
> able to test anything, but I can volunteer to add this stuff to the  
> repository. I would
> 1. use CPP flags
> 2. add a runtime flag (to PARM03)
> 3. select one or a few verification experiments to use this solver.
>
> Christopher's code does not include everything, eg. no  
> "JAM" (whatever) that is, and no vectorization stuff. I can deal  
> with the latter, but not the former.
>
> Martin
>
> On Nov 19, 2009, at 7:03 PM, Jean-Michel Campin wrote:
>
>> Hi Martin,
>>
>> I am right now working on some modif of the 3-D solver
>> to start to have it with z* (for now, just linear-free-surf),
>> (but nothing to do with optimisation). I might check-in this
>> when it passes a coupled of tests. I though it would be good
>> to sync with you if you planned to implement Christopher's
>> method.
>>
>> Cheers,
>> Jean-Michel
>>
>> On Thu, Nov 19, 2009 at 04:07:39PM +0100, Martin Losch wrote:
>>> Hi Christopher,
>>>
>>> that sounds very good. Do you think that the effect will be  
>>> similar for
>>> cg3d?
>>>
>>> Are the results between the two cg2d's different? If so, by how  
>>> much?
>>>
>>> Martin
>>> On Nov 19, 2009, at 1:45 AM, Christopher L. Wolfe wrote:
>>>
>>>>
>>>> Hi all,
>>>>
>>>> I've written an implementation of d'Azevedo, Eijkhout, and Romine's
>>>> (1999) single reduction CG solver for the MITgcm. This method  
>>>> uses a
>>>> rearrangement of the standard conjugate gradient method so that the
>>>> required scalars can be determined by a single call to  
>>>> MPI_Allreduce.
>>>> For problems running on a large number of processors, the  
>>>> decreased MPI
>>>> overhead can significantly increase the efficiency of the conjugate
>>>> gradient solver.
>>>>
>>>> The attached figure shows the scaling of the 2D CG solver for a  
>>>> fixed
>>>> problem size of 1024x1024 as the number of processors increase on  
>>>> the
>>>> Cray XT4 "Franklin." For less than 2^6 processors, the original  
>>>> cg2d
>>>> solver is slightly more efficient than the single reduction solver
>>>> since the latter requires slightly more matrix-vector  
>>>> multiplications.
>>>> However, for processor counts over 2^7, the single reduction  
>>>> solver's
>>>> performance is significantly better than the original cg2d.
>>>>
>>>> I've attached a tarball of the new CG routine cg2d_sr plus the
>>>> modified files CG2D.h, ini_cg2d.F, and solve_for_pressure.F. To use
>>>> the single reduce solver, simply drop these files into an  
>>>> experiment
>>>> directory and compile with "ALLOW_CG2D_SR" defined. I've also  
>>>> included
>>>> at benchmarking suite, which can also be compiled like a standard
>>>> MITgcm experiment.
>>>>
>>>> I've only implemented the single reduce solver for the 2D case  
>>>> since I
>>>> just use the hydrostatic model, but the 3D implementation should be
>>>> straightforward. A paper deriving the single reduction method can  
>>>> be
>>>> found at http://www.netlib.org/lapack/lawnspdf/lawn56.pdf
>>>>
>>>> Feel free to contact me with any questions or comments.
>>>>
>>>> Cheers,
>>>> Christopher
>>>>
>>>> -----------------------------------------------------------
>>>> Dr. Christopher L. Wolfe              	   858-534-4560
>>>> Climate, Atmospheric Science, and Physical Oceanography
>>>> Scripps Institution of Oceanography, UCSD  clwolfe at ucsd.edu
>>>> -----------------------------------------------------------
>>>>
>>>> <strong.eps>
>>>>
>>>>
>>>> <cg2d_sr.tar.gz>
>>>> <cg2d_sr_bench.tar.gz>
>>>>
>>>> _______________________________________________
>>>> MITgcm-support mailing list
>>>> MITgcm-support at mitgcm.org
>>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>>
>>>
>>> _______________________________________________
>>> MITgcm-support mailing list
>>> MITgcm-support at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>
>
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel




More information about the MITgcm-devel mailing list