I think the comment in h5test.c is misleading.

The documentation for H5Pset_fapl_core says the inc argument is the
number of BYTES, not MEGAbytes.

I'd bet the initial malloc is failing for reading your whole file.
Sorry. Didn't expect that. But, I was thinking in terms of 64 bits and
30 gigs 5 bits too many for a 32 bit number. So, if you are running in
truly 64 bit, then I am completely puzzled. Otherwise, if you are
running 32 bit, then I think the problem has presented itself; we can't
address 30 gig buffer in a 32 bit application.

I'd suggest looking at some of the other properties such as

H5Pset_small_data_block_size
HP5set_buffer (used during read/xform only)
H5Pset_cache (relevant only for chunked datasets)
H5Pset_meta_block_size( hid_t fapl_id, hsize_t size )

and see if setting any/all of these to large numbers; 100's of megabytes
has any positive impact.

Mark

On Wed, 2010-03-03 at 09:30, Thorben Kröger wrote:
> On Wednesday 03 March 2010 18:17:31 Mark Miller wrote:
> > I think the '5' in the HP5set_fapl_core means to allocate only 5 more
> > bytes each time it needs to allocate. I think that is too small and
> > maybe a problem since its an odd number and not a power of 2.
> > 
> > Although I would not necessarily expect that to have failed in the way
> > you are seeing either.
> > 
> > Try '5<<20' instead of '5'
> 
> I found this in h5test.c, function h5_fileaccess()
> 
> /* In-core temporary file with 1MB increment */
>       if (H5Pset_fapl_core(fapl, (size_t)1, TRUE)<0) return -1;
> 
> Anyway, using a number like 5<<20 did not make a difference, it still 
> aborts...
> 
> Cheers,
> Thorben
> 
> > 
> > Other than that, I don't see anything wrong with what your are doing.
> > Except that maybe allocating the 30 gigabyte buffer in HDF5 to read your
> > file into core is failing due to too large a request. I guess that is
> > possible. To see if that is happening, if your HDF5 installation was
> > compiled with tracing/debugging features turned on, then try setting
> > HDF5_DEBUG=all in your enviornment where you are running your
> > application.
> > 
> > Mark
> > 
> > On Wed, 2010-03-03 at 09:07, Thorben Kröger wrote:
> > > > > On Wednesday 03 March 2010 16:47:20 Mark Miller wrote:
> > > > > > Hello Thorben,
> > > > > > 
> > > > > > However, did you in fact try using HDF5-1.8.4
> > > > > > and reading the file with the CORE vfd (H5Pset_fapl_core)
> > > 
> > > instead of opening my file like this:
> > > 
> > > hdf5geometryFile_ = H5Fopen(filename.c_str(), H5F_ACC_RDONLY,
> > > H5P_DEFAULT);
> > > 
> > > I am now doing this:
> > > 
> > > hid_t fapl = H5Pcreate(H5P_FILE_ACCESS);
> > > if(fapl < 0) {throw std::runtime_error("fapl < 0");}
> > > hid_t ret = H5Pset_fapl_core(fapl,  5/*MB?*/, 0 /*no backing store*/);
> > > if(ret < 0) {throw std::runtime_error("could not create fapl core");}
> > > hdf5geometryFile_ = H5Fopen(filename.c_str(), H5F_ACC_RDONLY, fapl);
> > > 
> > > But using the second way, it cannot open any of my datasets:
> > > 
> > > HDF5-DIAG: Error detected in HDF5 (1.8.4) thread 0:
> > >   #000: H5D.c line 321 in H5Dopen2(): not found
> > >   
> > >     major: Dataset
> > >     minor: Object not found
> > >   
> > >   #001: H5Gloc.c line 468 in H5G_loc_find(): can't find object
> > >   
> > >     major: Symbol table
> > >     minor: Object not found
> > >   
> > >   #002: H5Gtraverse.c line 877 in H5G_traverse(): internal path traversal
> > > 
> > > failed
> > > 
> > >     major: Symbol table
> > >     minor: Object not found
> > >   
> > >   #003: H5Gtraverse.c line 665 in H5G_traverse_real(): can't look up
> > >   component
> > >   
> > >     major: Symbol table
> > >     minor: Object not found
> > >   
> > >   #004: H5Gobj.c line 1047 in H5G_obj_lookup(): can't locate object
> > >   
> > >     major: Symbol table
> > >     minor: Object not found
> > >   
> > >   #005: H5Gstab.c line 860 in H5G_stab_lookup(): not found
> > >   
> > >     major: Symbol table
> > >     minor: Object not found
> > >   
> > >   #006: H5B.c line 360 in H5B_find(): can't lookup key in leaf node
> > >   
> > >     major: B-Tree node
> > >     minor: Object not found
> > >   
> > >   #007: H5Gnode.c line 522 in H5G_node_found(): unable to protect symbol
> > >   table
> > > 
> > > node
> > > 
> > >     major: Symbol table
> > >     minor: Unable to load metadata into cache
> > >   
> > >   #008: H5AC.c line 1831 in H5AC_protect(): H5C_protect() failed.
> > >   
> > >     major: Object cache
> > >     minor: Unable to protect metadata
> > >   
> > >   #009: H5C.c line 6160 in H5C_protect(): can't load entry
> > >   
> > >     major: Object cache
> > >     minor: Unable to load metadata into cache
> > >   
> > >   #010: H5C.c line 10990 in H5C_load_entry(): unable to load entry
> > >   
> > >     major: Object cache
> > >     minor: Unable to load metadata into cache
> > >   
> > >   #011: H5Gcache.c line 176 in H5G_node_load(): bad symbol table node
> > > 
> > > signature
> > > 
> > >     major: Symbol table
> > >     minor: Unable to load metadata into cache
> > > 
> > > I'm at a loss now, what am I doing wrong here?
> > > 
> > > Cheers,
> > > Thorben
> > > 
> > > _______________________________________________
> > > Hdf-forum is for HDF software users discussion.
> > > [email protected]
> > > http://**mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
> 
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://*mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
-- 
Mark C. Miller, Lawrence Livermore National Laboratory
================!!LLNL BUSINESS ONLY!!================
[email protected]      urgent: [email protected]
T:8-6 (925)-423-5901     M/W/Th:7-12,2-7 (530)-753-851


_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to