Next generation of ADIOS developed in the Exascale Computing Program
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Eliminate SstVerbose from testing environment Jan 9, 2019
bindings Cleanup PGI warnings Jan 15, 2019
cmake Make adios2-config work with python 2.6, 2.7, and 3.x Jan 11, 2019
docs Give a more detailed titan python example Jan 2, 2019
examples Cleanup PGI warnings Jan 15, 2019
scripts Cleanup PGI warnings Jan 15, 2019
source #1113 Fixed a bug for set selection no aligned with blocks Jan 23, 2019
testing #1113 Fixed a bug for set selection no aligned with blocks Jan 23, 2019
thirdparty Merge pull request #1105 from chuckatkins/fix-package-exports-for-old… Jan 11, 2019
.clang-format Add line breaks for template declarations Apr 5, 2017
.clang-tidy Reinstate the use of reinterpret_cast Apr 5, 2017
.gitignore Added tests for ADIOS class coverage Sep 27, 2018
.readthedocs.yml Enabling other readthedocs formats Oct 23, 2018
.travis.yml Removed libfabric-dev for travis (trusty doesn't have this package av… Oct 23, 2018
CMakeLists.txt Fix dependency macro for older cmake versions Jan 7, 2019
CTestConfig.cmake fix typo Oct 16, 2018 Restoring tests now hoped to be stable Jan 8, 2019 Updating documentation files Jun 20, 2017
Copyright.txt Fixed a bug in DataManWriter which uses a wrong engine name Apr 5, 2017
LICENSE Create LICENSE Jan 10, 2018 Fix some table formatting issues in the ReadMe Jan 2, 2019
appveyor.yml Use ninja on AppVeyor for faster builds Apr 4, 2018
flake8.cfg fix travis and appveyor error Oct 25, 2018

GitHub (pre-)release GitHub license

Circle CI Travis CI AppVeyor CI

Coverity Scan Build Status Codacy Badge

Adaptable Input / Output System (ADIOS) v2.3.0

This is v2.3.0 of the ADIOS I/O system, developed as part of the U.S. Department of Energy Exascale Computing Program.


ADIOS >= 2.0 is licensed under the Apache License v2.0. See the accompanying Copyright.txt for more details.


Please find ADIOS2 User Guide at readthedocs

Directory layout

  • cmake - Project specific CMake modules
  • examples - ADIOS2 Examples
  • scripts - Project maintenance and development scripts
  • source - ADIOS2 source
    • adios2 - source directory for the ADIOS2 library to be installed under install-dir/lib/libadios2.
    • utils - source directory for the binary utilities, to be installed under install-dir/bin
  • bindings - public interface language bindings (C++11, C++98, C, Fortran, Python and Matlab)
  • testing - Tests using gtest

Getting Started

ADIOS2 uses CMake for its build environment. CMake expects projects to use "out-of-source" builds, which means keeping a separate build and source directory (different from autotools, which usually uses an in-source build).

The following is a quick step-by-step build guide, find the full CMake-based install documentation here

Step-by-step build guide:

  1. Clone the repository:
$ mkdir adios2
$ cd adios2
$ git clone
  1. Create a separate build directory in your work area:
$ mkdir build
  1. Configure the project with CMake:
$ mkdir adios2
$ cd adios2
$ git clone source
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/adios2/2.3.0/gnu/openmpi ../source
-- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0

ADIOS2 build configuration:
  ADIOS Version: 2.3.0
  C++ Compiler : GNU 7.3.0 

  Fortran Compiler : GNU 7.3.0 

  Installation prefix: /opt/adios2/2.3.0/gnu/openmpi
        bin: bin
        lib: lib
    include: include
      cmake: lib/cmake/adios2

    Library Type: shared
    Build Type:   Release
    Testing: ON
    Build Options:
      BZip2    : ON
      ZFP      : OFF
      SZ       : OFF
      MGARD    : OFF
      MPI      : ON
      DataMan  : ON
      SST      : ON
      ZeroMQ   : ON
      HDF5     : ON
      Python   : ON
      Fortran  : ON
      SysVShMem: ON
      Endian_Reverse: OFF

-- Configuring done
-- Generating done
-- Build files have been written to: /home/chuck/adios2/build

The following options can be specified with CMake's -DVAR=VALUE syntax to control which features get enabled or disabled:

CMake Option Values Description
ADIOS2_USE_BZip2 AUTO/ON/OFF Enable BZip2 compression (not implemented).
ADIOS2_USE_ZFP AUTO/ON/OFF Enable ZFP compression (not implemented).
ADIOS2_USE_DataMan AUTO/ON/OFF Enable the DataMan engine for WAN transports.
ADIOS2_USE_ZeroMQ AUTO/ON/OFF Enable ZeroMQ for the DataMan engine.
ADIOS2_USE_HDF5 AUTO/ON/OFF Enable the HDF5 engine.
ADIOS2_USE_Python AUTO/ON/OFF Enable the Python >= 2.7 bindings. Need mpi4py and numpy
ADIOS2_USE_SST AUTO/ON/OFF Enable Staging Engine
ADIOS2_USE_Fortran AUTO/ON/OFF Enable Fortran bindings

Note: The ADIOS2_USE_HDF5 option requires the use of a matching serial or parallel version depending on whether ADIOS2_USE_MPI is enabled. Similary, enabling MPI and Python bindings requires the presence of mpi4py.

In addition to the ADIOS2_USE_Feature options, the following options are also available to control how the library get's built:

CMake Options Values Description
BUILD_SHARED_LIBS ON/OFF Build shared libraries.
CMAKE_INSTALL_PREFIX /path/to/install (/usr/local) Install location.
CMAKE_BUILD_TYPE Debug / Release / RelWithDebInfo / MinSizeRel The level of compiler optimization to use.
  1. Compile:
$ make -j8
  1. Run tests:
$ ctest
Test project /home/chuck/adios2/build
       Start   1: HeatTransfer.BPFile.Write.MxM
  1/295 Test   #1: HeatTransfer.BPFile.Write.MxM ............................................   Passed    1.25 sec
        Start   2: HeatTransfer.BPFile.Read.MxM
  2/295 Test   #2: HeatTransfer.BPFile.Read.MxM .............................................   Passed    0.55 sec
        Start   3: HeatTransfer.BPFile.Dump.MxM
  1. Install:
$ make install
[  7%] Built target adios2sys_objects
[ 61%] Built target adios2
[ 68%] Built target adios2py
Install the project...
-- Install configuration: "Release"
-- Installing: /opt/adios2/2.3.0/gnu/openmpi/include/adios2/ADIOSConfig.h
-- Installing: /opt/adios2/2.3.0/gnu/openmpi/bin/adios2-config
-- Installing: /opt/adios2/2.3.0/gnu/openmpi/include/adios2.h
-- Installing: /opt/adios2/2.3.0/gnu/openmpi/lib/
-- Installing: /opt/adios2/2.3.0/gnu/openmpi/lib/
-- Installing: /opt/adios2/2.3.0/gnu/openmpi/lib/