noEMA wrote:
> On Fri, 12 May 2006 13:47:51 -0700, bsd_mike wrote:
>
> >
> >
> > Hello,
> > I have no experience with clusters, but I need to prepare a short
> > presentation on
> > them.
> >
> > There is a ton of info out there on how to make a linux cluster, beowulf,
> > open Mosix,
> > knoppix, etc. There seems to be info on performance, costs, etc, as
> > well.
> >
> > I was wondering though if anybody could offer an opinion on practical
> > applications
> > for clusters.
> >
> > I have heard of clusters calculating primes and other mathematical feats
> > of strength.
> >
> > Can you just throw a cluster together and have everything work faster?
> >
> > What are some applications that cry out for a cluster?
> >
> > Thanks,
> > Mike
>
> Hi.
>
> Clusters can do wonder for you or can be expensive useless bricks.
>
> It depend on the problems you are trying to solve.
> Some problems can be solved faster by splitting them between may machines.
>
> Examples : A weather simulation can be split : each computers nodes
> calculate the values for it's own little cube of atmosphere.
I second that. Weather modeling is a very good application of clusters
where each processor takes up a set of parameters and runs the process
finally reporting back to the mother-node when finished. Protein/Gene
manipulation or comparision is another where there could be a set of
amino acids that we want to use for comparision in a set of proteins
(many sets compared to many other sets). This can be done by
distributing tasks to other processors, who independently work things
out and report back.
Another application is to get multiplication tables for prime numbers
between 1-10000. Mother node gets the prime numbers one after the other
and assigns it to different processors.
> But some problems cannot be separated. If each step of the calculations is
> required to prepare for the next step, then this problem is not going to
> be solved any faster by a cluster.
Yes, I think that is right. But again, if we write programs in a manner
that partial results can be used for processing with reliability -or-
if processes "know" how to wait for dependent results, we could still
make the whole process faster. For example, problem A has several ways
of being solved. We send each solution A1-A100 to different processors
but each solution has to wait for a calculation in-between. We can
write programs such that solutions wait till this intermediate
calculation is obtained. As soon as it appears, A1-A100 start working
again till the end. Some may output faster than the others, but still
its possible to speed up processing. That needs a lot of thinking and
coding, though.
> So no, some problems are not going to be solved faster on a cluster
> solution.
True, some problems wont work any faster on a cluster. For example,
find prime numbers between 1-500. Better is it to process it on a
single machine.
> Load balancing can be another.
> Ex : Google : There is not a single computer powerful enough to re-index
> the Google index of the web pages of the Internet. So each computer in a
> Google cluster can do it's own re-indexing.
Thats a good example. I never thought about that. Everyday there's more
to learn.
noEMA had some really good points and hope the discussion guided you in
a proper direction.
Chirag Shukla
|