Skip to content
Snippets Groups Projects
user avatar
williamfgc authored
Solve Issue #171, bug when using threaded operations
7755a976
History

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
  • examples - ADIOS Examples
  • include - Public header files
  • scripts - Project maintenance and development scripts
  • source - Main ADIOS source
  • testing - Tests

Getting Started

ADIOS 2.0 uses CMake for it's 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 ADIOS:

  1. Clone the repository:

    $ mkdir ADIOS2
    $ cd ADIOS2
    $ git clone https://github.com/ornladios/adios2.git source
  2. Create a separate build directory:

    $ mkdir build
  3. Configure the project with CMake. The following options can be specified as ON or OFF with cmake's -DVAR=VALUE syntax, where VAR options are:

    • ADIOS_BUILD_SHARED_LIBS - Build shared libraries (OFF for static)
    • ADIOS_BUILD_EXAMPLES - Build examples
    • ADIOS_BUILD_TESTING - Build test code
    • ADIOS_USE_MPI - Enable MPI
    • ADIOS_USE_BZip2 - Enable BZip2 compression
    • ADIOS_USE_ZFP - Enable ZFP compression
    • ADIOS_USE_ADIOS1 - Enable the ADIOS 1.x engine
    • ADIOS_USE_DataMan - Enable the DataMan engine for WAN transports
    • ADIOS_USE_Python - Enable the Python bindings

    Important, automatic discovery: ADIOS 2.0 CMake has an AUTO discovery "ON" default option. If a certain dependency is found in the system installation path (e.g. /usr/), not a custom one (e.g. /home , /opt ) it will turn on installation for that dependency automatically

    In addition, the -DCMAKE_VAR frequent options can be selected: * CMAKE_INSTALL_PREFIX - Prefix location for installation with make install, default depends on system (e.g. /usr/local) * CMAKE_BUILD_TYPE - Debug (default, debugging symbols), or Release (compiler optimizations)

    Example:

    $ cd build
    $ cmake -DADIOS_USE_MPI=ON -DADIOS_USE_BZip2=ON -DCMAKE_BUILD_TYPE=Debug ../ADIOS2
    -- The C compiler identification is GNU 6.3.1
    -- The CXX compiler identification is GNU 6.3.1
    -- Check for working C compiler: /usr/bin/cc
    -- Check for working C compiler: /usr/bin/cc -- works
    -- Detecting C compiler ABI info
    -- Detecting C compiler ABI info - done
    -- Detecting C compile features
    -- Detecting C compile features - done
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Detecting CXX compile features
    -- Detecting CXX compile features - done
    -- Found BZip2: /usr/lib64/libbz2.so (found version "1.0.6") 
    -- Looking for BZ2_bzCompressInit
    -- Looking for BZ2_bzCompressInit - found
    
    ADIOS2 build configuration:
      C++ Compiler: GNU 6.3.1 
      /usr/bin/c++
    
      Installation prefix: /usr/local
      Features:
        Library Type: shared
        Build Type:   Debug
        Testing: ON
        MPI:     OFF
        BZip2:   ON
        ADIOS1:  OFF
        DataMan: OFF
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /path/to/adios/build
    $

    You can also use CMake's curses-base UI with ccmake ../source.

  4. Compile:

    $ make -j8
  5. Run tests:

    $ make test

Developers

To summit changes to ADIOS 2.0: please see the wiki https://github.com/ornladios/ADIOS2/wiki Contributing to ADIOS section, or the local Contributors Guide.