Difference between revisions of "Compiling Ants"

From Kraken Wiki
Jump to: navigation, search
(Restore changes)
 
Line 3: Line 3:
 
Compilation instructions are provided for Linux and Windows.
 
Compilation instructions are provided for Linux and Windows.
  
=== Linux ===
+
== Linux ==
 
*Requires [https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html Intel oneAPI Math Kernel Library (oneMKL)]. MKL is already available on VTT computational clusters. Easy to install on Ubuntu Bionic at least.
 
*Requires [https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html 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 [https://www.intel.com/content/www/us/en/docs/oneapi/installation-guide-linux/2023-0/apt.html#GUID-560A487B-1B5B-4406-BB93-22BC7B526BCD these instructions].
 
**In order to install Intel oneAPI packages with apt, add the Intel oneAPI repository using [https://www.intel.com/content/www/us/en/docs/oneapi/installation-guide-linux/2023-0/apt.html#GUID-560A487B-1B5B-4406-BB93-22BC7B526BCD these instructions].
Line 24: Line 24:
 
**Makefile_gfortran_debug: debug build for gfortran/gcc '''We strongly recommend NOT using gfortran at the moment as its use seems to lead to erroneous program code'''.
 
**Makefile_gfortran_debug: debug build for gfortran/gcc '''We strongly recommend NOT using gfortran at the moment as its use seems to lead to erroneous program code'''.
  
=== Windows ===
+
== Windows ==
 
*Requires [https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html Intel oneAPI Math Kernel Library (oneMKL)]. On Windows, the recommended way is to install Intel oneAPI Base Toolkit.
 
*Requires [https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html 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 [https://www.intel.com/content/www/us/en/develop/documentation/onemkl-windows-developer-guide/top/getting-started/setting-environment-variables.html here]. However, this won't set the environment variables permanently.
 
*Correct way to set the oneMKL environment on Windows before launching Ants is described [https://www.intel.com/content/www/us/en/develop/documentation/onemkl-windows-developer-guide/top/getting-started/setting-environment-variables.html 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
 
*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
 
  C:\Program Files (x86)\Intel\oneAPI\mkl\latest\redist\intel64
 +
or
 +
C:\Program Files (x86)\Intel\oneAPI\mkl\latest\bin
 
*Ants Visual Studio solution file is in the vs2022 folder (ants.sln).
 
*Ants Visual Studio solution file is in the vs2022 folder (ants.sln).
 
*Always compile either Debug x64 or Release x64 builds, depending on which build is desired.
 
*Always compile either Debug x64 or Release x64 builds, depending on which build is desired.
 
*It might also be necessary to add for example
 
*It might also be necessary to add for example
 
  C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\redist\intel64_win\compiler
 
  C:\Program Files (x86)\Intel\oneAPI\compiler\latest\windows\redist\intel64_win\compiler
 +
or
 +
C:\Program Files (x86)\Intel\oneAPI\compiler\latest\bin
 
in the Path-variable in order to find the correct libiomp5md.dll when Ants is ran.
 
in the Path-variable in order to find the correct libiomp5md.dll when Ants is ran.
 
*The Visual Studio solution and project files might be unsuitable for all environments with different Visual Studio or compiler versions. These have to be modified accordingly.
 
*The Visual Studio solution and project files might be unsuitable for all environments with different Visual Studio or compiler versions. These have to be modified accordingly.
  
=== Additional notes ===
+
== Additional notes ==
 
*Intel Fortran compilers (both ifort and ifx) have a regression in the 2024.1 release, where the Release makefiles with -nostand option do not compile. To fix this error, either remove the -nostand or use -stand f18 option.
 
*Intel Fortran compilers (both ifort and ifx) have a regression in the 2024.1 release, where the Release makefiles with -nostand option do not compile. To fix this error, either remove the -nostand or use -stand f18 option.
  
 
[[Category:Ants]]
 
[[Category:Ants]]

Latest revision as of 09:26, 8 October 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:
intel-oneapi-mkl-2024.0
intel-oneapi-mkl-devel-2024.0
intel-oneapi-compiler-fortran-2024.0
intel-oneapi-compiler-dpcpp-cpp-2024.0
  • 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.
    • Again, after modifying your environment, you will need to refresh it. The surest way is to close the current terminal window and continue in a new one.
  • 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/icx
    • Makefile_debug: debug build for ifort/icx
    • Makefile_gfortran: release build for gfortran/gcc We strongly recommend NOT using gfortran at the moment as its use seems to lead to erroneous program code.
    • Makefile_gfortran_debug: debug build for gfortran/gcc We strongly recommend NOT using gfortran at the moment as its use seems to lead to erroneous program code.

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

or

C:\Program Files (x86)\Intel\oneAPI\mkl\latest\bin
  • Ants Visual Studio solution file is in the vs2022 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

or

C:\Program Files (x86)\Intel\oneAPI\compiler\latest\bin

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

  • The Visual Studio solution and project files might be unsuitable for all environments with different Visual Studio or compiler versions. These have to be modified accordingly.

Additional notes

  • Intel Fortran compilers (both ifort and ifx) have a regression in the 2024.1 release, where the Release makefiles with -nostand option do not compile. To fix this error, either remove the -nostand or use -stand f18 option.