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.

Current Build Status on Supported Compilers

Branch Compiler Type Compiler Version Status
develop GNU gcc-5 gcc-5
develop GNU gcc-6 gcc-6
develop GNU gcc-7 gcc-7
develop GNU gcc-8 gcc-8
develop Clang clang-3.9 clang-3.9

Compiler Features

Tracing

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