issue with HDF write

Hello All,

I have a code where I write an array to a dataset. The array size varies from
from few kb to Mb. The code runs fine for a smaller run(small array), but for
slightly bigger run, where at a time 17725 reals are written to the dataset(and
15 such writes), I get the following error:

* glibc detected * double free or corruption (out): 0x000000000129b250 *
forrtl: error (76): IOT trap signal.

Can anyone tell me what might a possible reason ? I guess it must be some
problem with memory because code runs fine for a smaller run, so syntax n all is
fine.
But 17725 reals is not too much and I doubt if this is the reason. So i am a
little confused here.

Currently the code works like this:

1. Root stores its share in this array 'amp_new'.
2. Four other processors send their share to the root.
3. Root appends all recv operations in 'amp_new'
4. After root receives info from all the processes, it writes this array amp_new
to the dataset.

Previously, when it was working the operation was like this:
1. Root writes its share to the dataset.
2. Root receives info from other processor and writes the data to the dataset
after each receive.

This code was working fine.
Is the size of the array amp_new causing some problem ?

Kindly advise.

Regards,
Nikhil

···

----------------------------------------------------------------------
This mailing list is for HDF software users discussion.
To subscribe to this list, send a message to hdf-forum-subscribe@hdfgroup.org.
To unsubscribe, send a message to hdf-forum-unsubscribe@hdfgroup.org.

Hello Nikhil,

FORTRAN compiler should have a flag to enable checking for arrays boundaries. It might help.

Elena

···

On Jun 23, 2008, at 6:45 PM, Nikhil Laghave wrote:

Hello All,

I have a code where I write an array to a dataset. The array size varies from
from few kb to Mb. The code runs fine for a smaller run(small array), but for
slightly bigger run, where at a time 17725 reals are written to the dataset(and
15 such writes), I get the following error:

* glibc detected * double free or corruption (out): 0x000000000129b250 *
forrtl: error (76): IOT trap signal.

Can anyone tell me what might a possible reason ? I guess it must be some
problem with memory because code runs fine for a smaller run, so syntax n all is
fine.
But 17725 reals is not too much and I doubt if this is the reason. So i am a
little confused here.

Currently the code works like this:

1. Root stores its share in this array 'amp_new'.
2. Four other processors send their share to the root.
3. Root appends all recv operations in 'amp_new'
4. After root receives info from all the processes, it writes this array amp_new
to the dataset.

Previously, when it was working the operation was like this:
1. Root writes its share to the dataset.
2. Root receives info from other processor and writes the data to the dataset
after each receive.

This code was working fine.
Is the size of the array amp_new causing some problem ?

Kindly advise.

Regards,
Nikhil

----------------------------------------------------------------------
This mailing list is for HDF software users discussion.
To subscribe to this list, send a message to hdf-forum-subscribe@hdfgroup.org.
To unsubscribe, send a message to hdf-forum-unsubscribe@hdfgroup.org.

----------------------------------------------------------------------
This mailing list is for HDF software users discussion.
To subscribe to this list, send a message to hdf-forum-subscribe@hdfgroup.org.
To unsubscribe, send a message to hdf-forum-unsubscribe@hdfgroup.org.