summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r2647] Purpose:Albert Cheng2000-10-101-15/+19
| | | | | | | | | | | | | | Bug fiX Description: H5S_hyper_select_valid would report hyperslab invalid if the one of the count values is zero. The verifying algorithm did not take into consideration that block or count can contain zeros to indicate no element is wanted. Solution: Added code to test if block or count is zero. If so, skip the rest of the validity check. Platforms tested: IRIX64 -64.
* [svn-r2646] Purpose:Albert Cheng2000-10-102-6/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug fix (done by Kim Yates) Description: The optimized mpio code was broken and when read was done, it hanged. Solution: H5FDmpio.c: In H5FD_mpio_write, moved the 16-line block of code in which all procs other than p0 skip the actual write to be just before the call to MPI_File_write_at. Previously, the values of the local vars that controlled "allsame" were not always set correctly when the moved block was reached. H5S.c: Changed default value of H5_mpi_opt_types_g to TRUE, so that the MPI-IO hyperslab code is executed by default in parallel HDF5, rather than executing the serial hyperslab code. H5Smpio.c: In function H5S_mpio_hyper_type, added a call to free an intermediate type. Cures a small memory leak. Added code for cases of empty hyperslab Changed displacements to be MPI_Aint Platforms tested: modi4 -64: worked fine with mpich 1.2.0 but failed with the messages saying it ran out of entries for MPI_Types during the collective_read test. After tracing the code all the way to the collective read, all MPI Types have been freed properly. It aborted with the above message when it executed the line if (MPI_SUCCESS!= MPI_File_read_at_all(file->f, mpi_off, buf, size_i, buf_type, &mpi_stat )) Could not see any problem with this line. It could be a bug in the SGI version of MPI.
* [svn-r2645] Albert Cheng2000-10-101-17/+25
| | | | | | | | | | | | | | | | Purpose: [is this a bug fix? feature? ...] Description: [describe the bug, or describe the new feature, etc] Solution: [details about the changes, algorithm, etc...] [Please as detail as you can since your own explanation is better than others guessing it from the code.] Platforms tested: [machines you have tested the changed version. This is absolute important. Test it out on at least two or three different platforms such as Big-endian-32bit (SUN/IRIX), little-endian-32(LINUX) and 64-bit (IRIX64/UNICOS/DEC-ALPHA) would be good.]
* [svn-r2638] Snapshot version 1.3 release 31HDF Admin2000-10-071-1/+1
|
* [svn-r2633] Purpose:Quincey Koziol2000-10-042-20/+20
| | | | | | | | | | | | Bug Fix Description: Use H5FD_get_eoa instead of H5FD_get_eof to check for reading off the end of the allocated file space. Using H5FD_get_eof was causing the Stream VFD to fail. Solution: Switched from using H5FD_get_eof to H5FD_get_eoa Platforms tested: FreeBSD 4.1.1 (hawkwind)
* [svn-r2631] Thomas Radke2000-10-041-8/+9
| | | | | | | | | | | | Purpose: Bugfix Description: The Stream VFD was leaking memory on every opened file. Solution: In H5FD_stream_close(), finally free the file structure used to describe the closed file. Platforms tested: Linux, SGI
* [svn-r2611] Purpose:Quincey Koziol2000-09-286-254/+699
| | | | | | | | | | | | | Rearrange code Description: The data sieve buffering code for contiguously stored datasets was wedged in the H5F_arr_read/H5F_arr_write routines. Solution: Created a new H5Fcontig.c to hold I/O routines for contiguously stored datasets (like H5Fistore.c for chunked dataset I/O routines) and moved data sieving code into those routines. Platforms tested: Solaris 2.6 (i.e. baldric)
* [svn-r2610] Purpose:Quincey Koziol2000-09-281-28/+325
| | | | | | | | | | | | | | | | | | Code Optimization. Description: The optimized routines for copying regular hyperslabs in memory have been using the same matrix routines to copy their hyperslab pieces as the routines for irregularly shaped hyperslabs. This ends up imposing lots of extra overhead on the optimized routine, since it basically "knows" all the matrix information it needs. Solution: Keep track of the [small] amount of matrix information necessary to perform the regular hyperslab copies in the optimized routines themselves instead of using the matrix routines. This improves the performance for the benchmark I'm running from ~18 seconds to ~12 seconds and should apply to parallel I/O situations also. Platforms tested: Solaris 2.6 (i.e. baldric)
* [svn-r2606] Purpose:Quincey Koziol2000-09-271-32/+243
| | | | | | | | | | | | | | | Code Optimization Description: The matrix operations are currently the hot-spot in the library code for regular hyperslab operations. Solution: Unrolled loops for 3 of the more heavily used functions (H5V_stride_optimize2, H5V_hyper_stride & H5V_hyper_copy) for the common cases (i.e. up to 3-D datasets). This squeezes some more blood out of the stone (turnip? :-) and improves the h5hypers.c benchmark on baldric by another 20-25%. Platforms tested: Solaris 2.6 (i.e. baldric)
* [svn-r2601] Purpose:Quincey Koziol2000-09-272-5/+3
| | | | | | | | | | | | Bug Fix Description: The core and log VFL drivers were leaking small amounts of memory when they were used. Solution: Free the appropriate memory block (for the core driver) and don't allocate a block (for the log driver). Platforms tested: Solaris 2.6 (i.e. baldric)
* [svn-r2600] Purpose:Quincey Koziol2000-09-2615-27/+580
| | | | | | | | | | | Implemented new feature Description: Added data sieve buffering code to raw I/O data path. This is enabled for all the VFL drivers except the mpio & core drivers. Also added two new API functions to control the sieve buffer size: H5Pset_sieve_buf_size() and H5Pget_sieve_buf_size(). Platforms tested: Solaris 2.6 (i.e. baldric)
* [svn-r2597] Purpose:Quincey Koziol2000-09-261-2/+2
| | | | | | | | | | | Fix compiler warning Description: "HUGE_VAL" (a double value) was being put into a float type and generating a warning during compile time. Solution: Replaced "HUGE_VAL" with "FLT_MAX" Platforms tested: FreeBSD 4.1
* [svn-r2594] Purpose:Quincey Koziol2000-09-261-24/+18
| | | | | | | | | | | | Small Code Cleanup Description: Code to optimize adjacent (i.e. contiguous) hyperslab was ugly and used too many temporary variables. Solution: Computed the optimized hyperslabs slightly differently and got rid of unnecessary temporary variables. Platforms tested: FreeBSD 4.1
* [svn-r2588] Snapshot version 1.3 release 30HDF Admin2000-09-231-1/+1
|
* [svn-r2587] Purpose:Quincey Koziol2000-09-223-4/+69
| | | | | | | | | | | | | | | | | | | Bug fix (sorta) Description: When the stride and block size of a hyperslab selection are equal, the blocks that are selected are contiguous in the dataset. Prior to my hyperslab optimizations, this situation used to be detected and somewhat optimized to improve performance. I've added more code to optimize for this situation and integrated it with the new hyperslab optimization that weren't very efficient for that case as they should have been. Solution: Detect contiguous hyperslab selections (i.e. block size in a dimension is the same as the stride in that dimension) and store the optimized, contiguous version of that hyperslab. We also store the original, un- optimized version of the hyperslab to give back to the user if they query the hyperslab selection they just made. Platforms tested: FreeBSD 4.1
* [svn-r2586] Purpose:Bill Wendling2000-09-221-1/+1
| | | | | | | | | | | | | Bug Fix Description: The prototype for the H5Pregister function has a variable named `class'. This is a reserved word in C++ and causes the C++ compiler to freak. Solution: This variable's name was changed to cls_id in the .c file, so I changed it in the header file to cls_id to match. Platforms tested: Linux
* [svn-r2583] Purpose:Quincey Koziol2000-09-201-0/+13
| | | | | | | | | | | | | Bug Fix. Description: An assertion in the local heap code was mistakenly checking against too large of a value for the size of new local heap created. When used with larger-sized (>10KB) variable-length objects, it was failing the check. Solution: Corrected to check against the actual size of the heap allocated, without the heap header. Platforms tested: FreeBSD 4.1
* [svn-r2581] Purpose:Quincey Koziol2000-09-191-33/+23
| | | | | | Clean up compiler warnings. Platforms tested: FreeBSD 4.1
* [svn-r2580] Purpose:Quincey Koziol2000-09-191-333/+1952
| | | | | | | | | | | | Restore file Description: It appears that Robb's checkin earlier today erroneously overwrote this file with an older version... *grumble* Solution: Found another copy of newest version, verified that it is operating correctly and re-checked it in. Platforms tested: FreeBSD 4.1
* [svn-r2579] Purpose:Quincey Koziol2000-09-199-21/+22
| | | | | | Clean up small compiler warnings and add missing function prototypes. Platforms tested: FreeBSD 4.1
* [svn-r2574] Purpose:Bill Wendling2000-09-191-6/+6
| | | | | | | | | H5FDstream.h needs to be installed. Description: H5FDstream.h is included in the hdf5.h file and needs to be installed with the other public headers. Solution: Added it to the rest of the install headers.
* [svn-r2573] Purpose:Robb Matzke2000-09-193-2039/+944
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix Irix pmake bugs Description: Build fails on Irix when builddir != srcdir Solution: * acconfig.h * src/H5config.h.in [REGENERATED] Added definition for HAVE_STREAM * config/conclude.in * config/depend1.in * config/depend2.in * config/depend3.in * config/depend4.in The `Dependencies' file is located in the source tree. This fixes bugs for Irix pmake when compiling outside the source tree. Hopefully it still preserves Albert's changes which allow concurrent compilations to not stomp on each other's Dependencies files. * examples/Dependencies [REGENERATED] * src/Dependencies [REGENERATED] * test/Dependencies [REGENERATED] * tools/Dependencies [REGENERATED] Regenerated for testing purposes. Platforms: i686-pc-linux mips-sgi-irix6.5 sparc-sun-solaris2.6
* [svn-r2560] Purpose:Thomas Radke2000-09-151-0/+1
| | | | | | | Include the Stream VFD's header file H5FDstream.h. Description: All the VFD's header files are included by hdf5.h itself for convenience.
* [svn-r2559] Purpose:Thomas Radke2000-09-151-8/+8
| | | | | | | | Add the Stream VFD sources to the appropriate makefile variables. Description: Added H5FDstream.c to the LIB_SRC variable and H5FDstream.h to the PUB_HDR variable for building the Stream VFD.
* [svn-r2558] Purpose:Thomas Radke2000-09-151-0/+3
| | | | | | | | | | Define HAVE_STREAM. Description: If the Stream VFD was configured the configured script will expand this into '#define HAVE_STREAM 1' in H5config.h and '#define H5_STREAM 1' in H5pubconf.h.
* [svn-r2557] Purpose:Thomas Radke2000-09-151-0/+7
| | | | | | | Added registration of the Stream Virtual File Driver. Description: The Stream VFD is registered here if it was configured.
* [svn-r2555] Purpose:Thomas Radke2000-09-152-0/+1037
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Added source files for the Stream Virtual File Driver. Description: The Stream VFD allows users to stream complete HDF5 files via socket connections between different applications. Files which were created anew are flushed to any connected client on each H5Fflush() or H5Fclose() operation. Files which are opened as read-only will be read from a socket on a H5Fopen() call. The driver's H5FDset_fapl_stream() routine allows to pass in several parameters such as an external socket descriptor, some socket options, and flags for broadcasting a received file. If an external socket is provided the Stream VFD would use that for the socket calls. Otherwise it parses the filename argument in H5Fcreate()/H5Fopen() for a 'hostname::port' parameter. All files processed by the Stream VFD are kept in memory (same way as the core VFD does). Platforms: Tested so far under Linux, Irix 32/64bit, OSF1, Solaris, Cray Unicos, Hitachi SR8000, IBM AIX. Not tested under Windows yet.
* [svn-r2551] Purpose:Quincey Koziol2000-09-141-76/+180
| | | | | | | | | | | | | | | | Fix last couple of errors from introducing "regular" hyperslab feature into the library. Description: Code was blindly dereferencing data structures which aren't defined when operating on regular hyperslabs. Solution: Check for regular hyperslab defined and retrieve information from regular hyperslab info instead of mucking about in other hyperslab information. Platforms: Solaris 2.6
* [svn-r2548] Added #include <sys/resource.h> for the struct getrusage ↵Bill Wendling2000-09-141-24/+28
| | | | | | | declaration. Przemek Klosowski, Ph.D. <przemek@nist.gov> reported this problem on Linux RH 6.1 systems.
* [svn-r2546] Further patches to accomodate regular hyperslabs. More of the ↵Quincey Koziol2000-09-132-50/+201
| | | | | | tests are passing, but not all of them yet...
* [svn-r2544] Optimized regular hyperslab I/O routines and data structures. ↵Quincey Koziol2000-09-132-312/+1886
| | | | | | | | | | | | | On my benchmarks, they are about 4-5 times faster than before. We no longer generate "general" hyperslab data structures for regular hyperslabs, the general data structures are only generated when needed for irregular hyperslabs. Still fixing a couple of nook-and-cranny functions to understand the new information for the regular hyperslabs, so the tests aren't completely passing, but I wanted to get this checked in for Elena's benchmarks. I should have more/all tests passing later today.
* [svn-r2519] Snapshot version 1.3 release 29Albert Cheng2000-09-062-1/+3
|
* [svn-r2518] Backed out patch from user after further testing...Quincey Koziol2000-09-061-3/+4
|
* [svn-r2517] Removed the incorrect #ifdef's. Since this file is generated fromBill Wendling2000-09-061-2/+0
| | | | autoheader, it was useless to add them in here...
* [svn-r2515] Added macros around the inline #define since this is a keyword ↵Bill Wendling2000-09-061-0/+2
| | | | | | in C++ and, when adding the header to a C++ program, breaks it.
* [svn-r2511] Fix point selections so they work properly with both staticly ↵Quincey Koziol2000-09-061-4/+3
| | | | | | and dynamicly allocated memory.
* [svn-r2510] Took memory allocation out of loop and used some temporary ↵Quincey Koziol2000-09-061-8/+21
| | | | | | | | variable instead of multi-dereferenced pointer chains. This buys us another ~20% improvement in the hyperslab I/O speed. (From ~30 seconds to ~25 seconds on the h5hypers benchmark)
* [svn-r2509] Change code so that heap_size wasn't zero.Quincey Koziol2000-09-062-5/+3
|
* [svn-r2508] Purpose:Albert Cheng2000-09-064-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug fixes Description: All tests were core=dumping in IRIX64. The bug is in Generic property list creation in which malloc asked for 2*64-1 bytes due to coding bug. The object creation failed but the return code was not checked. Program eventually crashed. Solution: H5F.c: Check the return code from new file object creation and flag error accordingly. H5FL.c: H5FL_arr_free is a replacement for H5MM_xfree which accepts null value as a legal argument value. H5FL_arr_free assert on it. Since other parts of the code have been passing null value to H5MM_xfree, H5FL_arr_free must accept it too until all the calling routines are changed to not pass Null. H5P.c: some routine passes in 0 as the hashsize value which is uintn. The expression (hashsize-1) underflows to the largest unsigned int for some machines. Thus the calloc failed. Cast hashsize to unsigned int first (this assumes hashsize stays within the signed int data range. H5Smpio.c: Added the extra parameter because the H5FD_write has been redefined. Platforms tested: IRIX64 -64 and -n32
* [svn-r2505] Some of the RETURN macros were returning NULL instead of ↵Bill Wendling2000-09-051-7/+7
| | | | FAIL...Fixed.
* [svn-r2504] Revised routine to add hyperslabs to the selection, sorting the ↵Quincey Koziol2000-09-041-78/+36
| | | | | | | | arrays of hyperslab boundaries after adding them all, instead of maintaining the sorted order during each addition. This boosts performance for sub-sampled (i.e. strided) hyperslabs by about a factor of 10! :-)
* [svn-r2502] Added limits to the free lists, so they will automatically ↵Quincey Koziol2000-08-311-6/+6
| | | | | | garbage collect and not eat all the memory in the machine (by default :-)
* [svn-r2501] Added several free lists for commonly used & abused data ↵Quincey Koziol2000-08-311-120/+525
| | | | | | | | | | | | | structures. Also added code to allow metadata to be allocated out of a more contiguous block ("metadata aggregation") and also code for "catching" small metadata write calls and building a buffer of the small pieces of metadata for later writing as one, larger, block ("metadata accumulation"). These features are enabled on a per VFL driver basis with the new VFL 'query' call and both currently enabled for the sec2, family and stdio drivers. The mpio VFL driver enables only the "metadata aggregation" code, not the "metadata accumulation" code. All the other drivers have these features turned off.
* [svn-r2500] Added fields to file data structures to allow metadata ↵Quincey Koziol2000-08-311-2/+34
| | | | | | aggregation and accumulation to be enabled and tracked. Also updated some prototypes.
* [svn-r2499] Changed H5FDwrite prototype to include new 'type of data' parameterQuincey Koziol2000-08-311-1/+1
|
* [svn-r2498] Added new VFL 'query' code and added new 'type of data' ↵Quincey Koziol2000-08-319-23/+172
| | | | | | parameter to write call.
* [svn-r2497] Removing metadata aggregation & accumulation prototyping code ↵Quincey Koziol2000-08-311-64/+50
| | | | | | (it's in H5FD.c now) and updated driver to add the new VFL 'query' call.
* [svn-r2496] Changed H5F_block_write prototype & added metadata allocation ↵Quincey Koziol2000-08-311-2/+3
| | | | | | field to file access property lists.
* [svn-r2495] More type of data parameter additions for H5F_block_write.Quincey Koziol2000-08-313-3/+3
|
* [svn-r2494] Changed the default size of object headers from 16 bytes to 256 ↵Quincey Koziol2000-08-311-1/+1
| | | | bytes.