-
Notifications
You must be signed in to change notification settings - Fork 7
Libraries providing common interface to data from various fusion codes
License
nferraro/fusion-io
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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
About
Libraries providing common interface to data from various fusion codes
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published