[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Condor-users] Heterogeneous cluster : cygwin or virtual machine ?

> I have to setup a condor cluster mixing windows and linux
> and I need your expertise to choose between cygwin or a
> virtual machine or any other suggestion.
> Developpers will be working in unix and most available
> machines are windows ones. Ideally a single binary would
> work on all computers (they are all Intel machines).

> But this is only possible if we use a virtual machine to
> emulate linux on a windows machine. Or is it ? Is it
> stable ? Is it much slower ? Which vm is the most
> appropriate ? Colinux ? Virtual PC ? VMWare ? Trango ?

Running your jobs under Linux Virtual Machines is a suitable way to get
the behaviour you seek. Just a note though: a virtual machine isn't
emulating *Linux* it's running a real, honest to goodness, version of
the Linux OS inside of which your job will run. The virtual machine is
emulating *hardware* (or providing a pass through to the hardware on
your system depending on who's VM technology you use) so the OS thinks
it's running alone and doesn't know it's running in a Window within
another OS.

Which version of Linux you choose to virtualize is entirely up to you.
They'll all work with the VM solutions that Condor  supports. But you
can only choose between two virutalization server technologies: VMWare
and Xen. Those are the two Condor's VM Universe supports. See:
1. Depending on the solution you go with the performance hit is usually
in the range 2% - 30% range. It also depends on your hardware. To see
only 2% you need a VM server that provides paravirtualized drivers and
hardware that supports virtualization. Most chipsets released mid-2007
and after are okay. Some early 2007 chipsets had support. Xen and VMWare
both offer paravirtualized driver support at different price points
(both free and paid I believe).
> Another approach is to use cygwin. The same binary can't be used but
> if developpers can produce the cygwin binary on their unix machine
> by simply passing the appropriate flag to gcc, this would also be an
> interesting solution. But is there such a flag ? Googling and "maning"
> for it haven't been successful to me.

That's the theory. In my experience it's never that easy. :) I've never
been able to compile a binary for a Cygwin-enabled Windows system from
any place other than the Cygwin enabled system. And getting it to work
reliable was always a challenge. You could always make compiling on a
Cygwin-enabled system part of the job. Maybe use a DAG to compile first
for the target OS, on a targetted OS machine, and then run the jobs once
the compile job is sucessful.

Personally, having had to support Windows machines with Cygiwn on them
for many years, I'd go the VM approach. It's way cleaner. Way less to
maintain. Linux is just nicer to administer. But if you absolutely have
to run *in* Windows consider rewriting for Windows because Cygwin is
just another layer of headache in an OS that is already more pain than
should be necessary to develop with.

- Ian

Confidentiality Notice.  This message may contain information that is confidential or otherwise protected from disclosure.
If you are not the intended recipient, you are hereby notified that any use, disclosure, dissemination, distribution, 
or copying of this message, or any attachments, is strictly prohibited.  If you have received this message in error, 
please advise the sender by reply e-mail, and delete the message and any attachments.  Thank you.