summaryrefslogtreecommitdiffstats
path: root/release_docs/RELEASE.txt
blob: fb0bdaaaeba045bd72346a343c51afda8cc9b05a (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
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
HDF5 version 1.10.0-pre1 currently under development
================================================================================


INTRODUCTION

This document describes the differences between HDF5-1.8.* and
HDF5 1.10.0 release, and contains information on the platforms
tested and known problems in HDF5-1.10.0.


Links to HDF5 1.10.0 source code can be found on The HDF Group's
development FTP server at the following location:
     http://www.hdfgroup.org/HDF5/release/obtain5110.html
User documentation be accessed directly at this location:
     http://www.hdfgroup.org/HDF5/docNewFeatures/
For more information, see the HDF5 home page:

    http://www.hdfgroup.org/HDF5/

If you have any questions or comments, please send them to the HDF Help Desk:

    help@hdfgroup.org


CONTENTS

- New Features
- Issues Addressed in this Release
- Tested Configuration Features Summary
- More Tested Platforms
- Known Problems


New Features
============
This release supports the following features:

    Configuration
    -------------

    - Autotools configuration has been extensively reworked

    The autotools configuration options have been updated to allow more fine-
    grained control of the build options and to correct some bugs. See
    configure --help for comprehensive information on each option.

    Specific changes:

    * --enable-debug and --enable-production are no longer accepted. Use
      --enable-build-mode=(debug | production) instead. These set appropriate
      defaults for the other configuration options (symbols, optimization,
      etc.). These defaults can be overridden by the user.

    * Extra debug output messages are no longer enabled with
      --enable-debug=<package list>. Use --enable-internal-debug=<pkg list>
      instead.

    * A new --enable-symbols option allows symbols to be generated
      independently of the build mode. --disable-symbols can be used to strip
      symbols from the binary.

    * A new --enable-asserts option sets/unsets NDEBUG. This is independent of
      the build mode. This also enables some extra low-overhead debug checks
      in the library.

    * A new --enable-profiling option sets profiling flags. This is
      independent of the build mode.

    * A new --enable-optimization option sets the optimization level. This is
      independent of the build mode.

    * Many of these options can take a flags string that will be used to
      build the library. This can be useful for specifying custom optimization
      flags (e.g., -Os, -Ofast), etc.

    * gnu C++ and Fortran use configure sub-files that update the build flags
      and turn on warnings. The increase in warnings when building these
      wrapper libraries is due to these flag changes, not a decrease in code
      quality.

    * The option to clear file buffers has been removed. Any buffer that will
      eventually be written to disk will now always be memset to zero. This
      prevents the previous contents of the buffer from being written to the
      disk if the buffer contents are not completely overwritten, which has
      security implications.

    - LFS changes

    The way the autotools handle large file support (LFS) has been overhauled
    in this release.

    * We assume ftello and fseeko exist

    * We no longer explicitly use the *64 I/O functions. Instead we rely on a
      mapping provided by _FILE_OFFSET_BITS or its equivalent.

    * _LARGEFILE(64)_SOURCE is no longer exported via AM_CPPFLAGS.

    Parallel Library:
    -----------------
    - Collective Metadata I/O
    
    Calls for HDF5 metadata can result in many small reads and writes. On metadata 
    reads, collective metadata I/O can improve performance by allowing the library
    to perform optimizations when reading the metadata, by having one rank read the 
    data and broadcasting it to all other ranks.

    Collective metadata I/O improves metadata write performance through the 
    construction of an MPI derived datatype that is then written collectively 
    in a single call. For more information see
    https://www.hdfgroup.org/HDF5/docNewFeatures/NewFeaturesCollectiveMetadataIoDocs.html

    Library:
    --------
    - Concurrent access to HDF5 file - Single Writer/ Multple Reader (SWMR)

    The Single Writer/ Multiple Reader or SWMR feature enables users to read  
    data concurrently while writing it. Communications between the processes 
    and file locking are not required. The processes can run on the same or 
    on different platforms, as long as they share a common file system that 
    is POSIX compliant. 
    For more information, see the Single-Writer/Multiple-Reader (SWMR) 
    Documentation at  
    https://www.hdfgroup.org/HDF5/docNewFeatures/NewFeaturesSwmrDocs.html

    - Virtual Dataset (VDS)

    The VDS feature enables data to be accessed across HDF5 files using standard 
    HDF5 objects such as groups and datasets without rewriting or rearranging 
    the data. An HDF5 virtual dataset (VDS) is an HDF5 dataset that is composed of 
    source HDF5 datasets in a predefined mapping. VDS can be used with the SWMR 
    feature. For documentation check 
    https://www.hdfgroup.org/HDF5/docNewFeatures/NewFeaturesVirtualDatasetDocs.html

    - Persistent Free File Space Tracking

    Usage patterns when working with an HDF5 file sometimes result in wasted space 
    within the file. This can also impair access times when working with the 
    resulting files.  The new file space management feature provides strategies 
    for managing space in a file to improve performance in both of these areas. 
    For more information see 
    http://www.hdfgroup.org/HDF5/docNewFeatures/NewFeaturesFileSpaceMgmtDocs.html 


    Tools:
    ------
    - h5watch 
    
    Allows users to output new records appended to a dataset iunder SWMR access 
    as it grows. The functionality is similar to the Unix user command "tail" 
    with the follow option, which outputs appended data as the file grows. 
    For more information see
    http://www.hdfgroup.org/HDF5/docNewFeatures/NewFeaturesSwmrDocs.html#Tools    

    - h5format_convert
    
    The tool allows users to convert the indexing type of a chunked dataset made 
    with a 1.10.x version of the HDF5 library when the latest file format is used 
    to the 1.8.x version 1 B-tree indexing type. For example, datasets created 
    using SWMR access, can be converted to be accessed by the HDF5 1.18 library 
    and tools. The tools doesn't rewrite raw data, but HDF5 metadata only. 

    High-Level APIs:
    ------
    - H5DOappend

    The function appends data to a dataset along a specified dimension.

    Java wrapper library
    --------------------

    Java HDF5 JNI library has been integrated into the HDF5 repo, the configure 
    option is "--enable-java" and the CMake option is HDF5_BUILD_JAVA:BOOL=ON.
    The package hierarchy has changed from the HDF5 1.8 JNI, which was 
    "ncsa.hdf.hdflib.hdf5", to HDF5 1.10, "hdf.hdflib.hdf5".

    Also there are a number of new APIs added, including those for VDS and SWMR.

    Other important changes:
    -----------------------

    hid_t type was changed from 32-bit to a 64-bit value.
    
    Documentation
    -------------
    See http://www.hdfgroup.org/HDF5/docNewFeatures/NewFeaturesSwmrDocs.html#Tools


Issues Addressed in this Release since alpha1
=============================================

     - Wrong settings returned for a dataset access property list.  
 
       One couldn't get the correct access property setting with the following functions calls
       H5Pget_virtual_printf_gap
       H5Pget_virtual_view
       H5Pget_efile_prefix

       when a dataset access property list was obtained from H5Dget_access_plist(). Fixed. 
       (DER and NAF 2016-03-14 HDFFV-9716)

     - h5dump segfaulted when provided with invalid arguments or when optional aruments are last option
       on command line. 
       
       When h5dump was provided with the name of a non existing file or when optional arguments were the
       last option on the command line, h5dump failed. Fixed.
       (ADB 2016-02-28 HDFFV-9639, HDFFV-9684)

     - HDF5 library segfaults on a corrupted file.

       The HDF5 library didn't propagate an error when encounting a corruped metadata in an HDF5 file.
       The issue was fixed for a specific filei porvided by a user. If you still see the problem, 
       please contact help@hdfgroup.org 
       (MC 2016-02-18 HDFFV-9670)

     - When the latest file format is used, and when a chunked dataset is created with a datatype with the size 
       bigger than a chunk size, the data cannot be read back. 
       
       The issue was reported for the chunked datasets with a string datatype, and was confirmed for other i
       datatypes with the sizes bigger than the chunk size in bytes. Fixed.
       (JM 2016-02-13 HDFFV-9672)
       
     - Control over the location of the external files

       New API H5Pset_efile_prefix was added to specify locations of the external files.
       This enhancements was contributed by Steffen Kieß.
       (DER 2016-02-04 HDFFV-8740)
  


     
Issues Addressed in this Release since alpha0 
=============================================
    - h5format_convert tool didn't downgrade version of the superblock. Fixed. See
      Known Problems section.  
      (EIP 2016-01-11)

    - It was reported that alpha0 crashed when used with multiple threads. 
      The issue exists in the HDF5 library versions 1.8 and 1.9. 
      The problem is related to a shared file pointer used in the misc. data 
      structures. The thread-safe library exposed paths in the library where 
      file pointer becomes invalid. Alpha1 release contains the fixes for the specific 
      use case as decribed in HDFFV-9643.
      We will keep working on identifying other paths in the library with similar problem
      and fixing the issue.  
      (EIP 2016-01-15)

Supported Platforms
===================
The following platforms are supported and have been tested for this release.
They are built with the configure process unless specified otherwise.

    AIX 6.1                       xlc/xlc_r 10.1.0.5
    (NASA G-ADA)                  xlC/xlC_r 10.1.0.5
                                  xlf90/xlf90_r 12.1.0.6

    Linux 2.6.32-573.18.1.el6    GNU C (gcc), Fortran (gfortran), C++ (g++)
    #1 SMP x86_64 GNU/Linux       compilers:
    (mayll/platypus)                 Version 4.4.7 20120313 (Red Hat 4.4.7-16)
                                     Version 4.9.3, Version 5.2.0
                                  PGI C, Fortran, C++ for 64-bit target on
                                  x86-64;
                                      Version 15.7-0
                                  Intel(R) C (icc), C++ (icpc), Fortran (icc)
                                  compilers:
                                     Version 15.0.3.187 Build 20150407
                                  MPICH 3.1.4 compiled with GCC 4.9.3

    Linux 2.6.32-504.8.1.el6.ppc64 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
    #1 SMP ppc64 GNU/Linux        g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
    (ostrich)                     GNU Fortran (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
                                  IBM XL C/C++ V13.1
                                  IBM XL Fortran V15.1

    Linux 3.10.0-327.10.1.el7   GNU C (gcc), Fortran (gfortran), C++ (g++)
    #1 SMP x86_64 GNU/Linux       compilers:
    (kituo/moohan)                  Version 4.8.5 20150623 (Red Hat 4.8.5-4)
                                    Version 4.9.3, Version 5.2.0
                                  Intel(R) C (icc), C++ (icpc), Fortran (icc)
                                  compilers:
                                     Version 15.0.3.187 Build 20150407
                                  MPICH 3.1.4 compiled with GCC 4.9.3

    SunOS 5.11 32- and 64-bit     Sun C 5.12 SunOS_sparc
    (emu)                         Sun Fortran 95 8.6 SunOS_sparc
                                  Sun C++ 5.12 SunOS_sparc

    Windows 7                     Visual Studio 2012 w/ Intel Fortran 15 (cmake)
                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
                                  Visual Studio 2015 w/ Intel Fortran 16 (cmake)
                                  Cygwin(CYGWIN_NT-6.1 2.2.1(0.289/5/3) gcc(4.9.3) compiler and gfortran)
                                  (cmake and autotools)

    Windows 7 x64                 Visual Studio 2012 w/ Intel Fortran 15 (cmake)
                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)
                                  Visual Studio 2015 w/ Intel Fortran 16 (cmake)

    Windows 8.1                   Visual Studio 2012 w/ Intel Fortran 15 (cmake)
                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)

    Windows 8.1 x64               Visual Studio 2012 w/ Intel Fortran 15 (cmake)
                                  Visual Studio 2013 w/ Intel Fortran 15 (cmake)

    Mac OS X Mt. Lion 10.8.5      Apple clang/clang++ version 5.1 from Xcode 5.1
    64-bit    			  gfortran GNU Fortran (GCC) 4.8.2
    (swallow/kite)                Intel icc/icpc/ifort version 15.0.3

    Mac OS X Mavericks 10.9.5     Apple clang/clang++ version 6.0 from Xcode 6.2.0
    64-bit    			  gfortran GNU Fortran (GCC) 4.9.2
    (wren/quail)                  Intel icc/icpc/ifort version 15.0.3

    Mac OS X Yosemite 10.10.5     Apple clang/clang++ version 6.0 from Xcode 7.0.0
    64-bit    			  gfortran GNU Fortran (GCC) 4.9.2
    (osx1010dev/osx1010test)      Intel icc/icpc/ifort version 15.0.3

    Mac OS X El Capitan 10.11.3     Apple clang/clang++ version 7.0.2 from Xcode 7.0.2
    64-bit    			  gfortran GNU Fortran (GCC) 5.2.0
    (osx1010dev/osx1010test)      Intel icc/icpc/ifort version 15.0.3


Tested Configuration Features Summary
=====================================

    In the tables below
          y   = tested
          n   = not tested in this release
          C   = Cluster
          W   = Workstation
          x   = not working in this release
          dna = does not apply
          ( ) = footnote appears below second table
          <blank> = testing incomplete on this feature or platform

Platform                              C         F90/   F90      C++  zlib  SZIP
                                      parallel  F2003  parallel
SunOS 5.11 32-bit                       n        y/y    n        y    y     y
SunOS 5.11 64-bit                       n        y/y    n        y    y     y
Windows 7                               y        y/y    n        y    y     y
Windows 7 x64                           y        y/y    n        y    y     y
Windows 7 Cygwin                        n        y/y    n        y    y     n
Windows 8.1                             n        y/y    n        y    y     y
Windows 8.1 x64                         n        y/y    n        y    y     y
Mac OS X Mountain Lion 10.8.5 64-bit    n        y/y    n        y    y     y
Mac OS X Mavericks 10.9.5 64-bit        n        y/y    n        y    y     y
Mac OS X Yosemeti 10.10.5 64-bit        n        y/y    n        y    y     y
AIX 6.1 32- and 64-bit                  n        y/n    n        y    y     y
CentOS 6.7 Linux 2.6.32 x86_64 GNU      y        y/y    y        y    y     y
CentOS 6.7 Linux 2.6.32 x86_64 Intel    n        y/y    n        y    y     y
CentOS 6.7 Linux 2.6.32 x86_64 PGI      n        y/y    n        y    y     y
CentOS 7.1 Linux 3.10.0 x86_64 GNU      y        y/y    y        y    y     y
CentOS 7.1 Linux 3.10.0 x86_64 Intel    n        y/y    n        y    y     y
Linux 2.6.32-431.11.2.el6.ppc64         n        y/n    n        y    y     y

Platform                                 Shared  Shared    Shared    Thread-
                                         C libs  F90 libs  C++ libs  safe
SunOS 5.11 32-bit                          y       y         y         y
SunOS 5.11 64-bit                          y       y         y         y
Windows 7                                  y       y         y         y
Windows 7 x64                              y       y         y         y
Windows 7 Cygwin                           n       n         n         y
Windows 8.1                                y       y         y         y
Windows 8.1 x64                            y       y         y         y
Mac OS X Mountain Lion 10.8.5 64-bit       y       n         y         y
Mac OS X Mavericks 10.9.5 64-bit           y       n         y         y
Mac OS X Yosemeti 10.10.5 64-bit           y       n         y         y
AIX 6.1 32- and 64-bit                     y       n         n         y
CentOS 6.7 Linux 2.6.32 x86_64 GNU         y       y         y         y
CentOS 6.7 Linux 2.6.32 x86_64 Intel       y       y         y         y
CentOS 6.7 Linux 2.6.32 x86_64 PGI         y       y         y         y
CentOS 7.1 Linux 3.10.0 x86_64 GNU         y       y         y         y
CentOS 7.1 Linux 3.10.0 x86_64 Intel       y       y         y         y
Linux 2.6.32-431.11.2.el6.ppc64            y       y         y         y

Compiler versions for each platform are listed in the preceding
"Supported Platforms" table.


More Tested Platforms
=====================
The following platforms are not supported but have been tested for this release.

    Linux 2.6.18-431.11.2.el6     g95 (GCC 4.0.3 (g95 0.94!)
    #1 SMP x86_64 GNU/Linux
    (platypus)

    Windows 7                     Visual Studio 2008  (cmake)

    Windows 7 x64                 Visual Studio 2008  (cmake)

    Windows 7 x64                 Visual Studio 2010  (cmake) with SWMR using GPFS

    Windows 10                    Visual Studio 2013 w/ Intel Fortran 15 (cmake)

    Windows 10 x64                Visual Studio 2013 w/ Intel Fortran 15 (cmake)

    Debian7.5.0 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux
                                  gcc (Debian 4.7.2-5) 4.7.2
                                  GNU Fortran (Debian 4.7.2-5) 4.7.2
                                  (cmake and autotools)

    Fedora20 3.15.3-200.fc20.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux
                                  gcc (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1)
                                  GNU Fortran (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1)
                                  (cmake and autotools)

    SUSE 13.1 3.11.10-17-desktop #1 SMP PREEMPT x86_64 x86_64 x86_64 GNU/Linux
                                  gcc (SUSE Linux) 4.8.1
                                  GNU Fortran (SUSE Linux) 4.8.1
                                  (cmake and autotools)

    Ubuntu 14.04 3.13.0-35-generic #62-Ubuntu SMP x86_64 GNU/Linux
                                  gcc (Ubuntu/Linaro 4.9.1-0ubuntu1) 4.9.1
                                  GNU Fortran (Ubuntu/Linaro 4.9.1-0ubuntu1) 4.9.1
                                  (cmake and autotools)

    hopper.nersc.gov              PrgEnv-gnu/5.2.40
                                  gcc (GCC) 4.9.2 20141030 (Cray Inc.)
                                  GNU Fortran (GCC) 4.9.2 20141030 (Cray Inc.)
                                  g++ (GCC) 4.9.2 20141030 (Cray Inc.)


Known Problems
==============
WARNINGS: This section is under contsruction. It will be updated for the first HDF5 1.10.0-beta
release. 

  - h5format_convert only works with the files that contain chunked datasets.
  - h5repack tool fails to downgrade object layout message to make file 
    1.8 compatible.