Newer
Older
[]()
[](./LICENSE)
[](https://circleci.com/gh/ornladios/ADIOS2)
[](https://travis-ci.org/ornladios/ADIOS2)
[](https://ci.appveyor.com/project/ornladios/adios2)
# Adaptable Input / Output System (ADIOS) v2.0
This is v2.0 of the ADIOS I/O system, developed as part of the
U.S. Department of Energy Exascale Computing Program.
## License
ADIOS >= 2.0 is licensed under the Apache License v2.0. See the accompanying
Copyright.txt for more details.
## Directory layout
* cmake - Project specific CMake modules
* scripts - Project maintenance and development scripts
* source - Main ADIOS2 source
* bindings - Additional language bindings (currently only Python is available)
## Documentation
Please find ADIOS2 software documentation online under the project GitHub wiki:
[https://github.com/ornladios/ADIOS2/wiki](https://github.com/ornladios/ADIOS2/wiki)
To generate Doxygen application programming interface (API) documentation see
instructions under: [doc/ReadMe.md](doc/ReadMe.md)
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).
```bash
$ mkdir adios2
$ cd adios2
$ git clone https://github.com/ornladios/adios2.git source
```
2. Create a separate build directory:
```bash
$ mkdir build
```
3. Configure the project with CMake:
```bash
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/adios2/2.0.0/gnu/openmpi ../source
-- The C compiler identification is GNU 6.3.1
-- The CXX compiler identification is GNU 6.3.1
...
ADIOS2 build configuration:
ADIOS Version: 2.0.0
C++ Compiler : GNU 6.3.1
/usr/bin/c++
Installation prefix: /opt/adios2/2.0.0/gnu/openmpi
Features:
Library Type: shared
Build Type: Debug
Testing: ON
Build Options:
BZip2 : ON
ZFP : OFF
MPI : ON
DataMan : ON
ZeroMQ : ON
HDF5 : ON
ADIOS1 : OFF
Python : 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](http://www.bzip.org/) compression (not implemented). |
| `ADIOS2_USE_ZFP` | **`AUTO`**/``ON``/``OFF`` | Enable [ZFP](https://github.com/LLNL/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](https://www.hdfgroup.org) engine. |
| `ADIOS2_USE_ADIOS1` | **`AUTO`**/``ON``/``OFF`` | Enable the [ADIOS 1.x](https://www.olcf.ornl.gov/center-projects/adios/) engine. |
| `ADIOS2_USE_Python` | **`AUTO`**/``ON``/``OFF`` | Enable the Python >= 2.7 bindings. |
| `ADIOS2_USE_C` | **`AUTO`**/``ON``/``OFF`` | Enable the C bindings library libadios2_c.so or libadios2_c.a |
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 |
| :------------------------- | :-------------------------------------------------------: | :------------------------------------------------------------------------------------ |
| `ADIOS2_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. |
```bash
$ make -j8
```
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
```bash
$ ctest
Test project /home/chuck/Code/adios2/build
Start 1: ADIOSInterfaceWriteTest.DefineVarChar1x10
1/31 Test #1: ADIOSInterfaceWriteTest.DefineVarChar1x10 .............. Passed 0.00 sec
Start 2: ADIOSInterfaceWriteTest.DefineVarShort1x10
2/31 Test #2: ADIOSInterfaceWriteTest.DefineVarShort1x10 ............. Passed 0.00 sec
...
Start 21: HDF5WriteReadTest.ADIOS2HDF5WriteHDF5Read1D8
21/31 Test #21: HDF5WriteReadTest.ADIOS2HDF5WriteHDF5Read1D8 ........... Passed 0.01 sec
Start 22: HDF5WriteReadTest.ADIOS2HDF5WriteADIOS2HDF5Read1D8
22/31 Test #22: HDF5WriteReadTest.ADIOS2HDF5WriteADIOS2HDF5Read1D8 .....***Not Run (Disabled) 0.00 sec
Start 23: HDF5WriteReadTest.HDF5WriteADIOS2HDF5Read1D8
23/31 Test #23: HDF5WriteReadTest.HDF5WriteADIOS2HDF5Read1D8 ...........***Not Run (Disabled) 0.00 sec
...
Start 30: PythonBPWrite
30/31 Test #30: PythonBPWrite .......................................... Passed 0.12 sec
Start 31: XMLConfigTest.TwoIOs
31/31 Test #31: XMLConfigTest.TwoIOs ................................... Passed 0.01 sec
100% tests passed, 0 tests failed out of 25
Total Test time (real) = 0.29 sec
The following tests did not run:
22 - HDF5WriteReadTest.ADIOS2HDF5WriteADIOS2HDF5Read1D8 (Disabled)
23 - HDF5WriteReadTest.HDF5WriteADIOS2HDF5Read1D8 (Disabled)
25 - HDF5WriteReadTest.ADIOS2HDF5WriteADIOS2HDF5Read2D2x4 (Disabled)
26 - HDF5WriteReadTest.HDF5WriteADIOS2HDF5Read2D2x4 (Disabled)
28 - HDF5WriteReadTest.ADIOS2HDF5WriteADIOS2HDF5Read2D4x2 (Disabled)
29 - HDF5WriteReadTest.HDF5WriteADIOS2HDF5Read2D4x2 (Disabled)
$
```
6. 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.0.0/gnu/openmpi/include/adios2/ADIOSConfig.h
...
-- Installing: /opt/adios2/2.0.0/gnu/openmpi/bin/adios2-config
...
-- Installing: /opt/adios2/2.0.0/gnu/openmpi/include/adios2.h
...
-- Installing: /opt/adios2/2.0.0/gnu/openmpi/lib/libadios2.so.2.0.0
-- Installing: /opt/adios2/2.0.0/gnu/openmpi/lib/libadios2.so.2
-- Installing: /opt/adios2/2.0.0/gnu/openmpi/lib/libadios2.so
...
$
```