This is v2.3.1 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
- 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
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:
- Clone the repository:
$ mkdir adios2
$ cd adios2
$ git clone https://github.com/ornladios/ADIOS2.git
- Create a separate build directory in your work area:
$ mkdir build
- Configure the project with CMake:
$ mkdir adios2
$ cd adios2
$ git clone https://github.com/ornladios/adios2.git source
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/adios2/2.3.1/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.1
C++ Compiler : GNU 7.3.0
/opt/ohpc/pub/compiler/gcc/7.3.0/bin/g++
Fortran Compiler : GNU 7.3.0
/opt/ohpc/pub/compiler/gcc/7.3.0/bin/gfortran
Installation prefix: /opt/adios2/2.3.1/gnu/openmpi
bin: bin
lib: lib
include: include
cmake: lib/cmake/adios2
Features:
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_MPI |
AUTO /ON /OFF |
Enable MPI. |
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. |
ADIOS2_BUILD_EXAMPLE |
ON /OFF |
Build examples. |
ADIOS2_BUILD_TESTING |
ON /OFF |
Build test code. |
CMAKE_INSTALL_PREFIX |
/path/to/install (/usr/local ) |
Install location. |
CMAKE_BUILD_TYPE |
Debug / Release / RelWithDebInfo / MinSizeRel |
The level of compiler optimization to use. |
- Compile:
$ make -j8
- 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
...
$
- 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.1/gnu/openmpi/include/adios2/ADIOSConfig.h
...
-- Installing: /opt/adios2/2.3.1/gnu/openmpi/bin/adios2-config
...
-- Installing: /opt/adios2/2.3.1/gnu/openmpi/include/adios2.h
...
-- Installing: /opt/adios2/2.3.1/gnu/openmpi/lib/libadios2.so.2.3.1
-- Installing: /opt/adios2/2.3.1/gnu/openmpi/lib/libadios2.so.2
-- Installing: /opt/adios2/2.3.1/gnu/openmpi/lib/libadios2.so
...
$