SIONlib: Scalable I/O library for parallel access to task-local files

Installing SIONlib

In the package root directory, run "./configure [options]".
The following options are available:

--prefix=DIR
    Specify full pathname of the directory, where the toolset package should be
    installed. Default: ./install/

On systems where multiple MPI libraries and compilers might be available, it
might be necessary to specify which of the MPI libraries or compilers to use.
In this case, configure will tell you which versions it found and how to
specify the desired choice: configure currently can only do this on Linux
systems.

configure creates a "build configuration" for each unique platform and stores
it in a subdirectory "build-###" where ### describes the attributes needed
(e.g., operating system, MPI version, compiler) to define the platform. See the
output of "configure" for the name of your build configuration.

If your system (IBM Blue Gene, Cray XT, etc.) is used through extra compilation
front-end nodes and building executables is done by cross-compilation, you need
to build and install a cross-instrumentation version of the toolset. Normally
configure should recognize this automatically.

Next, change your current working directory to the build configuration
subdirectory

    % cd build-###

As all of the following text is referring to files and commands executed inside
the build configuration subdirectory. Modify Makefile Definition File
(Makefile.defs) if necessary.

    % make

Builds all of the tools and libraries. Make sure to have Qt's qmake on your
PATH (or configured an absolute path using "--with-qmake=") if building the
graphical user interface was enabled during configuration.

    % make text

performs serial and parallel test of SIONlib. Please run in in an environment
where mopiexec can run immediately. The command can be changed in the Makefile
Definition File.

    % make install

Installs tools, libraries, include files, documentation and examples in $
(PREFIX). The installation of sionlib builds a number of libraries. There is
installed a script called sionconfig which output for each combination of
option correct option for compiling (--cflags) or linking (--libs):

usage: sionconfig
     (--com|--ser|--omp|--mpi|--ompi|--gen)
     (--cflags|--libs|--path)
     [--32|--64]
     [--be] [--fe] [--mic]
     [--c|--f77|--f90|--cxx]
     [-V|--version|-h]
    [-gcc]

Example:

  LDFLAGS += `../../bin/sionconfig --libs --mpi -be`
  CFLAGS += `../../bin/sionconfig --cflags --mpi -be`

Debugging SIONlib I/O

if SIONlib is compiled with -DSION_DEBUG the library supports debugging of
SIONlib related I/O events. There are four environment variables steering
SIONlib debugging:

SION_DEBUG=file
    enables debugging, debug messages will be written to file. stdout or stderr
    ae also possible.
SION_DEBUG_MASK=mask
    sets binary mask for selecting debug messages. The mask works bitwise,
    following debugging messages levels could be selected, by adding level to
    mask:

    1   sion user function entries and exits
    2   sion internal function entries and exits
    8   high frequently called sion user function entries and exits
        (sion_feof, sion_ensure_free_space, ...)
    16  high frequently called sion user function entries and exits (internal
        steps)
    32  high frequently called sion internal function (internal steps)
    128 timings (top level)
    256 timings (low level)
    512 Scalasca elg-lib
    1024
        Compression gz-lib
    2048
        higher frequently called sion internal function (internal steps)

SION_DEBUG_RANK1=rank
    selects first rank of parallel program for printing debug messages. Rank
    number will be appended to filename specified in SION_DEBUG.
SION_DEBUG_RANK2=rank
    selects second rank of parallel program for printing debug messages. Rank
    number will be appended to filename specified in SION_DEBUG.

Error messages of SIONlib

There are different level of error message levels (SION_ERROR_RETURN,
SION_ERROR_WARN, SION_ERROR_ABORT, SION_ERROR_UNKNOWN). Depending on the level
a warning message will be printed, the corresponding call will be returned with
0 or negative return code, or the program will be aborted. To limit the
messages to one rank of a parallel program following environment variable could
be set:

SION_ERROR_MSG_RANK=rank
    selects one rank of parallel program for printing warning/error messages.

