[MITgcm-support] package checkpointing issue

Matthew Mazloff mmazloff at MIT.EDU
Mon Sep 18 11:13:17 EDT 2006


Hi Martin,

As you suggested, I switched

       CALL PACKAGES_WRITE_PICKUP(
      I               .FALSE., myTime, myIter, myThid )
       CALL WRITE_CHECKPOINT(
      I               .FALSE., myTime, myIter, myThid )

with a

        CALL DO_WRITE_PICKUP(
       I        .FALSE., myTime, myIter, myThid )

in pkg/ecco/the_main_loop  and I hope this will fix my performance  
issue.  This change should be checked in at some point...or the two  
versions should merge

-Matt


On Sep 18, 2006, at 11:05 AM, Martin Losch wrote:

> 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
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support




More information about the MITgcm-support mailing list