[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:
#!/bin/sh
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 $*
fi
--
More information about the Swift-user
mailing list