[MITgcm-support] package checkpointing issue

Matthew Mazloff mmazloff at MIT.EDU
Mon Sep 18 10:55:05 EDT 2006


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




More information about the MITgcm-support mailing list