[MITgcm-support] package checkpointing issue

Martin Losch mlosch at awi-bremerhaven.de
Mon Sep 18 11:05:01 EDT 2006


Hi Matt,

you are right, it's an ECCO issue. That's the problem with having  
more than one version of a routine. pkg/ecco/the_main_loop.F is  
supposed to be something like model/src/the_main_loop.F with model/ 
src/forward_step.F being inlined. Maybe you can just copy the  
relevant part of forward_step.F (call do_write_pickup) into pkg/ecco/ 
the_main_loop.F and replace the two calles to write_pickup and  
packages_write_pickup.

Martin
On Sep 18, 2006, at 4:55 PM, Matthew Mazloff wrote:

> Hi Martin,
>
> do_write_pickup is called form the_model_main at the end of all  
> time stepping; this is fine.  Look at pkg/ecco/the_main_loop.F (so  
> maybe it is just an ECCO issue) and see that package_write_pickup  
> is called at every time step.  So it seems that one should change  
> the call in /ecco/the_main_loop from
>      CALL PACKAGES_WRITE_PICKUP(
>      CALL WRITE_PICKUP(
> to a call do_write_pickup
>
> -Matt
>
>
> On Sep 18, 2006, at 10:38 AM, Martin Losch wrote:
>
>> Hi Matt,
>> have a look at do_write_pickup, which calls write_pickup and also  
>> PACKAGES_WRITE_PICKUP from within the same if block (with the same  
>> condition as below). In older versions this was done in a similar  
>> so that pickup files are NOT written at every timesteps (others  
>> would have noticed that, too, wouldn't they). The slowdown of 4.5  
>> is bound to have a different cause. Maybe you can send me your  
>> data.seaice and your SEAICE_OPTIONS.h and I'll have  a look at them.
>>
>> Martin
>>
>>
>> On Sep 18, 2006, at 4:29 PM, Matthew Mazloff wrote:
>>
>>> Hello all,
>>>
>>> When checkpointing the model state,       SUBROUTINE  
>>> WRITE_CHECKPOINT, first checks to see
>>>        IF (
>>>      &     ( .NOT.modelEnd .AND.  
>>> (permCheckPoint.OR.tempCheckPoint) )
>>>      &     .OR.
>>>      &     ( modelEnd .AND. .NOT. 
>>> (permCheckPoint.OR.tempCheckPoint) )
>>>      &    ) THEN
>>>         CALL WRITE_CHECKPOINT_NOW(
>>>      &       permCheckPoint, myTime, myIter, myThid )
>>>        ENDIF
>>>
>>>
>>> For package checkpointing it appears this is not done; there is  
>>> no equivalent IF statement in packages_write_pickup.  So package  
>>> pickups are being written at every timestep...as more packages  
>>> are added this is significantly hurting performance.  Adding the  
>>> seaice package has slowed my model down by a factor of 4.5, and  
>>> though I haven't done any profiling, my first guess is that it is  
>>> a result of this significant increase in I/O.
>>>
>>> Two possible remedies...take the call to  PACKAGE_WRITE_PICKUP  
>>> out of THE_MAIN_LOOP and call it with WRITE_CHECKPOINT_NOW,  or  
>>> add an equivalent if statement in PACKAGE_WRITE_PICKUP.
>>>
>>> Thank you,
>>> Matt
>>>
>>> _______________________________________________
>>> 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-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list