Skip to content

Libraries providing common interface to data from various fusion codes

License

Notifications You must be signed in to change notification settings

nferraro/fusion-io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

No packages published