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.