Doh! Stupid Programming Mistakes <humor>
smorrey at gmail.com
Thu Oct 19 13:15:25 MDT 2006
A good example of fork() is to look at Apache.
If you start up apache, you will notice there are several Apache
processes spawned. This is so that the webserver can handle each
incoming connection. Furthermore if all the idle proceses suddenly
become busy (lotsa traffic), Apache will fork off more apache
processes to handle the increased load.
Now the MPI stuff I'm looking at takes the concept even a step
further. Suppose instead of having alot of clients to serve, you
instead had alot of data to process.
OpenMPI is the Open Message Passing Interface, it is an efficient and
modern implementation of the MPI standard.
Supposed you had access to 10 physical servers, and you had a large
data matrix to process. You could split the job up into several
forks(), but the forks would only by default run on a single machine.
Enter something like OpenMosix which allows you to cluster your linux
boxes seamlessly and each fork'd process can now magically float off
to the least active node for processing.
But wait, wouldn't we be able to increase the computation speed if we
not only offloaded the compute intensive processes to the least idle
processor, but we also wrote our application so all of these forks
kinda function as one and share messages back and forth as to what is
going on and where they are in the process of computation?
Thats why the MPI stuff, at least as I see it. Combined with
OpenMosix, It allows you to implement what amounts to massively
What you are seeing in my code there is a mistake it's a message to
the Cluster to fire this code up on all available nodes and then shut
it right back down again.
On 10/19/06, Alex Esplin <alex.esplin at gmail.com> wrote:
> Thanks for the input everyone. A day that I learn something new is
> usually a pretty good day.
> Alex Esplin
> PLUG: http://plug.org, #utah on irc.freenode.net
> Unsubscribe: http://plug.org/mailman/options/plug
> Don't fear the penguin.
More information about the PLUG