Skip to content

Libraries providing common interface to data from various fusion codes

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

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