Difference between revisions of "Compiling Ants"

From Kraken Wiki
Jump to: navigation, search
(Linux)
(Linux)
Line 11: Line 11:
 
  intel-oneapi-compiler-fortran
 
  intel-oneapi-compiler-fortran
 
  intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
 
  intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
*The environment variable <tt>MKLROOT</tt> needs to point to the root of the MKL installation directory. For Linux, see the instructions at [https://software.intel.com/en-us/mkl-linux-developer-guide-setting-environment-variables Developer Guide for Intel® Math Kernel Library for Linux] to automate this process.
+
*The environment variable '''<tt>MKLROOT</tt>''' needs to point to the root of the MKL installation directory. For Linux, see the instructions at [https://software.intel.com/en-us/mkl-linux-developer-guide-setting-environment-variables Developer Guide for Intel® Math Kernel Library for Linux] to automate this process.
** Basically requires adding <tt>source /opt/intel/oneapi/setvars.sh</tt> to either <tt>~/.bashrc</tt> or <tt>~/Envs/Kraken/bin/postactivate</tt>
+
** Basically requires adding '''<tt>source /opt/intel/oneapi/setvars.sh</tt>''' to either '''<tt>~/.bashrc</tt>''' or '''<tt>~/Envs/Kraken/bin/postactivate</tt>'''.
*On VTT computational clusters one recommended way to configure Intel Fortran compiler and Intel MKL is to load suitable module, for example by appending the following command to to ~/.bash_profile:
+
*On VTT computational clusters one recommended way to configure Intel Fortran compiler and Intel MKL is to load suitable module, for example by appending the following command to to '''~/.bash'''_profile:
 
  module load compiler
 
  module load compiler
 
  module load mkl
 
  module load mkl
 
*Requires libomp5 (libomp5 and libomp-dev packages on Ubuntu Bionic).
 
*Requires libomp5 (libomp5 and libomp-dev packages on Ubuntu Bionic).
*On Linux use the Makefiles found in bin folder. The temporary files and final executables are placed in different folders for each build/compiler combination (for example, to <tt>Ants/bin/Release/ifort/</tt> when compiling with the default Makefile). Therefore, make clean is not necessary when consecutively compiling different builds (make -f <makefile>).
+
*On Linux use the Makefiles found in bin folder. The temporary files and final executables are placed in different folders for each build/compiler combination (for example, to '''<tt>Ants/bin/Release/ifort/</tt>''' when compiling with the default Makefile). Therefore, make clean is not necessary when consecutively compiling different builds (make -f <makefile>).
 
**Makefile: release build for ifort/icc
 
**Makefile: release build for ifort/icc
 
**Makefile_debug: debug build for ifort/icc
 
**Makefile_debug: debug build for ifort/icc

Revision as of 11:28, 3 February 2024

Ants is the nodal neutronics program of the Kraken Framework. It is written in Fortran with a C-based interface for multi-physics data exchange.

Compilation instructions are provided for Linux and Windows.

Linux

  • Requires Intel oneAPI Math Kernel Library (oneMKL). MKL is already available on VTT computational clusters. Easy to install on Ubuntu Bionic at least.
    • In order to install Intel oneAPI packages with apt, add the Intel oneAPI repository using these instructions.
    • If installing with apt, the required packages seem to be (two last needed only if you want to use Intel compilers):
intel-oneapi-mkl
intel-oneapi-mkl-devel
intel-oneapi-compiler-fortran
intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
  • The environment variable MKLROOT needs to point to the root of the MKL installation directory. For Linux, see the instructions at Developer Guide for Intel® Math Kernel Library for Linux to automate this process.
    • Basically requires adding source /opt/intel/oneapi/setvars.sh to either ~/.bashrc or ~/Envs/Kraken/bin/postactivate.
  • On VTT computational clusters one recommended way to configure Intel Fortran compiler and Intel MKL is to load suitable module, for example by appending the following command to to ~/.bash_profile:
module load compiler
module load mkl
  • Requires libomp5 (libomp5 and libomp-dev packages on Ubuntu Bionic).
  • On Linux use the Makefiles found in bin folder. The temporary files and final executables are placed in different folders for each build/compiler combination (for example, to Ants/bin/Release/ifort/ when compiling with the default Makefile). Therefore, make clean is not necessary when consecutively compiling different builds (make -f <makefile>).
    • Makefile: release build for ifort/icc
    • Makefile_debug: debug build for ifort/icc
    • Makefile_gfortran: release build for gfortran/gcc
    • Makefile_gfortran_debug: debug build for gfortran/gcc

Windows

  • Requires Intel oneAPI Math Kernel Library (oneMKL). On Windows, the recommended way is to install Intel oneAPI Base Toolkit.
  • Correct way to set the oneMKL environment on Windows before launching Ants is described here. However, this won't set the environment variables permanently.
  • Instead, one can either edit or add the Path-variable in the User variables in the Environment variables to include for example
C:\Program Files (x86)\Intel\oneAPI\mkl\latest\redist\intel64
  • Ants Visual Studio solution file is in the vs2017 folder (ants.sln).
  • Always compile either Debug x64 or Release x64 builds, depending on which build is desired.
  • It might also be necessary to add for example
C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\redist\intel64_win\compiler

in the Path-variable in order to find the correct libiomp5md.dll when Ants is ran.