CMS Compilation/Windows: Difference between revisions

From CIRPwiki
Jump to navigation Jump to search
Created page with "== Installation with Visual Studio¶ == To obtain the pre-built CMS executable, it can be found here, CMS Releases. Our team generally uses the following tools for compiling the production release version of CMS. * Microsoft Visual Studio 2022 (Community version is fine) * Intel oneAPI Base and HPC kits (2024.1) Install the three tools in the following order. # Install MS Visual Studio 2022 (or 2019) #* Make sure '''“Desktop development with C++”''' is selec..."
 
Line 21: Line 21:
<div class="toccolours mw-collapsible mw-collapsed" style="width:90%">
<div class="toccolours mw-collapsible mw-collapsed" style="width:90%">
'''Release Configuration Properties'''<div class="mw-collapsible-content">
'''Release Configuration Properties'''<div class="mw-collapsible-content">
      Project Settings:
Project Settings:
          Linker  | Input - Additional Dependencies  
:Linker  | Input - Additional Dependencies  
            => "..\external_libraries\XMDF\xmdf2.2x64.lib"
:::"..\external_libraries\XMDF\xmdf2.2x64.lib"
          Linker  | System - Stack Reserve Size => 92428800
:Linker  | System - Stack Reserve Size => 92428800
          Fortran | Optimization - Optimization => Maximum Speed plus Higher Level Optimizations
:Fortran | Optimization - Optimization => Maximum Speed plus Higher Level Optimizations
          Fortran | Optimization - Global Optimizations => Yes (/Og)  
:Fortran | Optimization - Global Optimizations => Yes (/Og)  
          Fortran | Language - Process OpenMP Directives => Generate Parallel Code (/Qopenmp)
:Fortran | Language - Process OpenMP Directives => Generate Parallel Code (/Qopenmp)
          Fortran | Floating Point | Floating Point Exception Handling =>
:Fortran | Floating Point | Floating Point Exception Handling =>
                    Underflow gives 0.0; Abort on other IEEE exceptions (/fpe:0) (giving problems with  
:::Underflow gives 0.0; Abort on other IEEE exceptions (/fpe:0) (giving problems with  
                    ICCG solver)
:::ICCG solver)
                  or Produce NaN, signed infinities, and denormal results (more stable for some reason)
:::or Produce NaN, signed infinities, and denormal results (more stable for some reason)
          Fortran | Run-time - Generate Traceback Information  => Yes
:Fortran | Run-time - Generate Traceback Information  => Yes
          Fortran | Run-time - Check Array and Sting Bounds => Yes
:Fortran | Run-time - Check Array and Sting Bounds => Yes
          Fortran | Run-time - Check Uninitialized Variables => Yes
:Fortran | Run-time - Check Uninitialized Variables => Yes
          Fortran | Preprocessor - Preprocess source file => Yes
:Fortran | Preprocessor - Preprocess source file => Yes
          Fortran | Preprocessor - Additional include directories => ..\source\main\
:Fortran | Preprocessor - Additional include directories => ..\source\main\
</div></div>
</div></div>

Revision as of 22:28, 23 June 2025

Installation with Visual Studio¶

To obtain the pre-built CMS executable, it can be found here, CMS Releases.


Our team generally uses the following tools for compiling the production release version of CMS.

  • Microsoft Visual Studio 2022 (Community version is fine)
  • Intel oneAPI Base and HPC kits (2024.1)

Install the three tools in the following order.

  1. Install MS Visual Studio 2022 (or 2019)
    • Make sure “Desktop development with C++” is selected at a minimum
  2. Install Intel oneAPI Base kit (C++ language only) with Visual Studio integration.
  3. Install Intel oneAPI HPC kit (adds Fortran) with Visual Studio integration.


Note: It has been mentioned there may be an Intel oneAPI Fortran only build which may be possibly used but we have not yet tested it.

Settings for Visual Studio

Release Configuration Properties

Project Settings:

Linker | Input - Additional Dependencies
"..\external_libraries\XMDF\xmdf2.2x64.lib"
Linker | System - Stack Reserve Size => 92428800
Fortran | Optimization - Optimization => Maximum Speed plus Higher Level Optimizations
Fortran | Optimization - Global Optimizations => Yes (/Og)
Fortran | Language - Process OpenMP Directives => Generate Parallel Code (/Qopenmp)
Fortran | Floating Point | Floating Point Exception Handling =>
Underflow gives 0.0; Abort on other IEEE exceptions (/fpe:0) (giving problems with
ICCG solver)
or Produce NaN, signed infinities, and denormal results (more stable for some reason)
Fortran | Run-time - Generate Traceback Information => Yes
Fortran | Run-time - Check Array and Sting Bounds => Yes
Fortran | Run-time - Check Uninitialized Variables => Yes
Fortran | Preprocessor - Preprocess source file => Yes
Fortran | Preprocessor - Additional include directories => ..\source\main\