Preparing an Executable to Run on the Grid
- Compile and link your program (and all libraries on which it depends) on a machine running under Scientific Linux 4.
Use a tool such as ldd to find out on which shared libraries your executable depends. Some belong to the operating system and should also be available on the worker node, others have to be shipped along with the executable. Set the LD_LIBRARY_PATH on the worker node so that the shared libraries can be found, or compile your executable with a special RPATH setting such as ./lib. You may also consider to link your executable statically (without shared libraries), but fiddling around with the makefiles will probably take you more time than just putting all shared libraries in a large tarball.
You can in principle also ship the source code to the worker node and compile it there, but there should hardly be any need to do so.
Some sites may have 64-bit machines as worker nodes. Note that the GLUE attribute GlueHostArchitecturePlatformType may not be set properly for all Computing Elements.
Most Grid resources are currently running under Scientific Linux 4. The old Computing Elements grid-ce0.desy.de, grid-ce1.desy.de, and grid-ce2.desy.de (all SL3) have ceased to exist and have been transformed into grid-ce3.desy.de (SL4). The new Computing Element grid-ce5.desy.de will run under Scientific Linux 5. It has started test operation in July 2009, and the available resources will be transferred to the new CE (and upgraded to SL5) by September 2009. Then, grid-ce3.desy.de will be shut down as well.
Use flcsl4.desy.de or sld4pub.desy.de to check whether your software runs under SL4 – or even better, go to your group administrator and have your desktop computer upgraded to SL4 (or even SL5, for the daring). The GOC Wiki tells you how to ask for a specific operating system version in the Requirements of your JDL file.