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

Installing SIONlib

The source code of sionlib is in the directory ./src of the sion tar package. There are also serveral Makefiles for the different platform supported by sionlib.
The installation of sionlib builds (at least) two libraries:
libsion.a
the parallel libraries currently supporting MPI
libsionser.a
serial version of sionlib containing all function for the serial API of sionlib
It install also the parallel test program partest and the tree utilities siondump, sionsplit and siondefrag.

On platforms where the frontend node and computer has a different architecture a more complex build process is nedded due to limitation that the serial library and the (serial) utilities has to be compiled for the frontend node and the parallel library and the parallel test tool for the compute node. One example for such a platform is Blue Gene/P.

The Makefiles includes a definition section from Makefile_$(TYPE).defs . Usually it is only needed to adjust specifications in this files: e.g. INSTDIR=../install/sionlib (Installation dir) CC, F90, ... Compiler specifications
($TYPE -> see platform dependent description)

Platform Linux:

Files: Makefile_LINUX, Makefile_LINUX.defs
   > cd ./src;
   > edit Makefile_LINUX.defs and adapt parameters
   > gmake -f Makefile_LINUX 
   > gmake -f Makefile_LINUX install
The default installation directory is ../install/sionlib_linux

Platform Blue Gene/P:

Makefiles: Makefile_BE, Makefile_FE, Makefile_FEgcc
Configfiles: Makefile_BGP.defs, Makefile_BGP_FE.defs, Makefile_BGP_FEgcc.defs
   > cd ./src;
   > edit Makefile_*.defs and adapt parameters
Backend
   > gmake -f Makefile_BE 
   > gmake -f Makefile_BE install
   > gmake -f Makefile_BE clean
default installation directory is ../install/sionlib_bgp
files: libsion.a, libsionser.a
Frontend
   > gmake -f Makefile_FE 
   > gmake -f Makefile_FE install
   > gmake -f Makefile_FE clean
default installation directory is ../install/sionlib_bgp
files: libsionfe.a, libsionserfe.a
Frontend (gcc compiler)
   > gmake -f Makefile_FEgcc 
   > gmake -f Makefile_FEgcc install
   > gmake -f Makefile_FEgcc clean
default installation directory: ../install/sionlib_bgp
files: libsionfegcc.a, libsionserfegcc.a

Platform XT4:

Makefiles: Makefile_XT, Makefile_XT_FE
Configfiles: Makefile_XT.defs, Makefile_XT_FE.defs
   > cd ./src;
   > edit Makefile_*.defs and adapt parameters
Backend
   > gmake -f Makefile_BE 
   > gmake -f Makefile_XT install
   > gmake -f Makefile_XT clean
default installation directory is ../install/sionlib_bgp
files: libsion.a, libsionser.a
Frontend
   > gmake -f Makefile_XT_FE 
   > gmake -f Makefile_XT_FE install
   > gmake -f Makefile_XT_FE clean
default installation directory is ../install/sionlib_bgp
files: libsionfe.a, libsionserfe.a

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.