summaryrefslogtreecommitdiffstats
path: root/src/Makefile.in
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r10066] Purpose:James Laird2005-02-231-0/+4
| | | | | | | | | | Libtool upgrade Description: HDF5 was using libtool 1.4.2. Upgraded to libtool 1.5.14. Platforms tested: verbena, heping, pommier, copper, modi4, arabica
* [svn-r10025] Purpose:Xiaowen Wu2005-02-171-5/+9
| | | | | | | | | | | | | | New feature. Description: Add the scaleoffset internal library filter. Solution: Platforms tested: heping, copper, arabica Misc. update:
* [svn-r10016] James Laird2005-02-161-1/+0
| | | | | | | | | | | | | | | | | | | Purpose: Bug fix Description: modi4 dies during build with strange errors. The root cause of these is a two-year-old hack in HDF5's libtool script that only takes effect on IRIX. Solution: Edited the libtool hack (by editing ltmain.sh) to correct a bug in the hack. Also made sure that compiler-specific DEFAULT_LIBS are used when linking. Platforms tested: sleipnir, copper, modi4, sol
* [svn-r9993] Purpose:James Laird2005-02-111-3/+0
| | | | | | | | | | | | | | | | | | | | Bug fix Description: Arabica exhibited strange errors when linker found wrong versions of header files. This happened because include directories were given to linker in the wrong order. Solution: Move include directories from AM_CFLAGS variable to INCLUDES variable to put them before CPPFLAGS variable. Trust me, it works. This bug may also have contributed to strange errors on other platforms (kelgia?). Platforms tested: copper, sleipnir, arabica. (h5dump broke while building on arabica, but this happened in a clean checkout, too).
* [svn-r9988] Purpose:James Laird2005-02-111-15/+4
| | | | | | | | | | | | | | | | | | | | Bug fix Description: pmake (on modi4, for instance) complains about undefined variables if it is run without the -V flag, which turns those errors to warnings. Solution: Added test to configure.in to see if $MAKE will allow Makefiles with undefined variables. If not, sets -V flag in AM_MAKEFLAGS. Ensured that all custom make targets use AM_MAKEFLAGS. Also defined all variables that caused errors in top-level Makefile.am. This means that pmake can be used to build hdf5 *from the top level only*. To run make from a subdirectory, still need to use -V flag (or use make or gmake). Platforms tested: modi4, heping, copper, sleipnir
* [svn-r9955] Purpose:Quincey Koziol2005-02-081-8/+11
| | | | | | | | | | | | | | New feature & bug fix Description: Allow h5debug tool to dump "test" v2 B-trees correctly. Also, fix incorrect parameter passing that was causing failures on various platforms. Platforms tested: FreeBSD 4.11 (sleipnir) AIX 5.2 (copper)
* [svn-r9939] Purpose:Quincey Koziol2005-02-041-27/+29
| | | | | | | | | | | | | New feature Description: Expand v2 B-tree code to support splitting the root node when enough records are inserted and move metadata cache callbacks into their own source file. Platforms tested: FreeBSD 4.11 (sleipnir) w/parallel Too minor for h5committest
* [svn-r9930] James Laird2005-02-031-1/+1
| | | | | | | | | | | | | | | | | | Purpose: Bug fix Description: Parallel builds were breaking in tools/lib Solution: talign didn't realize it depended on libh5tools.la because its dependencies listed the full path (../../tools/lib/libh5tools.la). Changed this, and made similar changes in a couple of other directories. This checkin should also add the --foreign flag to every Makefile.in Platforms tested: sleipnir (minor change)
* [svn-r9928] Purpose:Quincey Koziol2005-02-031-25/+32
| | | | | | | | | | | | | New feature Description: Add basic code for new B-tree implementation. They don't do much yet, aren't hooked up to anything yet and the format may change, but I'd like to start getting them into the daily tests. Platforms tested: FreeBSD 4.11 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r9920] Purpose:James Laird2005-02-021-3/+4
| | | | | | | | | | | | | | | | | | | Bug fix Description: Found the permanant fix to automake/CVS dependency problem Solution: Added AM_MAINTAINER_MODE macro to configure.in. Now automake will never try to regenerate Makefiles, Makefiles.in, configure, H5config.h, etc. when they are out of date, nor will it print any warnings. Developers should be very very careful to use reconfigure script, and can add --enable-maintainer-mode flag to configure on heping to regenerate these files correctly. Platforms tested: heping sleipnir copper
* [svn-r9915] Purpose:James Laird2005-02-021-6/+6
| | | | | | | | | | | | | | | Bug fix Description: Configuration files' timestamps were incorrect. Solution: Update Makefiles.in. Also added correct paths to autotools on heping, so heping build should be able to re-generate configuration files even if they are still broken. Platforms tested: sleipnir
* [svn-r9912] Purpose:James Laird2005-02-011-87/+8
| | | | | | | | | | | | | | | | | Bug fix Description: Dependencies between configure files (aclocal, configure.in, configure, Makefiles.am and .in) are still causing Makefiles to try to run autotools during build. Solution: Committed all Makefiles.in to update their timestamps. As a temporary measure, forcibly prevented automake from running autotools during build by redefining the variables it uses. Platforms tested: sleipnir (No changes to Makefile content)
* [svn-r9907] Purpose:James Laird2005-02-011-0/+1
| | | | | | | | | | | | | Bug fix Description: Different compilers use different flags to include Fortran module files Solution: Changed boilerplate to use configure variable rather than hardcoded -M flag. Platforms tested: sleipnir, sol, copper
* [svn-r9902] Purpose:James Laird2005-02-011-97/+1019
| | | | | | | | | | | | | | | Configuration feature Description: HDF5 now uses automake to generate Makefiles Solution: Makefile.in files are now generated from Makefile.am files. To reconfigure (after chaning a Makefile.am or configure.in): /bin/sh bin/reconfigure.sh Platforms tested: Many
* [svn-r9778] Purpose:Quincey Koziol2005-01-081-2/+2
| | | | | | | | | | | | | | | Remove feature Description: Retire threaded, balanced binary tree code from HDF5 use. Requiescat in pace... Also, regenerate dependencies files. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Too minor to require full h5committesting (the code is already disconnected from everything except its tests)
* [svn-r9758] Purpose:MuQun Yang2005-01-061-1/+1
| | | | | | | | | | | | | | | | | Adding framework of N-bit filter Description: N-bit filter is required for NetCDF project. To add N-bit filter, configure.in configure, Makefile.in under src and other filter-related source code needs to be updated. Currently, N-bit tests are turned off from the library. So the change will affect daily test. Solution: Platforms tested: sol 2.7, linux 2.4, aix 5.1 Misc. update:
* [svn-r9687] Purpose:John Mainzer2004-12-181-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify the cache code (H5C) to support automatic cache resizing to adapt to the work load at run time. Description: Different applications require different sized caches to maintain an acceptable hit rate. This set of changes attempts to provide the ability to adjust to circumstances automatically. Solution: Added highly configurable code to allow the user to either set a fixed cache size, or allow the cache to grow and shrink according to conditions. If enabled, cache size increases are triggered when the hit rate drops below a user specified threshold in a user specified interval. Cache size reductions (if enabled) are triggered when either the hit rate exceeds some user specified threshold over a user specified interval, when the cache contains "enough" entries that haven't been accessed for a user specified interval, or some mix of the above. See the header comments on the H5C_auto_size_ctl_t structure in H5Cprivate.h for further details. At present, the cache resize configuration options are not accessible via the user API. Must add this. Platforms tested: h5committested, heping (serial), and copper (parallel) Misc. update:
* [svn-r9580] Purpose:Quincey Koziol2004-11-271-2/+4
| | | | | | | | | | | | | | | | | | | | Add new internal data structure Description: Add an implementation of skip lists to the library (see comment in src/H5SL.c for references to the papers describing them) as a potential replacement for our current threaded, balanced binary tree container. Skip lists are much simpler to implement and should be faster to use. Also, added new error codes to release branch, so bump the minor version number to indicate that the library is no longer perfectly compatible with the 1.6.3 release. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) Too minor to require further testing (the skip lists aren't actually used by any library code yet)
* [svn-r9354] Purpose:Quincey Koziol2004-10-011-2/+3
| | | | | | | | | | | | | | | | Bug fix & code cleanup Description: More dataset cleanups to get to a point where we can fix the chunked I/O bug. Also fix a couple of errors in the recent file object resurrection changes which should hopefully address the recent daily test failres (H5T.c) Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) h5committest
* [svn-r9342] Purpose:Quincey Koziol2004-09-301-1/+1
| | | | | | | | | | | | | | | | Bug fix/code cleanup Description: Clean up raw data I/O code to bundle the I/O parameters (dataset, DXPL ID, etc) into a single struct to pass around through the dataset I/O routines, since they are always passed together, until very near the bottom of the I/O stack. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) IRIX64 6.5 (modi4) h5committest
* [svn-r8932] Purpose:Quincey Koziol2004-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | Code cleanup Description: Clean up collective chunking code a bit. Also, add '--enable-instrument' configure flag to have a mechanism for determining that optimized operations happened correctly in the library (instead of just the "normal" way) by allowing 'flag' properties to be set outside the library and set when the "right" thing happens. This is mainly for debugging and regression checks, so we make certain we don't break optimized I/O by accident. It's enabled by default when --enable-debug is on (which is on by default in the development branch and off by default in the release branch), but can also be independently controlled with its own configure flag. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel IBM p690 (copper) w/parallel
* [svn-r8844] Purpose:Quincey Koziol2004-07-091-4/+4
| | | | | | | | | | | | | | | | | | Bug fix Description: The "shared" raw B-tree node can get freed before all the B-tree nodes had been flushed out to disk and released by the cache. Solution: Implement a simple reference counting wrapper for objects in the library and use it to hold the shared raw B-tree nodes so they aren't freed before all references to them in memory are released. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) IRIX64 6.5 (modei4)
* [svn-r8791] Purpose: Rewrote metadata cache (H5AC.c, etc.) to improve ↵John Mainzer2004-07-021-15/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | performance. Description: Replaced the old metadata cache with a cache with a modified LRU replacement policy. This should improve the hit rate. Solution: Since we want to flush cache entries in increasing address order, I used the threaded binary B-tree code to store the cache entries. There is a fair bit of overhead here, so we may want to consider other options. While the code is designed to allow the support of other replacement algorithms, at present, only a modified version of LRU is supported. The modified LRU algorithm requires that a user selectable portion of the cache entries be clean. The clean entries are evicted first when writes are not permitted. If the pool of clean entries is used up, the cache grows beyond its user specified maximum size. The cache can also exceed its maximum size if the combined size of the protected (or locked) entries exceeds the maximum size of the cache. Platforms tested: eirene (serial, parallel, fp), h5committested Misc. update:
* [svn-r8618] Purpose:Quincey Koziol2004-06-051-2/+2
| | | | Fix makefiles, dependencies & manifest after source file rename.
* [svn-r8590] Purpose:Quincey Koziol2004-05-271-16/+17
| | | | | | | | | | | | | | | | | | | | | Code optimization & bug fix Description: When dimension information is being stored in the storage layout message on disk, it is stored as 32-bit quantities, possibly truncating the dimension information, if a dimension is greater than 32-bits in size. Solution: Fix the storage layout message problem by revising file format to not store dimension information, since it is already available in the dataspace. Also revise the storage layout data structures to be more compartmentalized for the information for contiguous, chunked and compact storage. Platforms tested: FreeBSD 4.9 (sleipnir) w/parallel Solaris 2.7 (arabica) h5committest
* [svn-r8479] Purpose:Albert Cheng2004-05-031-1/+1
| | | | | | | | | | | | | New Feature Description: Add the data transform function, H5Pset_transform(). Platforms tested: "h5committested". Copper was down. Ran parallel tests in sol instead. Misc. update:
* [svn-r8212] Purpose:Albert Cheng2004-02-181-2/+2
| | | | | | | | | | | | | Bug fix. Description: The -g in H5detect somehow does not work with 64bit mpicc in arabica. Remove it for now for better solution. Platforms tested: no test as the change is trivia. Misc. update:
* [svn-r8207] Purpose:Albert Cheng2004-02-171-1/+5
| | | | | | | | | | | | | | | | | | | | Bug fix, sort of. Description: Some compilers, e.g., intel compiler, would take a long time to compiler H5detect.c if optimization is on. Solution: Setup special make rules for H5detect to be compiled always with optimization off by using -g. Since H5detect is run once to generate H5Tinit.c, it does not matter that much if it is optimized or not. Platforms tested: "h5committested". Tested in Titan too.
* [svn-r8126] Purpose:Quincey Koziol2004-01-311-2/+2
| | | | | | | | | | | | | | | | | Bug fix/optimization Description: Address slowdown in MPI-I/O file metadata operations that was introduced mid-stream. We now _require_ a POSIX compliant parallel file system for the MPI-I/O file driver (as well as for the MPI-POSIX file driver). Also optimized file open operation when the file is being created by reducing the number of collective & syncronizing calls. Additionally, refactor the MPI routines into a common place, eliminating duplicated code. Platforms tested: FreeBSD 4.9 (sleipnir) w/parallel h5committest
* [svn-r7355] Purpose:Quincey Koziol2003-08-131-13/+21
| | | | | | | | | | | | | | | | | | | | | | Code cleanup, etc. Description: Previously (in versions prior to 1.7), there were two locations to modify when an error was added to the library. Now, with the new error API, there were four. Solution: Created a single text file (src/H5err.txt) and a perl script (bin/make_err) which uses the text file to automatically create header files that are included in appropriate places in the library. This means that there is only one file (src/H5err.txt) which needs to be modified when a new error code is added to the library. The automatically generated headers depend on this file and the makefiles will take care of running the perl script to regenerate them when the text file changes, so no user action is required when a new error is added. Platforms tested: h5committested
* [svn-r7191] Purpose:Quincey Koziol2003-07-091-17/+17
| | | | | | | | | | Code cleanup Description: Track new "debug" modules for library. Platforms tested: h5committested
* [svn-r7009] Purpose:Albert Cheng2003-06-091-1/+3
| | | | | | | | | | | | | | Bug fix Description: libhdf5.settings should be removed in DISTCLEAN, not CLEAN. Solution: Platforms tested: COpper. Misc. update:
* [svn-r6952] Purpose:Quincey Koziol2003-06-041-6/+7
| | | | | | | | | | | | | Code cleanup Description: Move testing routines into their own module, to avoid linking them into user's applications needlessly. Platforms tested: FreeBSD 4.8 (sleipnir) w/C++ FreeBSD 4.8 (sleipnir) w/parallel h5committested
* [svn-r6825] Purpose:Quincey Koziol2003-05-071-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | New feature/enhancement Description: Chunked datasets are handled poorly in several circumstances involving certain selections and chunks that are too large for the chunk cache and/or chunks with filters, causing the chunk to be read from disk multiple times. Solution: Rearrange raw data I/O infrastructure to handle chunked datasets in a much more friendly way by creating a selection in memory and on disk for each chunk in a chunked dataset and performing all of the I/O on that chunk at one time. There are still some scalability (the current code attempts to create a selection for all the chunks in the dataset, instead of just the chunks that are accessed, requiring portions of the istore.c and fillval.c tests to be commented out) and performance issues, but checking this in will allow the changes to be tested by a much wider audience while I address the remaining issues. Platforms tested: h5committested, FreeBSD 4.8 (sleipnir) serial & parallel, Linux 2.4 (eirene)
* [svn-r6711] Purpose:Albert Cheng2003-04-181-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug fix Description: Sometimes when H5detect fails (incorrect code, incorrect mpi launch command, insufficient resources,...), it generates an incomplete or even empty H5Tinit.c file. If the empty file is not removed but the make is run again, make will just use the empty file to generate the library which will have lots of missing routines. Make won't fail until much later and the missing routines would be puzzling to inexperienced users. Solution: If H5detect fails, the generated H5Tinit.c will be removed unless $HDF5_Make_Ignore is set. This is similar to removing .o file if the compile fails. Platforms tested: Copper (parallel) which has a condition causing H5detect to fail. That verified the change works. Eirene (parallel) in which H5detect runs well. This verified the change works in normal conditions too. Did not do the h5committest because this is just a makefile change and the above two tests covered it well. Misc. update:
* [svn-r6611] Purpose:Quincey Koziol2003-04-091-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code cleanup/new features Description: Switch over to a new style for registering filters with the library - instead passing in an ID, a string and a callback function to H5Zregister, the client should pass in a single pointer to a H5Z_claass_t struct which contains the ID, the description string and all the function callbacks as fields. Added support for a new "can apply" callback for each filter, which is called when a dataset is created to check whether the parameters for that filter apply correctly to the combination of the datatype and the chunk size (i.e. dataspace) for the dataset. Added support for a new "set local" callback for each filter, which is called when a dataset is created (after the "can apply" filter callback) and sets filter parameters that are specific to that particular dataset. Switched the filters we ship over to use the new H5Z_class_t struct for their internal registrations and also added "set local" callbacks to the szip and shuffle filters and a "can apply" callback to the szip filter. Lots of other code cleanups, etc. also Solution: Platforms tested: FreeBSD 4.8 (sleipnir) w/szip Linux 2.4 (sleipnir) w/szip Solaris 2.7 (arabica) w/FORTRAN IRIX64 6.5 (modi4) w/szip, FORTRAN & parallel Misc. update:
* [svn-r6578] Purpose:Quincey Koziol2003-04-031-1/+1
| | | | | | | | | | | | | | | | Code cleanup Description: Added lots of comments to existing filters, so they are easier to understand and use as examples for future filters. Cleaned up various bits of code, etc. Solution: Platforms tested: FreeBSD 4.8 (sleipnir) IRIX64 6.5 (modi4) w/parallel Misc. update:
* [svn-r6550] Purpose:MuQun Yang2003-04-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | To support szip compression in HDF5 Description: szip compression support is required by NASA ESDIS. The compression algorithm is a good compression algorithm for scientific data. In HDF5, we add another filter function to make szip as a default compression package as we did for gzip(or zlib). H5config.in needs to be regenerated by autoheader for SZIP flags. Solution: A new file called H5Zszip.c will be added in the Makefile.in Flags like: HAVE_FILTER_SZIP should be auto-generated by autoheader. Platforms tested: Since there are changes of configure.in and configure,I didn't use h5committest. I tested with four platforms. 1) Linux 2.4 (eirene) 2) Solaris 2.7(arabica) 3) windows 2000(VS 6.0) 4) SGI IRIX6.5-64(modi4) For test 1)-3), only basic C tests were done For modi4 test, I tested 64-bit C,parallel and fortran. All tests passed, except a warning message from szip library when checksum is used in some order, which doesn't cause any real problems. Misc. update:
* [svn-r6436] Purpose:Quincey Koziol2003-02-241-9/+10
| | | | | | | | | | | | | New internal feature Description: Add internal API for building and working with heaps (H5HP). This will be used for the LRU algorithm in the new metadata cache code. Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} FreeBSD 4.7 (sleipnir)
* [svn-r6411] Purpose:Quincey Koziol2003-02-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | Code cleanup Description: Clean up miscellaneous warnings which have crept into the code. Fix "_POSIX_C_SOURCE not defined" warning on FreeBSD. Adjust gcc compiler flags to be more concise for production mode. Refactor the H5O code so that there is a stronger boundary between code in the H5O package and code in the library which just calls H5O routines. Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} FreeBSD 4.7 (sleipnir) serial & parallel and gcc 2.95.4 & gcc 3.2.2 Misc. update: Update MANIFEST if you add or remove any file.
* [svn-r6400] Raymond Lu2003-02-121-1/+1
| | | | | | | | | | | Purpose: Change feature Description: Switch to Fletcher32 from Adler32 checksum Platforms tested: arabica, eirene, modi4 Misc. update: MANIFEST and RELEASE.txt updated.
* [svn-r6395] Purpose:Quincey Koziol2003-02-121-2/+5
| | | | | | | | | | | | | | | | | | | | | | | Code cleanup. Description: Break up the ~9350 line H5T.c module into smaller pieces, which contain code for a particular feature or support for a datatype class. This should make the "main" H5T code (still in H5T.c) easier to support, as well as removing some of the "minor" routines from the user applications which don't use them (my rough estimates show about 4% reduction (~30K on a FreeBSD machine) in optimized, staticly-linked binaries for very simple programs) Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} FreeBSD 4.7 (sleipnir) Misc. update: Update MANIFEST
* [svn-r6392] Purpose:Bill Wendling2003-02-101-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | Update Description: Folded in Quincey's changes to the caching stuff. (Stole the code from the H5FDmpio driver). Roughed in some code for doing a read from the SAP. Also roughed in code for doing a write. However, the write requires an OID, which I'm not sure how to pass down into the driver (maybe via the dxpl_id?...but then it has always to be set before calling one of these routines...). Removed some of the global variables which were there because of the FPHDF5 stuff... Removed the H5Ofphdf5.* stuff from the Makefile.in, since I'm pretty sure it's going away and I don't want to waste time updating that module if that's the case...so just don't compile it. Platforms tested: Linux
* [svn-r6383] Purpose:Quincey Koziol2003-02-071-9/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New feature for developers. Description: Added "function stack" tracing to library. This allows developers (there is no public API) to call H5FS_print within the library and get a listing of the functions traversed to reach that point in the library. Eventually, I may add support for reporting the parameters to each function also... Mainly for debugging parallel I/O programs, but I think it will come in handy in other cases also. The function stack tracking is controlled with a configure switch: --enable-funcstack, which defaults to enabled currently. When we branch for 1.6, we should change the default setting on the branch to be disabled. Also, added a destructor to the thread-specific keys when thread-safety is turned on in the library. Otherwise, they were leaking memory and causing difficult to debug errors in threaded programs (like the test/ttsafe test). Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} FreeBSD 4.7 (sleipnir) w/thread-safety enabled. Misc. update: Updated MANIFEST with new files added (src/H5FS.c & src/H5FDprivate.h) Update release_docs/RELEASE with thread-safety bug fix.
* [svn-r6380] Purpose:Bill Wendling2003-02-061-15/+16
| | | | | | | | Update Description: Added support for the H5FDfphdf5.[ch] file driver. Platforms tested: Linux
* [svn-r6375] Raymond Lu2003-02-041-1/+1
| | | | | | | | | | | Purpose: New feature Description: Added Adler32 checksum as a filter in pipeline Platforms tested: arabica (fortran), eirene (, C++), modi4 (parallel, fortran) Misc. update: Update release_docs/RELEASE.
* [svn-r6308] Purpose:Quincey Koziol2003-01-211-8/+8
| | | | | | | | | | | | | | | | | Bug fix Description: Currently, when the library encounters an object header message that isn't know, it fails to open that object in the file. Solution: Allow the library to skip over the unknown object header message and continue to process the remaining messages, in the hope that the skipped message isn't important later. If it is important, it will be caught at a higher level of the library. Platforms tested: FreeBSD 4.7 (sleipnir)
* [svn-r6266] Purpose:Quincey Koziol2003-01-101-2/+2
| | | | | | | | | | | | Code cleanup/new feature. Description: Split FUNC_LEAVE into API and non-API specific versions. This allows a solution to compiling this branch with C++, as well as reducing the size of the binaries produced. Platforms tested: FreeBSD 4.7 (sleipnir) w/serial, parallel (including MPE) & thread-safe
* [svn-r6252] Purpose:Quincey Koziol2003-01-091-12/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lots of performance improvements & a couple new internal API interfaces. Description: Performance Improvements: - Cached file offset & length sizes in shared file struct, to avoid constantly looking them up in the FCPL. - Generic property improvements: - Added "revision" number to generic property classes to speed up comparisons. - Changed method of storing properties from using a hash-table to the TBBT routines in the library. - Share the propery names between classes and the lists derived from them. - Removed redundant 'def_value' buffer from each property. - Switching code to use a "copy on write" strategy for properties in each list, where the properties in each list are shared with the properties in the class, until a property's value is changed in a list. - Fixed error in layout code which was allocating too many buffers. - Redefined public macros of the form (H5open()/H5check, <variable>) internally to only be (<variable>), avoiding innumerable useless calls to H5open() and H5check_version(). - Reuse already zeroed buffers in H5F_contig_fill instead of constantly re-zeroing them. - Don't write fill values if writing entire dataset. - Use gettimeofday() system call instead of time() system when checking the modification time of a dataset. - Added reference counted string API and use it for tracking the names of objects opening in a file (for the ID->name code). - Removed redundant H5P_get() calls in B-tree routines. - Redefine H5T datatype macros internally to the library, to avoid calling H5check redundantly. - Keep dataspace information for dataset locally instead of reading from disk each time. Added new module to track open objects in a file, to allow this (which will be useful eventually for some FPH5 metadata caching issues). - Remove H5AC_find macro which was inlining metadata cache lookups, and call function instead. - Remove redundant memset() calls from H5G_namei() routine. - Remove redundant checking of object type when locating objects in metadata cache and rely on the address only. - Create default dataset object to use when default dataset creation property list is used to create datasets, bypassing querying for all the property list values. - Use default I/O vector size when performing raw data with the default dataset transfer property list, instead of querying for I/O vector size. - Remove H5P_DEFAULT internally to the library, replacing it with more specific default property list based on the type of property list needed. - Remove redundant memset() calls in object header message (H5O*) routines. - Remove redunant memset() calls in data I/O routines. - Split free-list allocation routines into malloc() and calloc()- like routines, instead of one combined routine. - Remove lots of indirection in H5O*() routines. - Simplify metadata cache entry comparison routine (used when flushing entire cache out). - Only enable metadata cache statistics when H5AC_DEBUG is turned on, instead of always tracking them. - Simplify address comparison macro (H5F_addr_eq). - Remove redundant metadata cache entry protections during dataset creation by protecting the object header once and making all the modifications necessary for the dataset creation before unprotecting it. - Reduce # of "number of element in extent" computations performed by computing and storing the value during dataspace creation. - Simplify checking for group location's file information, when file has not been involving in file-mounting operations. - Use binary encoding for modification time, instead of ASCII. - Hoist H5HL_peek calls (to get information in a local heap) out of loops in many group routine. - Use static variable for iterators of selections, instead of dynamically allocation them each time. - Lookup & insert new entries in one step, avoiding traversing group's B-tree twice. - Fixed memory leak in H5Gget_objname_idx() routine (tangential to performance improvements, but fixed along the way). - Use free-list for reference counted strings. - Don't bother copying object names into cached group entries, since they are re-created when an object is opened. The benchmark I used to measure these results created several thousand small (2K) datasets in a file and wrote out the data for them. This is Elena's "regular.c" benchmark. These changes resulted in approximately ~4.3x speedup of the development branch when compared to the previous code in the development branch and ~1.4x speedup compared to the release branch. Additionally, these changes reduce the total memory used (code and data) by the development branch by ~800KB, bringing the development branch back into the same ballpark as the release branch. I'll send out a more detailed description of the benchmark results as a followup note. New internal API routines: Added "reference counted strings" API for tracking strings that get used by multiple owners without duplicating the strings. Added "ternary search tree" API for text->object mappings. Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} Other platforms/configurations tested? FreeBSD 4.7 (sleipnir) serial & parallel Solaris 2.6 (baldric) serial
* [svn-r6088] MuQun Yang2002-11-131-1/+1
| | | | | | | | | | Purpose: add H5Zshuffle.c at Makefile.in Description: Solution: Platforms tested: eirene,modi4,arabica Misc. update: