link to homepage

Institute for Advanced Simulation (IAS)

Navigation and service

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:
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 
     [--be] [--fe] [--mic]
  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:
enables debugging, debug messages will be written to file. stdout or stderr ae also possible.
sets binary mask for selecting debug messages. The mask works bitwise, following debugging messages levels could be selected, by adding level to mask:
sion user function entries and exits
sion internal function entries and exits
high frequently called sion user function entries and exits
(sion_feof, sion_ensure_free_space, ...)
high frequently called sion user function entries and exits (internal steps)
high frequently called sion internal function (internal steps)
timings (top level)
timings (low level)
Scalasca elg-lib
Compression gz-lib
higher frequently called sion internal function (internal steps)
selects first rank of parallel program for printing debug messages. Rank number will be appended to filename specified in SION_DEBUG.
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:
selects one rank of parallel program for printing warning/error messages.