Writing portable software - The Golden Rules
Software meant to run on the Grid must be self-contained and compatible with the most standard Linux configuration.
Golden rules
Portable software means that:
- it must run on any machine, not only where it was compiled
- it must run from any directory, not only from the
install_dir
- inputs must be easily configurable at run time
Your software is not ready for running on the grid if any of the following apply:
- it makes use of libraries found only on your machine
- dynamically linked libraries are hardcoded with your path(s)
- requires inputs that are hardcoded with your path(s)
- is dependent on the order of libraries found in the
LD_LIBRARY_PATH
Checks
You must make sure that your software is portable by doing the following:
- it compiles on a standard Linux box (not only on your devel desktop and not only on lxplus)
- the executable and all the necessary dynamically linked libraries, config, dat files and scripts can be packed in a tarball not bigger than a few GB
- it runs on a standard Linux box after you unpack the tarball and set the linux environment (using only what's in the tarball)
- you provide easy to use config scripts to compile the code and to set things up
Dan Protopopescu - 2015-10-27