This is v2.1.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 software documentation for:
-
Local user guide and api documentation generation docs/ReadMe.md
- cmake - Project specific CMake modules
- examples - ADIOS2 Examples
- scripts - Project maintenance and development scripts
- source - Main 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 - Additional language bindings (C, Fortran and Python)
- testing - Tests
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:
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/adios2/2.1.1/gnu/openmpi ../ADIOS2
-- The C compiler identification is GNU 6.3.1
-- The CXX compiler identification is GNU 6.3.1
...
ADIOS2 build configuration:
ADIOS Version: 2.1.0
C++ Compiler : GNU 5.4.0
/usr/bin/c++
Fortran Compiler : GNU 5.4.0
/usr/bin/gfortran
Installation prefix: /opt/adios2
bin: bin
lib: lib
include: include
cmake: lib/cmake/adios2
python: lib/python3.5/site-packages
Features:
Library Type: shared
Build Type: Debug
Testing: ON
Build Options:
BZip2 : ON
ZFP : ON
SZ : ON
MPI : ON
DataMan : ON
SST : ON
ZeroMQ : ON
HDF5 : ON
ADIOS1 : ON
Python : ON
Fortran : ON
SysVShMem: ON
-- Configuring done
-- Generating done
-- Build files have been written to: /home/chuck/Code/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_ADIOS1 |
AUTO /ON /OFF |
Enable the ADIOS 1.x 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
and ADIOS2_USE_ADIOS1
options require 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_ENABLE_PIC |
ON /OFF |
Enable Position Independent Code for static libraries. |
ADIOS2_BUILD_EXAMPLES |
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/Code/adios2/build
Test project /home/wfg/workspace/build
Start 1: ADIOSInterfaceWriteTest.DefineVar_int8_t_1x10
1/113 Test #1: ADIOSInterfaceWriteTest.DefineVar_int8_t_1x10 ............................ Passed 0.07 sec
Start 2: ADIOSInterfaceWriteTest.DefineVar_int16_t_1x10
2/113 Test #2: ADIOSInterfaceWriteTest.DefineVar_int16_t_1x10 ........................... Passed 0.07 sec
Start 3: ADIOSInterfaceWriteTest.DefineVar_int32_t_1x10
...
$
- Install:
$ make install
[ 7%] Built target adios2sys_objects
...
[ 61%] Built target adios2
[ 68%] Built target adios2py
...
Install the project...
-- Install configuration: "Debug"
-- Installing: /opt/adios2/2.1.1/gnu/openmpi/include/adios2/ADIOSConfig.h
...
-- Installing: /opt/adios2/2.1.1/gnu/openmpi/bin/adios2-config
...
-- Installing: /opt/adios2/2.1.1/gnu/openmpi/include/adios2.h
...
-- Installing: /opt/adios2/2.1.1/gnu/openmpi/lib/libadios2.so.2.0.0
-- Installing: /opt/adios2/2.1.1/gnu/openmpi/lib/libadios2.so.2
-- Installing: /opt/adios2/2.1.1/gnu/openmpi/lib/libadios2.so
...
$