Skip to content
Snippets Groups Projects
user avatar
wgodoy authored
Checking std::ios_base::failure exceptions
IOChrono is off by default, each owner turns it on explicitly
Modified FileDescriptor and FilePointer destructors
Added Tests BPWriteRead for stdio and fstream
Removed IO AddTransport with vector (shoud have been there?) to enable
AddTransport in Tests
16aa78c9
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.