[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Memory error


I looked a little further into the memory error. I had been using an older
version of phast on the pc, which ran your problem. However, when I used
the RC2 version, it failed on Windows XP with the same error message that
you got.

I think the difference between XP and 98 is in the memory management
performed by the operating system. Neither one is right or wrong, just
different. With the way phast was written, XP ended up fragmenting the
memory, so there was no contiguous memory large enough to handle phast's
request for a large chunk of memory, even though there was plenty of memory
available (just in smaller pieces). 98 apparently allocates the memory
differently and for this program and problem, it provides larger chunks of
contiguous memory.

Phast needed a set of contiguous memory to store the ion exchange
information (for example), but it was inefficient in the way it did it. It
simply made enough space for the first cell, stored the first cell (which
involved asking for some more space), then made enough space for two cells,
stored the second cell, and so on. I think that process of always needing
bigger chunks of memory and allocating some memory to store each cell was
what caused the problem. Memory was cut up into small noncontiguous
segments. I have rewritten that section of the code so that phast allocates
enough space for all the ion exchange information initially and then stores
each cell. Hopefully this approach will not fragment the memory so badly
and will also be more efficient by not having to continually reallocate
space for the expanding array of ion exchange data.

Sorry I did not figure this out sooner, but it is a pretty subtle problem.
Here is a new version of phast and phastinput that should run equally well
on XP and 98. There have been some enhancements since RC2 (-mask, 2
transverse dispersivities, PRINT_LOCATIONS, probably a couple others), but
I think the new version should run older input files.

If you are running large problems, you may want to consider running the
parallel version of phast. You need either a dual processor  machine or a
well-connected network (probably 100 Mbit/s or better) of single or dual
processor machines. You also need a package for MPI (Message Passing
Interface); there are commercial packages or MPICH is public domain, which
runs on pc's. We don't provide any support for getting MPI functioning, but
if you do, you should be able to run the parallel version, which speeds up
the chemistry calculations roughly proportionately to the number and speed
of processors used. One drawback is that the memory requirements are the
same for each processor.


(See attached file: phastinput.exe)(See attached file: phast.exe)(See
attached file: user.transport.pdf)


David Parkhurst (dlpark@xxxxxxxx)
U.S. Geological Survey
Box 25046, MS 413
Denver Federal Center
Denver, CO 80225

Project web page: https://wwwbrr.cr.usgs.gov/projects/GWC_coupled

Attachment: phastinput.exe
Description: Binary data

Attachment: phast.exe
Description: Binary data

Attachment: user.transport.pdf
Description: Adobe PDF document

Project Home Page
Complete Water Resources Division Software
USGS Home Page
Water Resources Division Home Page
NRP Home Page
Help Page
USGS Privacy Statement       

Please note that some U.S. Geological Survey (USGS) information accessed through this page may be preliminary in nature and presented prior to final review and approval by the Director of the USGS. This information is provided with the understanding that it is not guaranteed to be correct or complete and conclusions drawn from such information are the sole responsibility of the user.

Any use of trade, product, or firm names in this publication is for descriptive purposes only and does not imply endorsement by the U.S. Government. 

The URL of this page is: https://wwwbrr.cr.usgs.gov/projects/GWC_coupled/phreeqc/mail/msg00510.html
Last modified: $Date: 2005-09-13 21:04:21 -0600 (Tue, 13 Sep 2005) $
Visitor number 3020 since Jan 22, 1998.