Skip to content

Build Requirements

Jonathan Lifflander edited this page Jul 29, 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.03
  • 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 Configurations

Branch Architecture Compiler Type Compiler Version Status
develop ubuntu 18.04 GNU gcc-5 gcc-5
develop ubuntu 18.04 GNU gcc-6 gcc-6
develop ubuntu 18.04 GNU gcc-7 gcc-7
develop ubuntu 18.04 GNU gcc-8 gcc-8
develop ubuntu 18.04 GNU gcc-9 gcc-9
develop ubuntu 18.04 GNU gcc-10 gcc-10
develop ubuntu 18.04 Clang clang-3.9 clang-3.9
develop ubuntu 18.04 Clang clang-5 clang-5, ubuntu, mpich, trace
develop Mac OS X Clang clang-8 apple clang 8
develop alpine Clang clang-8 clang-8
develop ubuntu 18.04 Intel icc-18 icc-18
develop ubuntu 18.04 Intel icc-19 icc-19
develop ubuntu 18.04 Nvidia nvcc-10.1 nvcc-10.1
develop ubuntu 18.04 Nvidia nvcc-11.0 nvcc-11.0
1.0.0 ubuntu 18.04 GNU gcc-5 gcc-5
1.0.0 ubuntu 18.04 GNU gcc-6 gcc-6
1.0.0 ubuntu 18.04 GNU gcc-7 gcc-7
1.0.0 ubuntu 18.04 GNU gcc-8 gcc-8
1.0.0 ubuntu 18.04 GNU gcc-9 gcc-9
1.0.0 ubuntu 18.04 GNU gcc-10 gcc-10
1.0.0 ubuntu 18.04 Clang clang-3.9 clang-3.9
1.0.0 ubuntu 18.04 Clang clang-5 clang-5, ubuntu, mpich, trace
1.0.0 Mac OS X Clang clang-8 apple clang 8
1.0.0 alpine Clang clang-8 clang-8
1.0.0 ubuntu 18.04 Intel icc-18 icc-18
1.0.0 ubuntu 18.04 Intel icc-19 icc-19
1.0.0 ubuntu 18.04 Nvidia nvcc-10.1 nvcc-10.1
1.0.0 ubuntu 18.04 Nvidia nvcc-11.0 nvcc-11.0

Compiler Features

Tracing

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