Page History

Turn Off History

Creating a personal Condor from your own build of Condor or from prebuilt binaries

Building Condor

Note this section is optional -- if you are on a CSL machine, you can skip to the "Settting up your Personal Condor" section

Pretend you have your build in /scratch/roy/v66. Pretend you have you want to set up a personal Condor in /scratch/roy/personal-condor. Substitute pathnames appropriately.

First, build Condor as described in here. After you run make, do "make install" (note: in older versions of the code, this used to be "make release"). You'll find that you have a new directory /scratch/roy/v66/release_dir, and if you look inside it, you will see something like:

> ls /scratch/roy/v66/release_dir/
bin/  include/  lib/  man/  sbin/  src/
This is very similar to what a Condor installation has in it. Note that if you have a version of condor 7.5.5 or later, do not do the "make release" command.

Setting up your Personal Condor

There are lots of ways to set up a personal Condor: I'll show you one way. You want to set up your PATH to point at the bin and sbin directories in your release directory. You want to set CONDOR_CONFIG to point at a condor_config file. You want to edit your condor_config file appropriately. Here is what I do:

Make a link to your release directory

cd /scratch/roy/personal-condor
ln -s /scratch/roy/v66/src/release_dir .
With the new build system using cmake, you will want to remove the src/ part of the path in the above ln command, (for versions of Condor later than 7.5.5.)

Or, if you want to use the pre-built binaries in the CS pool, the release directory is in "/unsup/condor", and you don't need to make the subdirectories below.

Make some directories for Condor

mkdir execute
mkdir log
mkdir spool

Set up your environment

This commands are for tcsh: you'll need to edit them for bash.
cat > setup
setenv PATH /scratch/roy/personal-condor/release_dir/bin:${PATH}
setenv PATH /scratch/roy/personal-condor/release_dir/sbin:${PATH}
setenv CONDOR_CONFIG /scratch/roy/personal-condor/condor_config
(control-d)
When you do source setup your environment will be set up for your personal Condor.

Create your Condor configuration file

cp /scratch/roy/v66/src/condor_examples/condor_config.generic condor_config
touch condor_config.local
Now you need to edit your condor_config file. Search for the following configuration variables, and set them as follows (using the correct pathnames and email address for you):
CONDOR_HOST             = $(FULL_HOSTNAME)
RELEASE_DIR             = /scratch/roy/personal-condor/release_dir
LOCAL_DIR               = /scratch/roy/personal-condor
LOCAL_CONFIG_FILE       = $(LOCAL_DIR)/condor_config.local
CONDOR_ADMIN            = your-email@cs.wisc.edu
UID_DOMAIN              = $(FULL_HOSTNAME)
FILESYSTEM_DOMAIN       = $(FULL_HOSTNAME)

COLLECTOR_HOST  = $(CONDOR_HOST):11000
# Not necessary for late versions of condor
NEGOTIATOR_HOST = $(CONDOR_HOST):11001

WANT_SUSPEND            = $(TESTINGMODE_WANT_SUSPEND)
WANT_VACATE             = $(TESTINGMODE_WANT_VACATE)
START                   = $(TESTINGMODE_START)
SUSPEND                 = $(TESTINGMODE_SUSPEND)
CONTINUE                = $(TESTINGMODE_CONTINUE)
PREEMPT                 = $(TESTINGMODE_PREEMPT)
KILL                    = $(TESTINGMODE_KILL)
PERIODIC_CHECKPOINT     = $(TESTINGMODE_PERIODIC_CHECKPOINT)
PREEMPTION_REQUIREMENTS = $(TESTINGMODE_PREEMPTION_REQUIREMENTS)
PREEMPTION_RANK         = $(TESTINGMODE_PREEMPTION_RANK)

DAEMON_LIST             = MASTER, STARTD, SCHEDD, COLLECTOR, NEGOTIATOR
Note: Pick different numbers for the COLLECTOR_HOST and the NEGOTIATOR_HOST. These are port numbers, and each personal Condor running on a machine needs to have different ports. Probably randomly picking numbers that are greater than 1024 will be sufficient.

This looks like a lot of things to edit. Why is it so hard? Well, our installation script normally sets things up for you, but because you are using a build environment, it is harder to use the installation script. Also, it is useful for you to be familiar with these settings, so you understand better how Condor works.

Run Condor

First, make sure that you will run the correct Condor. Which should tell you the one you expect to see:

> source setup
> which condor_master
/scratch/roy/personal-condor/release_dir/sbin/condor_master
Then run condor_master:
condor_master
Wait a second, and make sure that everything is running:
ps -x | grep condor
When you are done with your personal Condor, you can kill it with:
condor_off -master

Advanced configuration and problem solving

If you are debugging a daemon, you may want to have additional debugging information. For instance, if you are debugging the collector, you can edit COLLECTOR_DEBUG. For instance, you might do:

COLLECTOR_DEBUG = D_FULLDEBUG D_PROTOCOL
Note that this set up described above is rather nice for working with different versions of Condor. Just change the link to the release directory, and you can test a different version of Condor.