Skip to content

Build Requirements

Cezary Skrzyński edited this page Mar 29, 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++17 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) >= 8.2
  • Clang/llvm (clang) >= 8.0
  • Intel compilers (icc) >= 19.0.5
  • 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-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 Mac OS X Clang clang-8 apple clang 8
develop alpine Clang clang-8 clang-8, alpine, mpich
develop ubuntu 18.04 Intel icpx icpx, ubuntu, mpich
develop ubuntu 18.04 Intel icpc icpc, 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

Compiler Features

Tracing

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