|
|
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).
|
|
|
|
|
|
To build ADIOS2:
|
|
|
|
|
|
1. Clone the repository:
|
|
|
|
|
|
```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. |
|
|
|
|
|
|
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. |
|
|
|
|
|
|
4. Compile:
|
|
|
|
|
|
```bash
|
|
|
$ make -j8
|
|
|
```
|
|
|
|
|
|
5. Run tests:
|
|
|
|
|
|
```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
|
|
|
...
|
|
|
$
|
|
|
``` |
|
|
\ No newline at end of file |