| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Bring r17281 from trunk to 1.8 branch:
Further refactoring of the dataset layout information, to separate the
storage information from the layout info.
Tested on:
Mac OS X/32 10.5.7 (amazon) debug & production
h5committested on trunk
|
|
|
|
|
|
|
|
| |
Bring r16560 back from trunk.
Tested on:
Mac OS X/32 10.5.6 (amazon) debug & production
(Following up with tests on more platforms)
|
|
|
|
|
|
|
|
|
|
|
| |
Bring r16354 back from trunk:
Refactor internal layout information, making it easier to add another
type of chunk index.
Tested on:
FreeBSD/32 (duty)
(other configurations tested with original change)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bring revision 16278 back from revise_chunks branch:
Update layout information in DCPL to unify all information in one
underlying property and switch to using H5O_layout_t for storing it, which
simplifies things considerably.
Also, fix many compiler warnings.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
(Original patch tested on many machines)
|
|
|
|
|
|
|
|
|
|
|
| |
Description: The optimized "subset" compound conversion function would
improperly copy the "blank" space at the end of compound types. Modified
H5T_conv_struct_init to detect when the subset type has extra space at the end,
and calculate the size of the data that should be copied into the conversion
buffer for each element. Changes to the functions that implement these
conversions.
Tested: kagiso, linew, smirom (h5committest)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove trailing whitespace from C/C++ source files, with the following
script:
foreach f (*.[ch] *.cpp)
sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f
end
Tested on:
Mac OS X/32 10.5.5 (amazon)
No need for h5committest, just whitespace changes...
|
|
|
|
|
|
|
|
|
| |
Bring r15609 back from trunk:
Omnibus compiler warning cleanup & some formatting happiness.
Tested on:
Mac OS X/32 10.5.4 (amazon)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bring back revision 15131 from trunk:
Finish omnibus chunked dataset I/O refactoring, to separate general
actions on chunked datasets from actions that are specific to using the v1
B-tree index.
Cleaned up a few bugs and added some additional tests also.
Tested on:
Mac OS X/32 10.5.3 (amazon)
Linux/32 2.4 (chicago)
|
|
|
|
|
|
|
|
|
| |
Bring revision 15037 from trunk:
Better cleanup of internal structures when no szip encoder.
Tested on:
Linux/32 2.6 (kagiso) w/szip-no encoder
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bring revision 14860 back to 1.8 branch, change log for rev 14860 is:
Omnibus raw data I/O revisions, with wide-ranging changes and
refactoring, in order to prepare for implementing "fast append" feature.
These changes remove the majority of the code duplication for raw data
I/O which has crept in over the last ten years and introduces a more object-
oriented design for operating on different types of dataset storage.
Description:
Omnibus raw data I/O revisions, with wide-ranging changes and
refactoring, in order to prepare for implementing "fast append" feature.
These changes remove the majority of the code duplication for raw data
I/O which has crept in over the last ten years and introduces a more object-
oriented design for operating on different types of dataset storage.
Chunked storage no longer has it's own I/O routines, it is now handled
as either contiguous (if chunk is not pulled into the cache) or compact (if the
chunk is cached in memory).
No bug or feature changes, at least intentionally... :-)
Tested on:
Mac OS X/32 10.5.2 (amazon) w/production
|
|
|
|
|
|
|
|
| |
Correct the prototype for H5Sselect_elements() to take an 'hsize_t *' for
the coordinates, instead of 'hsize_t **'.
Tested on:
Mac OS X/32 10.5.1 (amazon)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Avoid trying to update 1-D dataset's chunk indices (they can't change)
- Cache a copy of a dataspace describing a chunk, when doing single
element I/O
- Keep a 'chunk info' struct around, for single element I/O
- Avoid creating a skip list for chunk infos when performing I/O on single
element
Also, minor formatting cleanups to testing code
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Keep skip list for tracking chunks with dataset (instead of creating/
destroying it for each I/O operation) and just delete the skip list
nodes.
- Avoid computations for normalizing selection offset when offset not set.
- Avoid updating object modification time twice during dataset creation.
- Avoid updating dataset layout message (and object modification time)
until dataset is closed.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
|
|
|
|
|
|
|
|
| |
Add call to reset cached chunk info after initialization of chunk data
storage.
Tested on:
Linux/64 2.4(smirom) w/parallel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Eliminate some redundant calls to retrieve datatype sizes in chunk read/
write routines.
- Change indexed storage "common" B-tree callback user data to avoid
copying chunk offset and separate "downward" info from "upward" info.
- Cache chunk info (nbytes/filter_mask/address) for last chunk accessed
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remember # of elements in file selection, instead of querying more than
once
- Handle building chunk map for single element as special case
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid copying maximum dimensions for temporary dataspaces used for
describing chunks during raw data I/O.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Changed name of chunk mapping structure from "fm_map" to "H5D_chunk_map_t"
- Pushed parallel I/O specific fields into ifdef'ed sections, when building
chunk map
- Took out most calls to IS_H5FD_MPI macro
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Changed H5S_select_shape_same routine to handle scalar dataspace
comparisons correctly. (Added regression tests to verify)
- Simplified chunk map creation, now that scalar dataspaces are handled
in same way as "simple" dataspaces.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in production mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Break up H5D source file into H5D/H5Dint/H5Ddeprec
Attempt fix for "szip noencoder" build failure.
Tested on:
FreeBSD/32 6.2 (duty) in debug mode
FreeBSD/64 6.2 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
in debug mode
Linux/64-amd64 2.6 (smirom) w/default API=1.6.x, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Mac OS X/32 10.4.10 (amazon) in debug mode
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. In H5Dwrite and H5Dread, let the data buffer point to a fake address if the application passes
in an empty buffer. This is mainly for MPIO programs that some processes may not have any
data to write or read but still participate the I/O. This solution solves some MPI's problem
like the ChaMPIon on tungsten which doesn't support empty buffer.
2. The ChaMPIon on tungsten doesn't support complex derived MPI data type correctly and collective
I/O when some processes don't have any data to write or read correctly. Detect the compiler
"cmpicc" in the system-specific config file and set the variables for these two cases to false.
The PHDF5 library already has set up a way to switch collective chunked I/O to independent
under these two cases.
3. A bug fix - During the work of the optimization for compound data I/O, the case for switching
collective chunked I/O to independent I/O was leftout. Fixed it by adding I/O caching to it in
H5D_multi_chunk_collective_io in H5Dmpio.c.
Tested on tungsten, cobalt, and kagiso for parallel; on linew and smirom for serial.
|
|
|
|
| |
in H5D_chunk_read and H5D_chunk_write. Tested only on liberty because it's a simple change.
|
|
|
|
|
|
|
|
|
| |
H5D_istore_writevv and H5D_istore_readvv to
H5D_chunk_write and H5D_chunk_read to avoid frequent lock and unlock and to improve some
performance.
Tested with h5committest on THG machines.
|
|
|
|
|
|
|
|
|
|
| |
Refactor fill value buffer code into one location, for better long-term
maintenance.
Tested on:
Mac OS X/32 10.4.10 (amazon)
Linux/32 2.6 (chicago)
Linux/64 2.6 (chicago2)
|
|
|
|
| |
No test is needed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
company. The I/O is optimized when the source and destination
members are a subset of each other one way or another, and
the order is the same, and no conversion is needed. For example:
struct source { struct destination {
TYPE1 A; --> TYPE1 A;
TYPE2 B; --> TYPE2 B;
TYPE3 C; --> TYPE3 C;
}; TYPE4 D;
TYPE5 E;
};
or
struct destination { struct source {
TYPE1 A; --> TYPE1 A;
TYPE2 B; --> TYPE2 B;
TYPE3 C; --> TYPE3 C;
}; TYPE4 D;
TYPE5 E;
};
The optimization is simply moving data from the source to the
appropriate places in the buffer and bypass the reading of
the background data and data conversion.
Tested on smirom, liberty, sol, and copper.
|
|
|
|
|
|
|
|
|
|
| |
Fix writing variable-length datatype fill values for contiguous dataset
storage
Tested on:
Mac OS X/32 10.4.9 (amazon)
Linux/32 2.6 (chicago)
Linux/64 2.6 (chicago2)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix compact dataset storage to initialize VL datatype fill values
correctly.
Also, fix bug in global heap code when the fix action on a global
heap is to delete an object in a heap with no free space.
Tested on:
Mac OS X/32 10.4.9 (amazon)
FreeBSD/32 6.2 (duty)
|
|
|
|
|
|
|
|
|
| |
Incremental step forward in fixing problems with fill values that have
a variable-length daattype. This set of changes fixes problems with the copying
the property list values.
tested Tn:
Mac OS X/32 10.4.9 (amazon)
|
|
|
|
|
|
|
|
| |
Fix a few typos and a small memory leak.
Tested on:
FreeBSD/32 6.2 (duty)
Linux/64 2.6 (chicago2)
|
|
|
|
|
|
|
|
| |
Minor code cleanups...
Tested on:
FreeBSD/32 6.2 (duty)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
| |
value is defined,
if there's VL type of data in the dataset, the address of the data is copied
multiple times into the buffer, causing some trouble when the data is released.
Instead, this checkin makes multiple copies of fill value first, then
does conversion on each element so that each of them has a copy of the
VL data. A test is added, too.
Tested it on kagiso, sol, and copper.
|
|
|
|
|
|
|
|
|
|
|
|
| |
running on kagiso.
The static szip libraries are working as intended, but when shared szip
libraries are present and intended for use they cannot be opened. A check
has been implemented to test if shared szip libraries are functional on
current platform. If they are not, and the user is trying to use them,
szip is now disbaled and the user is informed.
This issue occurs on kagiso, and the resolution was tested on kagiso.
|
|
|
|
|
|
|
|
|
| |
copyright notice.
Tested platform:
Kagiso only since it is only a comment block change. If it works in one
machine, it should work in all, I hope. Still need to check the parallel
build on copper.
|
|
|
|
|
|
|
|
|
|
|
| |
Get rid of two different types of fill value struct (merge H5O_fill_t
and H5O_fill_new_t) and clean up & simplify dataset initialization code.
(In preparation for shared object header message method call
refactoring).
Tested on:
FreeBSD/32 6.2 (duty)
Mac OS X/32 10.4.8 (amazon)
|
|
|
|
|
|
|
|
|
| |
haven't
been run in a while, so many of the source files were updated with
tracing macros, etc. No code changes by me.
Tested on kagiso and smirom.
|
|
|
|
|
|
|
|
|
|
|
| |
Finish moving object header message routines into their own source code
module, along with renaming them to have "H5O_msg_" prefix...
Tested on:
Mac OS X/32 10.4.8 (amazon)
FreeBSD/32 4.11 (sleipnir)
Linux/32 2.4 (heping)
AIX/32 5.? (copper)
|
|
|
|
|
|
|
| |
Fix parallel build failure for property list class initialization refactor.
Tested on:
AIX (copper) w/parallel
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor generic property list initialization code to put property list
specific routines in property list modules, instead of scattered to the four
winds. Also, introduce property list class initialization objects, to make
adding new property list classes in the library easier.
Fix daily test failure by using H5Pget_elink_prefix() API routine instead
of looking at the "raw" generic property list information.
Tested on:
Mac OS X/32 10.4.8 (amazon)
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/C++ & FORTRAN
Linux/64 2.4 (mir) w/build-all & 1.6 compat
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
File format is not stable, don't keep files produced!
Description:
First stage of checkins modifying the format of groups to support creation
order. Implement "dense" storage for links in groups.
Try to clarify some of the symbols for the H5L API.
Add the H5Pset_latest_format() flag for FAPLs, to choose to use the newest
file format options (including "dense" link storage in groups)
Add the H5Pset_track_creation_order() flag for GCPLs, to enable creation
order tracking in groups (although no index on creation order yet).
Remove --enable-group-revision configure flag, as file format issues are
now handled in a backwardly/forwardly compatible way.
Clean up lots of compiler warnings and other minor formatting issues.
Tested on:
FreeBSD/32 4.11 (sleipnir) w/threadsafe
Linux/32 2.4 (heping) w/FORTRAN & C++
Linux/64 2.4 (mir) w/enable-v1.6 compa
Mac OSX/32 10.4.8 (amazon)
AIX 5.3 (copper) w/parallel & FORTRAN
|
|
|
|
|
|
|
|
|
| |
Clean up some of the parallel chunk I/O compiler warnings and other minor
code rearrangement.
Tested on:
FreeBSD 4.11 (sleipnir) w/paralllel
h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
optimization codes:
1. Provide another option for users to do independent IO with MPI file setview(collectively)
2. With the request of collective IO from users, using Independent IO with MPI file setview if we find collective IO is not good for the applications for IO per chunk(multi-chunk IO) case. Previously we used pure independent IO and that actually performed small IO(IO each row) for this case. The recent performance study suggested the independent IO with file setview can acheieve significantly better performance than collective IO when not many processes participate in the IO.
3. For applications that explicitly choose to do collective IO per chunk case, the library won't do any optimization(gather/broadcast) operations. The library simply passes the collective IO request to MPI-IO.
Tested at copper, kagiso, heping, mir and tungsten(cmpi and mpich)
Kagiso is using LAM, t_mpi test was broken even.
The cchunk10 test failed at heping and mir. I suspected it was an MPICH problem. Will investigate later.
Everything passed at copper.
at tungsten: the old cmpi bug(failed at esetw) is still there. Other tests passed.
Some sequential fheap tests failed at kagiso.
|
|
|
|
|
|
|
|
| |
Clean up some compiler warnings.
Tested on:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Trim trailing whitespace in Makefile.am and C/C++ source files to make
diffing changes easier.
Platforms tested:
None necessary, whitespace only change
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Clean up some compiler warnings (esp. those flagged on Windows builds)
Platforms tested:
FreeBSD 4.11 (sleipnir)
Too minor to require h5committest
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bug fix for daily test
Description:
if (fm->select_chunk) is not NULL at sequential mode and not set by the library, it shouldn't be free.
Otherwise, it will cause failures in the daily test.
Solution:
Explicitly set (fm->select_chunk) to NULL for non-parallel case.
Platforms tested:
copper with parallel
heping with both sequential and parallel
shanti with sequential
Misc. update:
Hopefully only mir failed at daily test.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix in collective IO code
Description:
When select none occurs in one process, fm->select_chunk hasn't been allocated the memory(not allocated until create_file_hyper); however, this needs to be checked; it was caught with cmpi at NCSA linux cluster.
Solution:
Relocate the place to allocate the memory space for fm->select_chunk.
Platforms tested:
cmpi at tungsten
mpich at heping
kind of minor and let daily test catch other errors.
Misc. update:
This won't fix the failure at mir.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
code clean up
Description:
Clean up some warnings in collective chunk IO code
Solution:
Platforms tested:
heping
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bug fix
Description:
During the process of the combination of collective chunk IO code and the original IO code,
The return value of a function call hasn't been initialized. On 32-bit mode at modi4, that value isn't set to 0 by default. So a fake error value returns.
Solution:
Re-arrange the code so that the return value will be set properly.
Platforms tested:
parallel:
modi4 - 32bit
heping
seq:
heping
Misc. update:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enhanced collective chunk IO supports
Description:
1. When using collective IO with chunking storage without any tuning, performance may become worse under some circumstances.
2. Current HDF5 handles raw-data IO per chunk. So for many small chunks, many small IOs will be passed into MPI-IO. That may cause bad performance.
3. For one IO per chunk case, sometimes performance with collective is worse than performance with independent. An obvious case is when only one process is doing IO and all other process are not doing IO, the collective IO will only add overheads for communication. We want to avoid this case. Some management inside our library needs to be done.
Solution:
- Added managements of collective IO supports for chunking storage
inside parallel HDF5
1) Implemented One IO with collective mode for all chunks in the
application by building one MPI derived datatype accross all
chunks.
2) Implemented the decision-making support to do collective IO inside
MPI-IO per chunk.
3) Added the decision-making support to do one IO accross all chunks
or to do multiple IOs with each IO per chunk.
4) Added the support to handle the case some processes won't do any IOs in
collectively.
5) Some MPI-IO package(mpich 1.2.6 or lower, e.g.) cannot handle
collective IO correctly for the case when some processes have no
contributions to IOs, a special macro is added to change
collective IO mode to independent IO mode inside HDF5 library.
Platforms tested:
Parallel:
IBM AIX 5.2(copper)
Linux (heping) mpich-1.2.6
SDSC Teragrid mpich-1.2.5
Linux(Tungsten) mpich-1.2.6
Altix(NCSA cobalt)
Seq:
Linux(heping)
Misc. update:
|