[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