tparallel-io-libraries.rst - pism - [fork] customized build of PISM, the parallel ice sheet model (tillflux branch)
(HTM) git clone git://src.adamsgaard.dk/pism
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) LICENSE
---
tparallel-io-libraries.rst (2801B)
---
1 .. include:: ../global.txt
2
3 .. _sec-install-parallel-io-libs:
4
5 Installing parallel I/O libraries
6 =================================
7
8 High-resolution simulations (e.g. modeling the entire Greenland ice sheet using the 900 m
9 resolution and a grid of 1700 by 3000 points) can produce huge amounts of data and I/O can
10 become a bottleneck.
11
12 PISM supports several parallel I/O approaches that take advantage of parallel NetCDF_,
13 PnetCDF_, and NCAR ParallelIO_. The administrators of your HPC system should be able to
14 help you install these libraries, but it may be easier to install them in the "home"
15 directory instead.
16
17 This section describes the steps needed to build
18
19 - NetCDF with parallel I/O based on HDF5 (needed to use PISM's option :opt:`-o_format
20 netcdf4_parallel`),
21 - PNetCDF (needed to use PISM's option :opt:`-o_format pnetfdf`),
22 - ParallelIO (needed to use options :opt:`-o_format pio_netcdf4p`,
23 :opt:`-o_format pio_netcdf4c`, :opt:`-o_format pio_pnetcdf`, :opt:`-o_format pio_netcdf`).
24
25 Scripts below install libraries in ``~/local/library_name``, using
26 ``~/local/build/library_name`` to build them.
27
28 Section :ref:`sec-install-local-libraries` explains how build PISM with these libraries.
29
30 Section :ref:`sec-pism-io-performance` explains how to use them in PISM.
31
32 .. _sec-install-parallel-netcdf:
33
34 Installing HDF5-based parallel NetCDF
35 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
36
37 .. _sec-install-hdf5:
38
39 Installing HDF5
40 ~~~~~~~~~~~~~~~~
41
42 .. literalinclude:: code/hdf5.sh
43 :language: bash
44 :linenos:
45 :lines: 7-
46
47 To compile parallel HDF5 one should use the MPI compiler wrapper ``mpicc`` and run
48 ``configure`` with the option ``--enable-parallel``. The flag ``-w`` is not important: it
49 hides numerous compiler warnings emitted when building HDF5.
50
51 .. _sec-install-netcdf:
52
53 Installing NetCDF
54 ~~~~~~~~~~~~~~~~~
55
56 .. literalinclude:: code/netcdf.sh
57 :language: bash
58 :linenos:
59 :lines: 7-
60
61 Here we use the same compiler wrapper and set ``CPPFLAGS`` and ``LDFLAGS`` to select the
62 parallel HDF5 library installed earlier. The option ``--enable-netcdf4`` is required for
63 parallel I/O; ``--disable-dap`` is not required (it disables a NetCDF feature not used by
64 PISM).
65
66 .. _sec-install-pnetcdf:
67
68 Installing PnetCDF
69 ^^^^^^^^^^^^^^^^^^
70
71 .. literalinclude:: code/pnetcdf.sh
72 :language: bash
73 :linenos:
74 :lines: 7-
75
76 Here we disable PnetCDF's C++ and Fortran APIs and build the shared library.
77
78 .. _sec-install-parallelio:
79
80 Installing NCAR ParallelIO
81 ^^^^^^^^^^^^^^^^^^^^^^^^^^
82
83 .. literalinclude:: code/parallelio.sh
84 :language: bash
85 :linenos:
86 :lines: 7-
87
88 Here we use CMake's variable ``CMAKE_FIND_ROOT_PATH`` to tell CMake to use libraries in
89 ``~/local/netcdf`` and ``~/local/pnetcdf``, to install in ``~/local/parallelio``, and to
90 disable ParallelIO features not used by PISM.