| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup/Performance enhancement
Description:
The code to extend the file size in H5FD_mpio_flush is getting run even when
the file size doesn't change. Also, it's sort of sidestepping MPI-I/O when
extending the file, instead of using MPI-I/O features to set the file's size.
Solution:
Only extend the file's size when the allocated size has increased. Also
use MPI_File_set_size() to change the file's size.
Platforms tested:
IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
When H5Freopen is called, the file to reopen's 'intent' (read/write
permissions, etc) is not being copied to the new file's 'intent'
information.
Solution:
Copy it. :-)
Platforms tested:
IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Calling MPI_Get_count needs to be done with the same MPI type as was used
for the transfer and we are always using MPI_BYTE, even when a different
MPI type was used for the transfer.
Solution:
Only query MPI_Get_count with MPI_BYTE when we really used MPI_BYTE for the
transfer. Wait for later to query MPI_Get_count with other MPI types.
Platforms tested:
IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Performance enhancement
Description:
Doing an MPI_File_sync() just before a file is closed causing a large
performance loss.
Solution:
Add flag to MPI file driver to avoid performance the MPI_File_sync() when
the flag is set before a call to H5F_flush().
Platforms tested:
IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Restructure H5F_close code to use just one H5F_flush call.
Platforms tested:
IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
| |
Back out changes.
Description:
Back out changes to VFL 'flush' API function, pending review.
Platforms tested:
IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
Missed adding the 'closing' parameter to one 'flush' function.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New Feature
Description:
The VFL flush function is called immediately before a file is closed.
This can cause duplicate syncronization actions to occur, if the VFL
close function also performs them.
Solution:
Added 'closing' parameter to VFL 'flush' operation. This allows the VFL
flush function to bypass operations that will be duplicated within the VFL
close function.
Additionally, use the 'closing' parameter to bypass calls to MPI_File_sync()
when set. Since MPI_File_close() also syncronizes the file, this avoids
the terrible performance hit taken when calling MPI_File_sync() as the file
is closing.
Platforms tested:
IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
The parallel I/O file driver is optimized to only write metadata with one
process (and broadcast the results to the other processes). This is
currently enabled by a separate call to H5FD_mpio_tas_allsame() before
each metadata write to the file. This can easily lead to problems where
the prelude function call is omitted before the actual write code or, in
a threaded environment, lead to race condititions where the value set is
reset before being used.
Solution:
Since we only want to write metadata from one process, key off of the 'type'
parameter (which has information about whether the data being written it
metadata or raw data) to H5FD_mpio_write() as the method for determining
whether to only write from one process or not.
Platforms tested:
IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New Feature
Description:
Currently, only process 0 writes metadata to disk, leading to a potential
performance bottleneck as the other processors wait for it to catch up.
Solution:
Rotate the metadata responsibilities among all processes, speading out the
work.
Platforms tested:
IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
|
| |
Small code cleanup/improvement
Description:
Query the MPI rank only once and store it in the file structure for each
process.
Platforms tested:
IRIX64 6.5 (modi4)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
bug fix
Description:
In H5TB.c, previously use an unsigned variable to represent address difference that is maybe a negative value.
This will cause a potential bug in the future when this section of code is run.
Solution:
use H5F_address_cmp macro to compare two addresses.
Platforms tested:
linux 2.2.18
|
|
|
|
|
|
|
|
|
| |
Removed unused code that is related to inline issue.
hdf5 C source now uses H5_inline for the non-standard
inline feature. No need to undefine/redefine the symbol
inline itself.
Platforms tested:
eirene.
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Remove an extraneous data structure for tracking the location of a
hyperslab iterator when walking through regular hyperslab selections.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
minor bugs fixed
Description:
Typos in H5Fpkg.h and H5TB.c
Solution:
Platforms tested:
linux 2.2.18
|
|
|
|
|
|
|
| |
Purpose:
updated some comments regarding Code Warrior , removed other debugging comments
Platforms tested:
w2000
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
Add TRACE8 and TRACE9 macros
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Update the API tracing information
Platforms tested:
Linux 2.2 (eirene) with gcc 2.95.2 and Solaris 2.6 (baldric) with gcc 2.8.1
|
|
|
|
|
|
| |
Update API tracing information
Platforms tested:
Linux 2.2 (eirene)
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
turn on daylight feature on windows
Description:
currently we have to hard code daylight feature of windows to make it pass mtime test.
Solution:
Platforms tested:
linux 2.2.18
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
Correct coordinates were not computed for iteration through irregular
hyperslab selection (although the points in the buffer that were selected
were correct).
Solution:
Add another array to track selection offset adjusted coordinates in the
selection.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix
Description:
Selection offsets were not being used correctly when iterating through
all hyperslabs selections and point selections.
Solution:
Use the selection offset appropriately.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Migrate from configure macros of XYZ_ABC to H5_XYZ_ABC
Description:
configure generates many macros definitions on the fly and
were stored in src/H5config.h which is included by H5public.h.
But other software that uses hdf5 may also run their own configure.
There can be a clash in macro name space. We decided awhile ago
to prepend all generated macros with "H5_" to avoid conflicts.
The process has started and this commit completes it (at least attempt
to).
Solution:
Many macros symbols (e.g. SIZEOF_xxx and HAVE_xxx were changed to
H5_SIZEOF_xxx and H5_HAVE_xxx). Then H5private.h no longer includes
H5config.h. This cuts H5config.h away from HDF5 source code.
Pending issues:
The module of fortran and pablo are to be resolved in a different
commit.
Platforms tested:
eirene (parallel), arabica (solaris 7 --enable-fortran, --enable-cxx)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
New feature
Description:
Allow H5Glink and H5Gmove to handle links across different locations.
Solution:
Added H5Glink2 and H5Gmove2 functions with new parameter of destination
location.
Platforms tested:
Linux 2.2(eirene)
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
Move iterator initialization in H5D_read & H5D_write before any errors can
occur.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug Fix.
Description:
When the fill value for a dataset is not set, the size is set to zero,
causing problems with filling unused areas in previously defined chunks
(i.e. when the dataset shrinks in size)
Solution:
Use the size of the elements in the dataset directly, instead of relying on
the size of the fill value (which must be the same size).
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Remove more debugging printf's that were ifdef'd out.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Previously, the I/O pipeline (pline), external file list (efl) and fill-
value (fill) structs were passed down the raw data function call chain,
even into and/or through functions which didn't use them. Since all three
of these pieces of information are available from the dataset creation
property list, just pass the dataset creation property list down the
function call chain and query for the information needed in a particular
function.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
$(LT_RUN) was used to execute ./H5detect in src/Makefile.in.
$RUNTEST was set to $(LT_RUN) which was used to execute sequential
executable. $(LT_RUN) is "../libtool --mode=execute". But libtool
invokes some commands that are not supported in the Tflops machine.
That caused failures during the build and check processes.
Solution:
Upon investigation, there does not seem to be need to use $(LT_RUN)
any more. The "libtool --mode=link" now generates a "fake" executable
that is actually a command-script file that can regenerate the real
executable with dynamic libraries hooks setup properly.
Undo all those $LT_RUN substitute and let $RUNSERIAL execute those
sequential executables.
Platforms tested:
Eirene(serial), modi4(parallel)
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Reduce gratuitous differences between H5D_write and H5D_read and also
remove distracting debugging printf's that were ifdef'd out.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
| |
Code tweak.
Description:
Allow the 'fill' parameter of H5S_select_fill to be NULL and allocate a
temporary buffer for it, if so.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
update macro HDstat
Description:
The original defination of HDstat only defines HDstat as stat.
the file size defined at struct stat is int32,
However for files greater than 4G(or 2G)file, lookup of file size will
fail on windows when using stat. Add a macro for windows,define HDstat
as istat64.
This fix is the same as HDfstat macro.
Solution:
Platforms tested:
linux 2.2.18
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Clean up the H5B_iterate code to not have a single hard-wired iterator for
each interface which uses a B-tree, instead accept a function pointer which
determines the callback function. This allows additional iterator
callbacks to be defined without requiring additional H5B functions to be
created.
In that spirit, remove the H5B_prune_by_extent call and convert the
H5F_istore callback routine for it into a callback routine for H5B_iterate.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Clean up warnings from gcc 3.1
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Platform dependent code related to the struct stat and fstat
calls polluted source codes. Hard to maintain.
Solution:
Platform dependent code are moved to H5private.h and then internal
code can #include H5private.h. Repeat those macro definition for
the stdio and multi drivers since they area examples for writing
a virtual file driver. They must not use any internal code.
Platforms tested:
eirene (parallel), modi4 (serial including gass driver.)
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Re-indented new code to match coding style of rest of library.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Update 'indent' flags for library to include some flags in later versions
of GNU indent.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
Code Cleanup
Description:
Clean up compiler warnings from the last bunch of checkins
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Code Cleanup
Description:
Remove "knowledge" about external file storage from H5D_init_storage and
call H5F_seq_write instead, which handles things correctly.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Fix incorrect include from <H5Sprivate.h> to "H5Sprivate.h"
Platforms tested:
Just eyeballed it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Got rid of the "H5T_BKG_TEMP" setting that was used internally to the
library, since temporary background buffers are now handled by the
individual conversion routines instead of in a global background buffer.
No APIs were changed or affected by this.
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
| |
Code cleanup
Description:
Move the H5T_bkg_t structure from H5Fpublic.h to H5Tpublic.h
Platforms tested:
FreeBSD 4.5 (sleipnir)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fix
Description:
When several level deep nested compound & VL datatypes are used, the data
in the nested compound datatypes is incorrectly sharing the same "background
buffer", causing data corruption when the data is written to the file.
Solution:
Allocate a separate background buffer for each level of the nested types
to convert. (Also allocate temporary background buffers for array
datatypes, where this sort of problem could occur also)
Added more regression tests to check for these errors.
Platforms tested:
FreeBSD 4.5 (sleipnir) & Solaris 2.6 (baldric)
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
New feature
Description:
Fill-value's behaviors for contiguous dataset have been redefined.
Basicly, dataset won't allocate space until it's necessary. Full details
are available at http://hdf.ncsa.uiuc.edu/RFC/Fill_Value, at this moment.
Platforms tested:
Linux 2.2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Purpose:
H5Dset_extent API function
Description:
1 new public function: H5Dset_extent, that allows shrinking a dataset
several private functions that free the previously allocated chunks
H5F_istore_prune_by_extent, H5B_prune_by_extent : removes the chunks
H5F_istore_initialize_by_extent : initializes them with the fill value
H5S_select_fill is used to fill the selection in the memory buffer
Platforms tested:
Windows 2000
SUN( arabica)
LINUX (eirene)
IRIX64 (modi4)
|
|
|
|
|
|
|
|
|
|
|
| |
Feature
Description:
Added comments that this is intended as an example of file driver.
Added a macro detection at the end to flag if non-public definitions
are used. (only check for H5private.h which is mostly likely used.
Not bullet proof at all.)
Platforms tested:
eirene.
|
|
|
|
| |
Nothing of consequence.
|