Condor: Choose a Universe
A Universe in Condor defines an execution environment. You can state which Universe to use for each job in a submit-description file when the job is submitted. CAE's installation of Condor Version 8.0.5 supports three different program Universes for user jobs:
Use the Java Universe if you are using Java.
Use the Standard Universe if you need checkpointing or remote file I/O and you:
- You have C or FORTRAN source code for the program you want to run
- The code does not use:
- Process creation or inter-process communication (fork(2), exec(2), system(3), popen(3))
- Shared or mapped memory (mmap(2), munmap(2))
- Self-scheduling (alarm(2), sleep(3C), getitimer(2))
- Kernel level threads
- Long periods of network communication OR the signals SIGUSR2 or SIGTSTP
If you are unsure which universe you want, it is likely you want to use the vanilla universe.
If you have unlinked object code (generally in the form of .o files or static .a libraries) but not source code, you may still be able to use the Standard Universe if the code follows the conventions listed above. The easiest way to test this is just to try it out; if condor_compile fails or Condor jobs are terminated with log messages indicating that they cannot run in the Standard Universe, you must use the Vanilla Universe.
If you think you can use the Standard Universe, read how to use condor_compile. If you need to use the Vanilla or Java Universe, read how to create a submit file.
If you need more technical information on when to use each Universe, Section 1.4 of the Condor User's Manual describes exactly what can cause a job to be unable to checkpoint, forcing you to use the Vanilla Universe.