Skip to content

Build Requirements

Jonathan Lifflander edited this page Jul 10, 2020 · 41 revisions

Language

VT conforms to C++14.

VT can currently compile with many C++11 compilers as long as detector is disabled. The detector component provides extra static checks (e.g., type traits enforcement) but is not required for "correctness".

Library Dependencies

  • MPI 3+
  • OpenMP 3+ (optional, if threading is enabled)

The remainder of libraries are all embedded with the proper version in VT's source code. For a list of the libraries (along with the associated license agreements for them) that VT embeds, refer to Third-Party Libraries (TPLs)

Supported Compilers

A supported compiler is one which a mainline VT build SHOULD be able to target. Other compilers are expected to work if they sufficiently implement the C++11/14 standard.

These are chosen due to usage in research and HPC builds. It is recommended to use newer compiler versions whenever possible.

  • GNU compilers (gcc) >= 4.9.3
  • Clang/llvm (clang) >= 3.9
  • Intel compilers (icc) >= 18.0.0
  • NVidia cuda compiler (nvcc) (10.1, 11.0)
  • Portland Group (pgi) (??)
  • IBM compilers (xlc) (??)

The list of supported compilers (and minimum versions) can change with newer VT releases.

Compiler Features

Tracing

Tracing requires __PRETTY_FUNCTION__, as first implemented as a GCC extension.