[Beowulf] Re: Cluster newbie, power recommendations
Robert G. Brown
rgb at phy.duke.edu
Tue Mar 21 10:13:12 PST 2006
On Tue, 21 Mar 2006, David Mathog wrote:
> I wonder if one couldn't set up a single modern computer,
> with a fast CPU and tons of memory, as N virtual machines, for
> instance using VMware, and then run a sort of virtual cluster?
> Obviously there wouldn't be any performance advantage to doing
> this but it might allow the subject to be taught when a real
> clusters isn't available.
> Seems doable. Maybe even worth doing so that this subject could
> be more easily taught.
I agree, sort of, except that vmware is expensive and introduces
nonlinearities of its own into the simulation that are likely to be
"different" from the nonlinearities of a real parallel system.
I did something a BIT like this in one of my CWM articles. I used perl
and threads (yes, perl now has threads) to write a very, very poor man's
task distribution shell that farmed out N copies of a "task" to N
machines, then collected the results. The task was "generating random
numbers", and because this of course generally does NOT scale well as
the compute to communication ratio is too low, I put in an adjustable
(sleep) delay per rand returned, making them cost "more cpu" on the
nodes relative to communication via ssh back to the controlling perl
script. Fiddle with it a bit, and you can generate curves that
demonstrate scaling very nicely.
I discovered that it really didn't matter if the tasks were distributed
on more real nodes or sshd many times to the master node. The sleep
introduced "parallel delays" by permitting the threads to advance
independently with ms resolution or thereabouts. Alas, I couldn't
exactly control the network speed as easily, but...
...this is a good way to think about doing this in general. A hack of
my original script would fork off N threads on a SINGLE host, and would
introduce a set of parameters that basically permit one to adjust the
computational granularity and the compute:communicate time ratios. This
still wouldn't reproduce the nonlinearities of a real parallel process
perfectly -- no cache effects, no latency vs bandwidth (at least not
without further hacking and a rescaling of time), no memory I/O binding
-- but it certainly suffices to show the general properties of scaling
curves and how they depend on e.g. serial vs parallel fractions and the
compute:communication ratios. Makes decent graphs of same, with a bit
I've still got the code around if anybody wants it -- it might be up on
the Monkey website as well -- the article is there I'm pretty sure but
Doug was going to work out a way of posting the supporting scriptware
and I don't know if he ever did that. Doug?
Robert G. Brown http://www.phy.duke.edu/~rgb/
Duke University Dept. of Physics, Box 90305
Durham, N.C. 27708-0305
Phone: 1-919-660-2567 Fax: 919-660-2525 email:rgb at phy.duke.edu
More information about the Beowulf