From: Anders Jorgensen <ajorg@lanl.gov>
Newsgroups: comp.parallel.pvm
Subject: Re: pvm vs. mpi
Date: Wed, 12 May 1999 14:38:55 -0600
Organization: Los Alamos National Laboratory
Message-Id: <3739E6DF.40F60164@lanl.gov>
References: <3736D96A.41C6@physik.uni-karlsruhe.de>
    <37374E2B.9CBD6C79@lanl.gov> <3737D1D2.CF54E42F@ti.uni-mannheim.de>
Reply-To: anders.jorgensen.1998@alum.bu.edu
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Xref: ukc comp.parallel.pvm:8372


Uh oh.. I'm starting a thread here.. but I just can't help it.

Lars Rzymianowicz wrote:
> 
> Anders Jorgensen wrote:
> > 1) PVM can operate across multiple architectures, automatically
> > converting data format when sending between different architectures.
> 
> So does MPI. At least you can run your app on a heterogeneous cluster.
> There are also functions for data conversion, but i'm not 100% sure, if
> they are called automatically...
> 
> > 2) PVM is fault tolerant. If a node goes down, or a job dies, the PVM
> > system will detect it, and notify your program.
> 
> Nah, the term "fault tolerant" is a bit misused here. MPI will also
> "detect" a process failure by just hanging or stoping...so does PVM.
> "Fault Tolerance" would mean that another process is started
> automatically and takes over. But neither of them is able to do this.
> 

Again with out intending any flame, I beg to differ. I mentioned it will
notify your program. You have to take care of handling that error, but
that is a different matter. However that mere action is miles beyond
what MPI does. If you are running on a non-dedicated cluster, then PVM
is absolutely essential, since you have no control over the different
machines in the cluster. I know on my network, reboots etc. happen many
times a day, running on about 120 machines. If the machines are
dedicated and under your control, and you have a reliable network, then
MPI is probably fine. But PVM is really a "grassroots" (or socialist :-)
parallel system in the way that resources can be shared on an
"as-available" basis. The nice thing is that it will run huge apps with
a very limited hardware investment, whereas MPI almost requires a huge
hardware investment aswell - because of the need for dedicated
hardware.. PVM may be cheap, but that doesn't mean it's a toy. If you
are doing process-farming like stuff (which I do), PVM is ideal. If you
are doing heavy duty communication in a matrix, and you have reliable
hardware, then MPI is probably best.

OK.. just to avoid starting a war here, I won't discuss this any further
(at least not in relation to this thread :-).
                           ---anders

