Skip to content

Build Requirements

Cezary Skrzyński edited this page Mar 14, 2023 · 41 revisions

Language

VT conforms to and requires C++17.

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++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, ubuntu, mpich
develop ubuntu 18.04 GNU gcc-6 gcc-6, ubuntu, mpich
develop ubuntu 18.04 GNU gcc-7 gcc-7, ubuntu, mpich, trace runtime, LB
develop ubuntu 18.04 GNU gcc-8 gcc-8, ubuntu, mpich, address sanitizer
develop ubuntu 18.04 GNU gcc-9 gcc-9, ubuntu, mpich, zoltan
develop ubuntu 18.04 GNU gcc-10 gcc-10, ubuntu, openmpi, no LB
develop ubuntu 18.04 Clang clang-3.9 clang-3.9, ubuntu, mpich
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, alpine, mpich
develop ubuntu 18.04 Intel icc-18 intel 18.03, ubuntu, mpich
develop ubuntu 18.04 Intel icc-19 intel 19, ubuntu, mpich
develop ubuntu 18.04 Nvidia nvcc-10.1 nvidia cuda 10.1, ubuntu, mpich
develop ubuntu 18.04 Nvidia nvcc-11.0 nvidia cuda 11.0, ubuntu, mpich
1.0.2 ubuntu 18.04 GNU gcc-5 gcc-5
1.0.2 ubuntu 18.04 GNU gcc-6 gcc-6
1.0.2 ubuntu 18.04 GNU gcc-7 gcc-7
1.0.2 ubuntu 18.04 GNU gcc-8 gcc-8
1.0.2 ubuntu 18.04 Clang clang-3.9 clang-3.9
1.0.2 ubuntu 18.04 Clang clang-5 clang-5, ubuntu, mpich, trace
1.0.2 Mac OS X Clang clang-8 apple clang 8
1.0.2 alpine Clang clang-8 clang-8
1.0.2 ubuntu 18.04 Intel icc-18 icc-18
1.0.2 ubuntu 18.04 Intel icc-19 intel 19, ubuntu, mpich
1.0.2 ubuntu 18.04 Nvidia nvcc-10.1 nvidia cuda 10.1, ubuntu, mpich
1.0.2 ubuntu 18.04 Nvidia nvcc-11.0 nvidia cuda 11.0, ubuntu, mpich

Compiler Features

Tracing

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