-
Notifications
You must be signed in to change notification settings - Fork 7
/
README
114 lines (88 loc) · 4 KB
/
README
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
Option 1: Use Make
1. Set the environment variables FIO_ROOT, FIO_ARCH, FIO_INSTALL_DIR, and PYTHON
* FIO_ROOT should be set to the directory containing this README
file
* FIO_ARCH should be set to a string describing the build
environment (for example "OSX")
* FIO_INSTALL_DIR should be set to the location where files will be
installed. Files will be installed under
$FIO_INSTALL_DIR/include, $FIO_INSTALL_DIR/lib, and
$FIO_INSTALL_DIR/bin.
* The variable PYTHON in the make.inc file should be set to the python executable.
For example 'python' or 'python3'
2. Create and edit the file $FIO_ROOT/install/make.inc.$FIO_ARCH
to specify the proper compilers and library paths. An example
using the gnu compilers can be found in
$FIO_ROOT/install/make.inc.OSX .
You will need an installation of HDF5, MPI, and LAPACK
* If compiling on flux:
Recommended modules to compile fusion-io:
anaconda3/2023.09-0-gcc-13.2.0-ajty2
glib/2.78.0-gcc-11.3.1-d4yec
gcc/13.2.0-gcc-11.3.1-tjrkt
openmpi-4.1.5/gcc-13.2.0/netcdf-c/4.9.2-ntznx
openmpi/4.1.5-gcc-13.2.0-a27lm
openmpi-4.1.5/gcc-13.2.0/hdf5/1.14.1-2-evfpn
netlib-lapack/3.11.0-gcc-13.2.0-72t2p
In addition, to use the Python interface version 13 of libstdcxx must be
installed, e.g. conda install -c conda-forge libstdcxx-ng=13
* If compiling on Portal:
CentOS 6:
ACML_HOME should also be changed to: /usr/pppl/acml/5.3.1
CentOS 7:
Use make.inc.centos7, ACML is replaced by lapack
* If compiling on eddy:
The INCLUDE path might be incorrectly set (missing an -I
in front of the first entry. export INCLUDE=-I$INCLUDE should fix it.
The standard python version on eddy is 2.7. As of Jan 2020 it is recommended
to work with Python 3 only. In order to get the python version right, do
'module load anaconda' and create/activate a conda environment before
compiling fusion-io.
Recommended modules to compile fusion-io:
1) hdf5/intel-17.0/openmpi-1.10.2/1.10.0 4) openmpi/intel-17.0/3.0.0/64
2) intel-mkl/2017.4/5/64 5) anaconda/2019.10
3) intel/17.0/64/17.0.5.239
* If compiling on perlmutter:
It is recommended to use the GNU compiler and Python >= 3.9.
* If compiling on cori:
Before compiling do 'module unload darshan' and 'module load texlive'.
Furthermore, load an anaconda module based on Python 3.
* If compiling on SDumont:
module load gcc/9.3
module load openmpi/gnu/4.1.1
module load mathlibs/openblas/0.3.19_gnu
module load hdf5/1.8_openmpi-2.0_gnu
module load anaconda3/2020.11
3. From $FIO_ROOT
make : builds static libraries and executables
make shared : builds shared libraries
make python : builds fio_py.so
4. Run "make install" from $FIO_ROOT. This will install:
Executables in $FIO_INSTALL_DIR/bin/
Libraries in $FIO_INSTALL_DIR/lib/
Headers in $FIO_INSTALL_DIR/include/
Fortran modules in $FIO_INSTALL_DIR/include/
5. To run the code add the following paths to your bashrc:
PATH: $FIO_INSTALL_DIR/bin
LD_LIBRARY_PATH: $FIO_INSTALL_DIR/lib
PYTHONPATH: $FIO_INSTALL_DIR/lib
Option 2: Use CMake
1. Create a build folder in the source code directory
mkdir build
cd build
2. Run the CMake command
cmake .. \
-DCMAKE_C_COMPILER=mpicc \
-DCMAKE_CXX_COMPILER=mpic++ \
-DCMAKE_Fortran_COMPILER=mpifort \
-DCMAKE_INSTALL_PREFIX=$FIO_INSTALL_DIR \
-DCMAKE_PREFIX_PATH=$FIO_LIBRARY_DIR \
-DFUSIONIO_ENABLE_PYTHON=ON \
-DPYTHON_MODULE_INSTALL_PATH=$FIO_INSTALL_DIR/lib \
-DFUSIONIO_ENABLE_TRACE=ON
Here you can specify the C, C++ and Fortran compilers to use, set the
target installation directory, and choose whether you want to compile
the Python module or the trace tool. You should specify the location of
dependent libraries (HDF5, LAPACK) in $FIO_LIBRARY_DIR.
3. Build and install fusion-io
cmake --build . --target install