summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r8932] Purpose:Quincey Koziol2004-07-2211-401/+437
| | | | | | | | | | | | | | | | | | | | 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-r8927] Purpose:Quincey Koziol2004-07-226-102/+58
| | | | | | | | | | | Code cleanup Description: Clean up various recent changes a little. Platforms tested: FreeBSD 4.10 (sleipnir) Too minor to require h5committest
* [svn-r8923] Purpose:MuQun Yang2004-07-211-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To add a special section of codes for collective-chunk IO tests. Description: The current patch of collective chunk IO support in HDF5 can only handle some special("however, can cover many applications") cases, Inside source code, we did a careful checking to make sure other cases would not fall into this category and would not use collective IO. We also would like to test whether those collective conditions were met in our test programs. The current parallel HDF5 handled those collective IO requests in a special way. If the library finds it cannot do collective IO, it will silently change to independent IO. So basically there is no better way to check whether the library is doing what it should do without "hacking" into HDF5 source codes for the purpose of testing. But the "hacking" should not affect library work and should be easily pulled out after we get more general collective IO algorithm to work. With Quincey's suggestion, we used HDF5 property APIs to finish the job. Solution: The approach includes three parts: 1) In the test program, insert a property inside data transfer property list. Set a default value for this property. 2) Inside H5Dio.c, when the library finds that it cannot do collective IO with chunking storage, it will change the default value. 3) Then the test program will recheck the value after H5Dwrite or H5Dread to evaluate whether the current collective IO case is doing the right thing. Note: The test won't stop after it finds that the library is not doing the right thing and probably it will finish normally. The current approach is that the test program just printed out an error message. It should be changed later. Platforms tested:o copper,arabica,eirene Misc. update:
* [svn-r8922] Purpose: Restore the original codeRaymond Lu2004-07-211-1/+1
| | | | | | | | Description: Line 38, "#define H5_NO_FREE_LISTS" were commented out during debugging Solution: put back in. Platforms tested: No test needed
* [svn-r8921] Purpose: new featureRaymond Lu2004-07-219-24/+298
| | | | | | | | | | | | | | Description: This is the second step of checkin for encoding and decoding objects. H5Tencode and H5Tdecode have been committed in the previous step. H5Sencode and H5Sdecode are checked in this time. Solution: Given object ID, these functions encode and decode object information into and from binary buffer and return new object ID. They take advantage of the existing codes of object header message and encode in the same format. Platforms tested: fuss and h5committest. Misc. update: RELEASE.txt
* [svn-r8915] Elena Pourmal2004-07-211-12/+28
| | | | | | | | | | | | | | | | | | | Purpose: Improvement Description: HDF5 Library set pixels_per_scanline parameter to the size of the chunk's fastest changing dimension. As a result, fastest changing dimension of the chunk could not be bigger than 4K and smaller than pixels_per_block value and szip compression couldn't be used for many real datasets. Solution: Reworked algorithm how HDF5 sets pixels_per_scanline value; only chunks with the total number of elements less than pixels_per_block value are rejected. There is no restriction on the size of the chunk's fastest changing dimension anymore. Platforms tested: verbena, copper, sol Misc. update:
* [svn-r8906] Purpose:MuQun Yang2004-07-207-27/+196
| | | | | | | | | | | | | | | | | | | | | | | Adding the first round of patches about supporting collective chunk IO in HDF5 Description: The current HDF5 library doesn't support collective MPIO with chunk storage. When users set collective option in their data transfer with chunk storage, the library silently converted the option to INDEPENDENT and that caused trememdous performance penalty. Some application like WRF-parallel HDF5 IO module has to use contiguous storage for this reason. However, chunking storage has its own advantage(supporting compression filters and extensible dataset), so to make collective MPIO possible inside HDF5 with chunking storage is a very important task. This check-in make collective chunk IO possible for some special cases. The condition is as follows(either case is fine with using collective chunk IO) 1. for each process, the hyperslab selection of the file data space of each dataset is regular and it is fit in one chunk. 2. for each process, the hyperslab selection of the file data space of each dataset is single and the number of chunks for the hyperslab selection should be equal. Solution: Lift up the contiguous storage requirement for collective IO. Use H5D_isstore_get_addr to get the corresponding chunk address. Then the original library routines will take care of getting the correct address to make sure that MPI FILE TYPE is built correctly for collective IO> Platforms tested: arabica(sol), copper(AIX), eirene(Linux) parallel test is checked at copper. Misc. update:
* [svn-r8905] Purpose:MuQun Yang2004-07-201-1/+2
| | | | | | | | | | | | | | | | bug fix for windows testing Description: A function called H5C_stats_reset doesn't have H5_DLL in front of it, it cause windows DLL test failed. Solution: Add H5_DLL in front of it. Platforms tested: windows xp, sol 2.7, linux 2.4, aix 5.1 Misc. update:
* [svn-r8901] Purpose:Quincey Koziol2004-07-201-4/+2
| | | | | | | | | | | | Bug fix Description: Allow buffer parameter to H5Dread & H5Dwrite to be NULL if there are no elements to transfer. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8899] James Laird2004-07-201-0/+3
| | | | | | | | | | | | | | | | Purpose: Bug Fix Description: Calling H5Sset_extent_simple to change a dataspace's maxdims from nonzero to zero causes errors (infinite loops, seg faults, asserts) because the pointer to the maximum size isn't cleaned up properly Solution: Clean up that pointer. Added a test for this case. Platforms tested: sleipnir (very minor change)
* [svn-r8897] James Laird2004-07-201-0/+7
| | | | | | | | | | | | | | | | | Purpose: Bug Fix Description: Trying to create the root group or the working group ("/" or ".") fakes out HDF5 so that it neither creates a group nor returns an error. Solution: H5G_namei now throws an error if it was supposed to insert but didn't. Platforms tested: sleipnir, Visual Studio 7 (very minor change) Misc. update:
* [svn-r8892] Purpose:Quincey Koziol2004-07-1610-123/+140
| | | | | | | | | | | | | | Code cleanup Description: Clean up a bunch of warnings and bring new code better inline with current library coding practice. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest Misc. update:
* [svn-r8888] Purpose:Quincey Koziol2004-07-161-2/+2
| | | | Bump version # after making snapshot
* [svn-r8881] James Laird2004-07-152-3/+3
| | | | | | | | | | | | Purpose: Bug fix Description: Replaced "unsigned long long" with hsize_t in H5MF Added "return 0" at end of reserved.c test Platforms tested: arabica, sleipnir
* [svn-r8879] Raymond Lu2004-07-1410-4/+258
| | | | | | | | | | | | | | Purpose: New feature Description: New API H5Tencode and H5Tdecode. Given object ID, H5Tencode encodes object information into a binary form. H5Tdecode decode an object information in a binary form, reconstructs the object and return a new object ID. Solution: Use object header functions H5O_dtype_decode and H5O_dtype_encode to facilitate them. The encoded binary is exactly like object header information. This is the first step checkin. Will check in H5Sencode and H5Sdecode later. Platforms tested: h5committed and fuss. Misc. update: will update release.txt after 2nd step checkin.
* [svn-r8877] James Laird2004-07-1411-21/+216
| | | | | | | | | | | | | | | | | | | | | | | | | | | Purpose: Bug Fix Description: If an HDF5 file grows larger than its address space, it dies and is unable to write any data. This is more likely to happen since users are able to change the number of bytes used to store addresses in the file. Solution: HDF5 now throws an error instead of dying. In addition, it "reserves" address space for the local heap and for object headers (which do not allocate space immediately). This ensures that after the error occurs, there is enough address space left to flush the entire file to disk, so no data is lost. A more complete explanation is at /doc/html/TechNotes/ReservedFileSpace.html Platforms tested: sleipnir, copper (parallel), verbena, arabica, Windows (Visual Studio 7) Solution: Platforms tested: Misc. update:
* [svn-r8874] Purpose:Quincey Koziol2004-07-145-19/+70
| | | | | | | | | | | | | | | | | | | | Bug fix Description: Correct problems with "resurrecting" a dataset in a file. (This occurs when a dataset which is open gets unlinked from the group hierarchy (making it "dead" and marked for deletion in the file) and then is re-linked to the group hierarchy). Note that the current solution applies only to datasets, further work will fix this for groups and named datatypes also. Also, fix the "debug" routines to be a little more helpful in certain situations. Additionally, fix a locking bug in the symbol table node splitting routine which could be [one of] the cause[s] of the file corruption in flexible parallel operation. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel h5committested
* [svn-r8867] Purpose:Quincey Koziol2004-07-131-3/+13
| | | | | | | | | | | | | | | | | | | Bug fix Description: Fix error in chunked dataset I/O where data written out wasn't read correctly from a chunked, extendible dataset after the dataset was extended. Also, fix parallel I/O tests to gather error results from all processes, in order to detect errors that only occur on one process. Solution: Bypass chunk cache for reads as well as writes, if parallel I/O driver is used and file is opened for writing. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8865] Purpose:Quincey Koziol2004-07-134-57/+70
| | | | | | | | | | | | | | | | | Code optimization Description: Re-work the insertion of a new child into an existing node, to exploit some speedups for adding the rightmost child, since this is a very common case when appending records to an unlimited size dataset. Also, hoist the checks for the tree's 'K' value into a field in the shared information about the tree, instead of re-calculating them all the time. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8860] Purpose:Quincey Koziol2004-07-121-12/+41
| | | | | | | | | | | | Code optimization Description: Avoid calling vector comparison routine when operating on 1-D chunks. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8858] Snapshot version 1.7 release 30HDF Admin2004-07-111-2/+2
|
* [svn-r8853] Purpose:Quincey Koziol2004-07-109-337/+378
| | | | | | | | | | | | | | | | | | | | Code optimization Description: Refactor B-tree code to extract all common information for a B-tree into a shared structure that is pointed to by all the nodes in tree (instead of being included in each node). Also re-order B-tree node comparison checks for chunked datasets to check for >= the upper node first, since the comparison is a bit "heavy" and this check is more likely to succeed when you are adding records to the dataset. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest (also, recent h5dump commits have broken testing...)
* [svn-r8847] Purpose:Quincey Koziol2004-07-091-69/+20
| | | | | | | | | | | | Code cleanup & small optimization Description: Eliminate redundant recomputation of native key pointer offsets. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8844] Purpose:Quincey Koziol2004-07-0912-28/+303
| | | | | | | | | | | | | | | | | | 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-r8823] Purpose:Quincey Koziol2004-07-0710-413/+398
| | | | | | | | | | | | | | | Code optimization Description: Since the raw B-tree nodes are the same size and only used when reading in or writing out a B-tree node, move raw B-tree node buffer from being per node to a single node that is shared among all B-tree nodes of a particular tree, freeing up a lot of space and eliminating lots of memory copies, etc. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8818] Raymond Lu2004-07-072-10/+13
| | | | | | | | | | Purpose: Potential bug fix Description: In H5Fget_filesize, file size was returned as haddr_t. Change it to hsize_t and return it as parameter to make fortran interface easier. Platforms tested: fuss(simple change).
* [svn-r8807] Purpose:Quincey Koziol2004-07-051-42/+43
| | | | | | | | | | | | | Code optimization Description: Don't copy layout information, just point to existing information. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8805] Purpose:Quincey Koziol2004-07-051-86/+120
| | | | | | | | | | | | | | | | | Code optimization & bug fix Description: Speed up "fast comparison" lookups in trees by a factor of 2-3x Correctly handle "fast comparisons" for unsigned values (esp. hsize_t). Solution: Mostly removing if statements and redundant assigns, etc. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8803] Snapshot version 1.7 release 29HDF Admin2004-07-041-2/+2
|
* [svn-r8801] Purpose:Quincey Koziol2004-07-038-111/+173
| | | | | | | | | | | | | | | Code optimization Description: Set up datatype ID for dataset's datatype on disk. This allows us to avoid repeatedly copying the datatype when an ID is needed. Also, clean up a few warnings in various other places. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8800] Purpose:Quincey Koziol2004-07-0312-246/+197
| | | | | | | | | | | | | Code cleanup Description: Fix problems when compiling with C++ compiler. Also clean up some warnings with gcc 3.4.x Platforms tested: FreeBSD 4.10 (sleipnir) Too minor to require h5committest
* [svn-r8791] Purpose: Rewrote metadata cache (H5AC.c, etc.) to improve ↵John Mainzer2004-07-0221-1277/+5096
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-r8782] Purpose:Quincey Koziol2004-07-019-335/+255
| | | | | | | | | | | Code cleanup Description: Clean up almost all warnings from Windows builds. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8781] James Laird2004-07-0120-30/+287
| | | | | | | | | | | | | | | | Purpose: HDF5 now supports SZIP with no encoder. Description: SZIP can be configured to have both encoder and decoder or just to have the decoder. HDF5 can now query the configuration of any filter, and will throw errors if users try to write using a filter with encoding disabled. Solution: Added H5Zget_filter_info function, changed API for H5Pget_filter and H5P_get_filter_by_id. See SZIP RFC. Platforms tested: Copper (fortran, C++, parallel), Sleipnir (C++), Arabica (fortran, C++), Verbena (fortran, C++) Misc. update:
* [svn-r8768] Nat Furrer2004-06-301-0/+1
| | | | | | | | | | | | | | Purpose: Updated H5MPprivate.h for the new API function H5Itype_exists. Description: This is the last commit for these changes... I swear... Solution: Platforms tested: Misc. update:
* [svn-r8767] Nat Furrer2004-06-302-2/+2
| | | | | | | | | | | | | | Purpose: Forgot to change H5Inmembers's return type in last commit... Description: Changed the number H5Inmembers returns by reference from int to hsize_t. Solution: Platforms tested: Misc. update:
* [svn-r8766] Nat Furrer2004-06-302-14/+69
| | | | | | | | | | | | | | | | | | | Purpose: Small H5I API changes. Description: Changed public version of H5Inmembers to return the number of IDs in a type by reference. This allows the user to differentiate between the case when H5Inmembers has an error and when the ID type is just empty. Added a new API function, H5Itype_exists, which allows the user to find out whether an ID type exists or not, without throwing an error. Solution: Platforms tested: Copper Misc. update:
* [svn-r8765] Purpose: New feature and its test.Raymond Lu2004-06-304-1/+57
| | | | | | | | | | | Description: Added new API H5Fget_name and new test program called filename.c. This function returns the name of the file by object ID(file, group, dataset, named datatype, and attribute) which belongs to the file. Platforms tested: h5committest and fuss. Misc. update: MANIFEST and RELEASE.txt
* [svn-r8760] Purpose:Quincey Koziol2004-06-2911-15/+29
| | | | | | | | | | | | | Code cleanup & small bug fix Description: Regenerate dependency files Add htri_t as separate type from hbool_t for code tracing purposes. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8752] Purpose: Correct a typo.Raymond Lu2004-06-281-1/+1
| | | | | | | | Description: Mistyped color_H5Fget_filesize as color_H5Fget_filespace. Solution: Corrected for this commit. Platforms tested: No test needed.
* [svn-r8750] Purpose: Bug fixRaymond Lu2004-06-281-0/+1
| | | | | | | | Description: Forgot to add H5Fget_filespace to H5MPprivate.h for MPE. Solution: Defined color_H5Fget_filespac as "red". Platforms tested: copper
* [svn-r8741] *** empty log message ***Raymond Lu2004-06-242-0/+40
|
* [svn-r8736] Purpose:Quincey Koziol2004-06-242-69/+27
| | | | | | | | | | | | Code cleanup Description: Some code cleanups before starting serious optimization efforts. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) Too minor to require h5committest
* [svn-r8732] Purpose:Quincey Koziol2004-06-2311-22/+22
| | | | | | | | | | | | Code cleanup Description: Reduce compiler warnings on SGI IRIX Platforms tested: FreeBSD 4.10 (sleipnir) SGI IRIX6 (Cheryl's machine) Too minor to require full h5committest
* [svn-r8731] Purpose:Quincey Koziol2004-06-23108-1520/+1057
| | | | | | | | | | | | | | | Code cleanup & minor optimization Description: Re-work the way interface initialization routines are specified in the library to avoid the overhead of checking for them in routines where there is no interface initialization routine. This cleans up warnings with gcc 3.4, reduces the library binary size a bit (about 2-3%) and should speedup the library's execution slightly. Platforms tested: FreeBSD 4.10 (sleipnir) w/gcc34 h5committest
* [svn-r8725] Purpose:Quincey Koziol2004-06-232-10/+39
| | | | | | | | | | | | Refactor bug fix Description: Make bug fix for detecting the type of a soft link more general by registering an "isa" function for soft links. Platforms tested: FreeBSD 4.10 (sleipnir) Too minor to require h5committest
* [svn-r8721] Purpose: Bug fix and test.Raymond Lu2004-06-221-1/+10
| | | | | | | | | | | | | Description: Function H5Gget_objtype_by_idx failed to handle soft link object. The library returned object type by calling H5G_get_type through H5B_iterate. But H5G_get_type only deals with objects with valid header address which soft link doesn't have. Solution: In H5G_node_type, make soft link a special case by checking if the object type is H5G_CACHED_SLINK. Also added a test of soft and hard links to titerate.c Platforms tested: h5committest and RH 8(fuss).
* [svn-r8712] Fixed bugs in H5I codeJames Laird2004-06-212-1/+12
|
* [svn-r8711] Fixed bugs in H5I code, updated manifest.James Laird2004-06-211-2/+1
|
* [svn-r8707] Changed the way HDF5 handles hid_t's and added API functions to ↵James Laird2004-06-1815-406/+1057
| | | | allow users to register IDs and ID types at runtime.