summaryrefslogtreecommitdiffstats
path: root/release_docs/RELEASE.txt
blob: 7395958cd43f2b7cb4491382d1f2df4369890964 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
HDF5 version 1.4.4-pre6 currently under development
==============================================================================


INTRODUCTION

This document describes the differences between HDF5-1.4.3 and
HDF5-1.4.3_post0, and contains information on the platforms tested and
known problems in HDF5-1.4.3. For more details check the HISTORY.txt
file in the HDF5 source.

The HDF5 documentation can be found on the NCSA ftp server
(ftp.ncsa.uiuc.edu) in the directory:

     /HDF/HDF5/docs/

For more information look at the HDF5 home page at:
   
    http://hdf.ncsa.uiuc.edu/HDF5/

If you have any questions or comments, please send them to:

    hdfhelp@ncsa.uiuc.edu


CONTENTS

- New Features
- Bug Fixes since HDF5-1.4.3
- Performance Improvements
- Documentation
- Platforms Tested
- Supported Configuration Features
- Known Problems


New Features
============
  o Configuration
  ================
    * The H4 to H5 tools were removed from the main source and placed in a
      separate package. You can get these tools from the HDF ftp site
	  (ftp://hdf.ncsa.uiuc.edu/). The "--with-hdf4" command-line option during
      configure is no longer valid.  BW - 2002/06/25


  o Library
  =========
    o General
    --------- 
      * Fill-value's forward-compatibility with 1.5 was added.  SLU -
        2002/04/11
      * A new query function H5Tget_member_index has been added for compound
        and enumeration data types, to retrieve member's index by name.
        SLU - 2002/04/05
      * Added serial multi-gigabyte file size test.  "test/big -h" shows
        the help page.  AKC - 2002/03/29
 
    o APIs
    ------
      * F90 subroutines h5dwrite_f, h5dread_f, h5awrite_f and h5aread_f were
        overloaded with "dims" argument to be assumed size array of type
        INTEGER(HSIZE_T). We recommend to use the subroutines with the new type.
        Module subroutines that accept "dims" as INTEGER array of size 7 will
        be deprecated in 1.6 release.  EIP - 2002/05/06
 
    o Performance
    -------------
      * Added internal "small data" aggregation, which can reduce the number of
        actual I/O calls made, improving performance.  QAK - 2002/06/05
      * Improved internal metadata aggregation, which can reduce the number of
        actual I/O calls made, improving performance.  Additionally, this can
        reduce the size of files produced.  QAK - 2002/06/04
      * Improved internal metadata caching, which can reduce the number of
        actual I/O calls made by a substantial amount, improving
        performance.  QAK - 2002/06/03


  o Parallel Library
  ==================
    * Fixed bug in parallel I/O routines where a collective I/O which used
      MPI derived types, followed by an independent I/O would cause the library
      to hang.  QAK 2002/06/24
    * Added environment variable flag to control whether creating MPI derived
      typed is preferred or not.  This can affect performance, depending on
      which way the MPI-I/O library is optimized for.  The default is set to
      prefer MPI derived types for collective raw data transfers, setting the
      HDF5_MPI_PREFER_DERIVED_TYPES environment variable to "0" (i.e.:
      "setenv HDF5_MPI_PREFER_DERIVED_TYPES 0") changes the preference to avoid
      using then whenever possible.  QAK - 2002/06/19
    * Changed MPI I/O routines to avoid creating MPI derived types (and thus
      needing to set the file view) for contiguous selections within datasets,
      which should result in some performance improvement for those types of
      selections.  QAK - 2002/06/18
    * Enable MPI type support for collective I/O to be enabled by default.
      This can be disabled by setting the HDF5_MPI_OPT_TYPES environment
      variable to the value "0".  QAK - 2002/06/14
    * Allow chunks in chunked datasets to be cached when parallel file is
      opened for read-only access (bug #709).  QAK - 2002/06/10
    * Changed method for allocating chunked dataset blocks to only allocate
      blocks that don't already exist, instead of attempting to create all the
      blocks all the time.  This improves performance for chunked
      datasets.  QAK - 2002/05/17
    * Allowed the call to MPI_File_sync to be avoided when the file is going to
      immediately be closed, improving performance.  QAK - 2002/05/13
    * Allow the metadata writes to be shared among all processes, easing the
      burden on process 0.  QAK - 2002/05/10


  o Tools
  =======


  o Support for new platforms and languages
  =========================================
    * Parallel Fortran Library works now on HP-UX B.11.00 Sys V
      EIP - 2002/05/06
    * Intel C++ and F90 compilers Version 6.0 are supported on Linux 2.4
    * Intel C++ compilers Version 6.0 are supported on windows 2000

  
  o Misc.
  =========================================
   * zlib is moved out of windows source release. Users should go to
     HDF homepage(URL: http://???) to download the corresponding zlib library.
   * Windows binary release is built with the old version of zlib library.
     We expect users to use zlib 1.1.4 to build with source release.  
   * In windows-specified install document, we specify how to test backward
     compatibility. However, in this release, we are not testing the backward
     compatibility of HDF5.


Bug Fixes since HDF5-1.4.3 Release
==================================
    * Fixed bug in chunking routines where they were using internal allocation
        free routines, instead of malloc/free, preventing user filters from
        working correctly.  Chunks are now allocated/freed with malloc/free and
        so should the chunks in user filters.  QAK 2002/06/18
    * Fixed bug where regular hyperslab selection could get incorrectly
        transferred when the number of elements in a row did not fit evenly
        into the buffer provided.  QAK 2002/06/12
    * Fixed bug (#499) which allowed an "empty" compound or enumerated datatype
        (one with no members) to be used to create a dataset or committed to a
        file.  QAK - 2002/06/11
    * Fixed bug (#777) which allowed a compound datatype to be inserted into
        itself.  QAK - 2002/06/10
    * Fixed bug (#789) where creating 1-D dataset region reference caused the
        library to go into infinite loop.  QAK - 2002/06/10
    * Fixed bug (#699, fix provided by a user) where a scalar dataspace was
        written to the file and then subsequently queried with the
        H5Sget_simple_extent_type function, type was reported H5S_SIMPLE instead
        of H5S_SCALAR. EIP - 2002/06/04
    * Clear symbol table node "dirty" flag when flushing symbol tables to
        disk, to reduce I/O calls made & improve performance.  QAK - 2002/06/03
    * Fixed bug where an object's header could get corrupted in certain
        obscure situations when many objects were created in the
        file.  QAK - 2002/05/31
        was not being kept the same as the original file.  QAK - 2002/05/14
    * Fixed bug where read/write intent in file IDs created with H5Freopen
        was not being kept the same as the original file.  QAK - 2002/05/14
    * Fixed bug where selection offsets were not being used when iterating
        through point and hyperslab selections with
        H5Diterate().  QAK - 2002/04/29
    * Fixed bug where the data for several level deep nested compound &
        variable-length datatypes used for datasets were getting corrupted when
        written to the file.  QAK - 2002/04/17
    * Fixed bug where selection offset was being ignored for certain hyperslab
        selections when optimized I/O was being performed.  QAK - 2002/04/02
    * Fixed limitation in h5dumper with object names which reached over 1024
        characters in length. We can now handle arbitrarily larger sizes for
        object names. BW - 2002/03/29
    * Fixed bug where variable-length string type doesn't behave as
        string.  SLU - 2002/03/28
    * Fixed bug in H5Gget_objinfo() which was not setting the 'fileno'
        of the H5G_stat_t struct.  QAK - 2002/03/27
    * Fixed data corruption bug in hyperslab routines when contiguous
        hyperslab that spans entire dimension and is larger than type
        conversion buffer is attempted to be read.  QAK - 2002/03/26


Performance Improvements
========================
    This release of the HDF5 library has been extensively tuned to improve
performance, especially to improve parallel I/O performance.
    Most of the specific information for particular performance improvements
is mentioned in the "New Features" and "Bug Fixes Since HDF5-1.4.3" sections
of this document, but in general, the library should make fewer and larger
I/O requests when accessing a file.  Additionally, improvements to the parallel
I/O portions of the library should have reduced the communications and barriers
used in various internal algorithms, improving the performance of the library.
    However, with the extensive changes to some portions of the library that
were required for these improvements, some errors or unanticipated results may
have been introduced also.  Please report any problems encountered to our
support team at hdfhelp@ncsa.uiuc.edu.
    Hopefully these improvements will benefit all HDF5 applications, but if
there are particular I/O patterns that appear to be slower than necessary,
please send e-mail to hdfhelp@ncsa.uiuc.edu with a sample program showing the
problem behavior and we will look into the issue to see if it is possible to
address it.


Documentation
=============


Platforms Tested
================

    AIX 4.3.3.0 (IBM SP powerpc)  xlc 5.0.2.0
                                  mpcc_r 5.0.2.0
                                  xlf 07.01.0000.0002
                                  mpxlf 07.01.0000.0002
    AIX 4.3 (IBM SP RS6000)       C for AIX Compiler, Version 5.0.2.0
                                  xlf 7.1.0.2
                                  poe 3.1.0.12 (includes mpi)
    AIX 5.1                       xlc 5.0.2.0 
                                  xlf 07.01.0000.0002
                                  mpcc_r 5.0.2.0; mpxlf_r 07.01.0000.0002
    Cray T3E sn6711 2.0.5.57      Cray Standard C Version 6.5.0.3
                                  Cray Fortran Version 3.5.0.4
    Cray SV1 10.0.1.1             Cray Standard C Version 6.5.0.3 
                                  Cray Fortran Version 3.5.0.4
    FreeBSD 4.6                   gcc 2.95.4
                                  g++ 2.95.4
    HP-UX B.10.20                 HP C  HP92453-01 A.10.32.30
                                  HP F90 v2.3
    HP-UX B.11.00                 HP C  HP92453-01 A.11.01.20 
                                  HP F90 v2.4
    HP-UX B.11.00 SysV            HP C  HP92453-01 A.11.01.20 
                                  HP F90 v2.4
                                  HP MPI [not a product] (03/24/2000) B6060BA
    IRIX 6.5                      MIPSpro cc 7.30
    IRIX64 6.5 (64 & n32)         MIPSpro cc 7.3.1.3m
                                  F90 MIPSpro 7.3.1.3m (64 only)
    Linux 2.4.9-31smp             gcc 2.95.3
                                  g++ 2.95.3
                                  Intel(R) C++ Version 6.0
                                  Intel(R) Fortran Compiler Version 6.0
                                  MPICH 1.2.2
    Linux 2.2.18smp               gcc 2.95.2
                                  gcc 2.95.2 with mpich 1.2.1
                                  g++ 2.95.2
                                  pgf90 3.2-4
    OSF1 V5.1                     Compaq C V6.4-014
                                  Compaq Fortran V5.5-1877-48BBF
                                  gcc version 3.0 for C++
    SunOS 5.7                     WorkShop Compilers 5.0 98/12/15 C 5.0
     (Solaris 2.7)                Workshop Compilers 5.0 98/12/15 C++ 5.0 
                                  Workshop Compilers 5.0 98/10/25 
                                  FORTRAN 90 2.0 Patch 107356-04 
    SunOS 5.8/32                  Sun WorkShop 6 update 1 C 5.2 2000/09/11
     (Solaris 2.8)                Sun WorkShop 6 update 1 Fortran 95 6.1 
                                          Patch 109503-07 2001/08/11
                                  Sun WorkShop 6 update 1 C++ 5.2 Patch
                                        109508-04 2001/07/11
    SunOS 5.8/64                  Sun WorkShop 6 update 1 C 5.2 2000/09/11
     (Solaris 2.8)                Sun WorkShop 6 update 1 Fortran 95 6.1 
                                          Patch 109503-07 2001/08/11
                                  Sun WorkShop 6 update 1 C++ 5.2 Patch
                                        109508-04 2001/07/11
    TFLOPS r1.0.4 v4.2.2 i386     pgcc Rel 3.1-4i with mpich-1.2.3 with
                                          local modifications
    IA-32 Linux 2.4.9             cc Intel 5.0.1
                                  gcc 2.96
                                  Intel(R) C++ Version 6.0
                                  Intel(R) Fortran Compiler Version 6.0
                                  
    IA-64 Linux 2.4.16 ia64       gcc version 2.96 20000731
                                  Intel(R) C++ Version 6.0
                                  Intel(R) Fortran Compiler Version 6.0
    Windows 2000 (NT5.0)          MSVC++ 6.0
                                  DEC Visual Fortran 6.0
    Windows NT4.0                 MSVC++ 6.0
                                  DEC Visual Fortran 6.0
    Windows NT4.0                 Code Warrior 6.0


Supported Configuration Features Summary
========================================

    In the tables below
          y  = tested and supported
          n  = not supported or not tested in this release
          x  = not working in this release
         ( ) = footnote appears below second table


    Platform       C  C         F90  F90       C++   Shared     zlib  Tools
                      parallel       parallel        libraries
                                                     (5)
    Solaris2.7     y  y (1)     y    n         y     y          y     y
    Solaris2.8 64  y  n         y    n         y     y          y     y
    Solaris2.8 32  y  y (1)     y    n         y     y          y     y
    IA-64          y  n         y    n         n     n          y     y 
    IA-32	   y  n		y    n	       n     n          y     y 
    IRIX6.5        y  y (1)     n    n         n     y          y     y
    IRIX64_6.5 64  y  y (2)     y    y         n     y          y     y
    IRIX64_6.5 32  y  y (2)     n    n         n     y          y     y
    HPUX10.20      y  n         y    n         n     y          y     y
    HPUX11.00      y  y         y    n         n     y          y     y
    HPUX11 SysV    y  y         y    y         n     y          y     y
    DECOSF         y  n         y    n         y     y          y     y
    T3E            y  y         y    y         n     n          y     y
    SV1            y  n         y    n         n     n          y     y
    TFLOPS         n  y (1)     n    n         n     n          y     y (4)
    AIX-4.3 SP2    y  y         y    y         n     n          y     n
    AIX-4.3 SP3    y  y         y    y         y     n          y     n
    Win2000        y  n         y    n         y (6) y          y     y
    Win98          y  n         y    n         y (6) y          y     y
    WinNT          y  n         y    n         y (6) y          y     y
    WinNT CW       y  n         n    n         n     n          y     y
    FreeBSD        y  n         n    n         y     y          y     y
    Linux 2.2      y  y (1)     y    n         y     y          y     y
    Linux 2.4      y  y (1)     n    n         y     y          y     y


    Platform       1.2            static-   Thread-  SRB  GASS	STREAM-
                   compatibility  exec      safe                VFD
    Solaris2.7     n              x         y        n    n     y
    Solaris2.8 64  n              y         n        n    n     y
    Solaris2.8 32  n              x         y        n    n     y
    IA-64          n              n         n        n    n     y   
    IA-32	   n		  n	    n	     n    n     y
    IRIX6.5        n              x         y        n    n     y
    IRIX64_6.5 64  n              x         y        n    y     y
    IRIX64_6.5 32  n              x         y        n    y     y
    HPUX10.20      n              y         n        n    n     y
    HPUX11.00      n              x         n        n    n     y
    HPUX11 SysV    n              x         n        n    n     y
    DECOSF         n              y         n        n    n     y
    T3E            n              y         n        n    n     y
    SV1            n              y         n        n    n     y
    TFLOPS         n              y         n        n    n     n
    AIX-4.3 SP2    n              y (3)     n        n    n     y
    AIX-4.3 SP3    n              y         n        n    n     y
    Win2000        n              y         n        n    n     n
    WinNT          n              y         n        n    n     n
    WinNT CW       n              n         n        n    n     n
    FreeBSD        n              y         y        n    n     y
    Linux 2.2      n              y         y        n    n     y
    Linux 2.4      n              y         y        n    n     y


    Footnotes:  (1) Using mpich.
                (2) Using mpt and mpich.
                (3) When configured with static-exec enabled, tests fail 
                    in serial mode.
                (4) No HDF4-related tools.
                (5) Shared libraries are provided only for the C library.
		(6) Exception of (5): DLL is available for C++ API on Windows


Known Problems
==============

    * Datasets or attributes which have a variable-length string datatype are
      not printing correctly with h5dump and h5ls.

    * When a dataset with the variable-legth datatype is overwritten, 
      the library can develop memory leaks that cause the file to become 
      unnecessarily large.  This is planned to be fixed in the next release.

    * On the SV1, the h5ls test fails due to a difference between the 
      SV1 printf precision and the printf precision on other platforms.


    * The h5dump tests may fail to match the expected output in some
      platforms (e.g. SP2 parallel, Windows) where the error messages
      directed to "stderr" do not appear in the "right order" with output
      from stdout.  This is not an error.

    * The --enable-static-exec configure flag fails to compile for HP-UX
      11.00 platforms.

    * The executables are always dynamic on IRIX64 6.5(64 and n32) and 
      IRIX 6.5 even if they are configured with --enable-static-exec.

    * IRIX 6.5 fails to compile if configured with --enable-static-exec.
    
    * The HDF5_MPI_OPT_TYPES optimization code in the parallel HDF5 will cause
      a hang in some cases when chunked storage is used.  This is now set to
      be off by default.  One may turn it on by setting environment variable
      HDF5_MPI_OPT_TYPES to a non-zero value such as 1.

    * On IA32 and IA64 systems, if you use a compiler other than GCC (such as
      Intel's ecc or icc compilers), you will need to modify the generated
      "libtool" program after configuration is finished. On or around line 104
      of the libtool file, there are lines which look like:

          # How to pass a linker flag through the compiler.
          wl=""

      change these lines to this:

          # How to pass a linker flag through the compiler.
          wl="-Wl,"

     * To build Fortran Library using Intel compilers one has to 
          x modify source code in the fortran/src directory to remove !DEC and !MS
            compiler's directives 
          x build fails in fortran/test and then in frotran/examples directory;
            to proceed edit work.pcl files in those directories to contain 
            two lines

                    work.pc
                    ../src/work.pc 

     * To build Fortran Library on IA64 use
                   setenv CC "ecc -DIA64"
                   setenv F9X "efc -cl,work.pcl"
            before running configure and see steps described above.