summaryrefslogtreecommitdiffstats
path: root/release_docs/README_HPC
blob: bdeab676ac84b221acc9c6e28844860ca10b1134 (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
HDF5 version 1.11.4 currently under development

HDF5 source tar files with the HPC prefix are intended for use on clusters where 
configuration and build steps will be done on a login node and executable and
lib files that are built will be run on compute nodes.  

Note these differences from the regular CMake tar and zip files:
  - Test programs produced by this tar file will be run using batch scripts. 
  - Serial and parallel HDF5options.cmake files, using parallel options by default.

Note also that options are now available in HDF5 source to facilitate use of 
toolchain files for using cross compilers available on login nodes to compile
HDF5 for compute nodes.

Instructions to configure build and test HDF5 using CMake:

1. The cmake version must be 3.10 or later (cmake --version).
2. Load or switch modules and set CC, FC, CXX for compilers desired.
3. run build-unix.sh to configure, build, test and package HDF5 with CMake.

Contents:

build-unix.sh           Simple script for running CMake to configure, build, 
                        test, and package HDF5.
CTestScript.cmake       CMake script to configure, build, test and package 
                        HDF5.
hdf5-<version>          HDF5 source for <version>.
HDF5config.cmake        CMake script to configure, build, test and package
                        HDF5. 
HDF5Examples            Source for HDF5 Examples.
HDF5options.cmake       symlink to parallel or serial HDF5options.cmake files.
                        Default is parallel file, which builds and tests both
                        serial and parallel C and Fortran wrappers.
                        To build serial only, C Fortran and C++ wrappers, delete
                        The HDF5options.cmake link and run 
                        'ln -s ser-HDF5options.cmake HDF5options.cmake' to switch.  
par-HDF5options.cmake   Options file for HDF5 serial and parallel build and test.
ser-HDF5options.cmake   Options file for HDF5 serial only build and test.
SZip.tar.gz             Source for building SZip.
ZLib.tar.gz             Source for buildng Zlib.


To cross compile with this HPC-CMake tar.gz HDF5 source file:
On Cray XC40  haswell login node for knl compute nodes using CMake and Cray modules:
        1.  Uncomment line in HDF5options.txt to use a toolchain file - line 106 for
            config/toolchain/crayle.cmake.
        2.  Uncomment lines 110, 111, and 115 - 122 of HDF5options.cmake.
            Line 110 allows configuring to complete on the haswell node.
            Line 111 switches the compiler to build files for knl nodes.
            Lines 115 - 122 set up test files to use sbatch to run build tests
            in batch jobs on a knl compute node with 6 processes.
        3.  Compiler module may be the default PrgEnv-intel/6.0.4 to use 
            intel/18.0.2 or other intel, PrgEnv-cray/6.0.4 to use cce/8.7.4,
            or PrgEnv-gnu/6.0.4 for GCC compilers.  PrgEnv-pgi/6.0.4 is also 
            available but has not been tested with this tar file.
        4.  These CMake options are set in config/toolchain/crayle.cmake:
                set(CMAKE_SYSTEM_NAME Linux)
                set(CMAKE_COMPILER_VENDOR "CrayLinuxEnvironment")
                set(CMAKE_C_COMPILER cc)
                set(CMAKE_CXX_COMPILER c++)
                set(CMAKE_Fortran_COMPILER ftn)
                set(CMAKE_CROSSCOMPILING_EMULATOR "")

        5.  Settings for two other cross-compiling options are also in the 
            config/toolchain files which do not seem to be necessary with the 
            Cray PrgEnv-* modules
            a.  HDF5_USE_PREGEN.  This option, along with the HDF5_USE_PREGEN_DIR
                CMake variable would allow the use of an appropriate H5Tinit.c 
                file with type information generated on a compute node to be used
                when cross compiling for those compute nodes.  The use of the 
                variables in lines 110 and 111 of HDF5options.cmake file seem to
                preclude needing this option with the available Cray modules and
                CMake options.
            b.  HDF5_BATCH_H5DETECT and associated CMake variables.  This option
                when properly configured will run H5detect in a batch job on a
                compute node at the beginning of the CMake build process.  It 
                was also found to be unnecessary with the available Cray modules
                and CMake options.
-