SIONlib: Scalable I/O library for parallel access to task-local files
Installing SIONlibIn 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:
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.
% makeBuilds 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 textperforms 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 installInstalls 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/Oif 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 SIONlibThere 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.