This is very interesting. Could you post a small example showing your method
of associating a field status with your allocate, it looks as if you're
doing some good garbage collection, and an example of how you are catching
the memory bleed. Do you have a method to look at the actual memory
allocated or are you checking all your allocatable entities? What platform
are you working on? (hardware and software).
Thanks for your time and trouble.
Norm Clerman
OPCON Associates, Inc.
[log in to unmask]
www.opconassociates.com
-----Original Message-----
From: John Bray <[log in to unmask]>
To: [log in to unmask] <[log in to unmask]>
Date: Monday, January 17, 2000 3:41 AM
Subject: Re: Efficient temporary storage
Michael's ideas match what we have done in our data assimilation code,
which does many CFD operations, and sucessfully runs MPP on 72
processors. We found it useful to have a field status associated with
each allocate, so you can indicate the scope of any variable and how
long it should be preserved (global, local to a particular level of
soubroutine call etc), so simple calls to 'deallocate_model' at the end
of subroutines can tidy up temporary space.
Well worth writing trace routines to be called top and bottom of each
subroutine, so memory bleed can be spotted early.
John
John
--
John Bray, Room 337, Numerical Weather Prediction, UK Met Office
Work: [log in to unmask], http://fr0400/~frjb (internal only)
+ 44 (0) 1344 854035 (voice), + 44 (0) 1344 854026 (fax)
Home: http://www.cix.co.uk/~vicarage/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|