[Swift-user] problem with purdue condor pool

Ben Clifford benc at hawaga.org.uk
Wed Nov 7 11:20:24 CST 2007

On Wed, 7 Nov 2007, Yuqing Deng wrote:

> They have three major different kinds machines in the pool:
> Linux/X86_64, Linux/X86_32 and WINNT51/INTEL.
> I only tested Linux/X86_64 but Linux/X86_32 should work too.
> How do I use them all?  Just give a different entry in to tc.data file
> for apps built with different OS/ARCH?
> For WINNT, I need to build the apps first.

I think that WINNT won't work because there is no Windows version of our 
worker script (libexec/wrapper.sh)

For the linux machines, there are two different ways you could go:

i) multiple-site model:

define two sites, one called purdue-64 and one called purdue-32.

for purdue-64, specify a profile entry in sites.xml that restricts that 
site to only 64 bit nodes; and for purdue-32, specify a profile entry that 
restricts that site to only 32 bit nodes.

See http://www.purdue.teragrid.org/content/view/11/25/

I think maybe something like:

<profile namespace="globus" key="condorsubmit"
value="(Requirements 'Arch=="IA64"') )" />

then specify tc.data entries with 64bit binaries for purdue-64 and 
32 bit binaries for purdue-32.

Swift will treat the 64bit and 32bit pieces of the condor pool as two 
separate sites. This will have disadvantages for rate control and file 
staging but will allow you to have some executables compiled for only 64 
bit, some for only 32 bit and some for both.

ii) one site model:

Make a script to replace each application. For example, replace myapp with 
a script that looks at the architecture and chooses which executable to 
run on. Then point your tc.data file at that script, instead of at your 
application code. Swift will send jobs to the condor pool, and when a job 
starts running on a particular worker node, the script will decide which 
is the correct executable to use.

This is better for file staging and site scoring, because it treats the 
site as one site; but means that you have to have each application 
available in both 32 and 64 bits; that may or may not be a problem, 
depending on what you are running.

Here's an example script I got from mike's home directory for choosing 
between two programs based on architecture:


ARCH_TEST=`uname -a | grep -c ia64` 

if [ $ARCH_TEST -eq 0 ]; then # i686
  /home/wilde/pegasus/src/tools/kickstart/kickstart.i686 $*
elif [ $ARCH_TEST -eq 1 ]; then # ia64
  /home/wilde/pegasus/src/tools/kickstart/kickstart.ia64 $*


More information about the Swift-user mailing list