[ Editors note: the tr975.ps paper is available here at this site in
/parallel/papers/surveys/par-prog-workstation-clusters.ps.Z
djb1
]
Newsgroups: comp.parallel
From: Zhe Li
Subject: PVM vs. Linda Summary
Organization: Yale University, Department of Computer Science, New Haven, CT
Date: 31 Jan 1994 11:24:37 -0500
Weeks ago I posted the above inquiry in the net and got some very good
responses. The editted summary is attached below. Special thanks to people
who gave pointers on the subject and carried out further discussions.
Cheers!
/Jay Li
------------------ cut here ---------------
From: douglas-craig@CS.YALE.EDU (Craig Douglas)
To: li@ground.cs.columbia.edu
Subject: Re: PVM vs. Linda
Hi,
Try pub/tr975.ps on casper.cs.yale.edu. Ease of use might be answered in
the paper, but probably not. I have recently used an implementation of
MPI which will become the de facto message passing standard soon. It was
easy to learn, did everything I wanted, and will exist on every companies'
computers shortly. I believe a public domain library exists on netlib.
I have to admit no fondness for pvm. I find it a real pain to use. C-Linda
is expensive, but easy to use. Glenda, which is C-Linda knockoff from
Mississippi State is nice and the price is right (free). Look at MPI before
deciding between PVM and Linda.
Regards,
Craig Douglas
From: rfinch@water.ca.gov
To: Zhe Li
In-Reply-To: Zhe Li's message of Tue, 4 Jan 1994 14:22:53 GMT
Subject: PVM vs. C-linda
I'm interested in what you find. A few years ago I parallelized a
calibration program using ISIS; at that time the supported version of
ISIS was PD, but now it is commercial. Good software though. I would
also consider Express.
From: Ron Kerr
Subject: Re: Comparison of Linda and PVM
In-Reply-To: <199401041209.MAA23497@eata.ncl.ac.uk>
You guys have recently sent similar postings to comp.parallel.pvm.
We, our university Computing Service, have been using Network Linda off
and on for almost a year. At the same time, our theoretical physicists
have been using PVM. In order to be able to give advice on the relative
merits of these two, last autumn I asked one of my colleagues to produce a
report comparing them. If you wish, I can e-mail you a copy of this. It is
written in rather an informal style and I am currently revising it into a
form better suited for others' eyes. Because of the time available, the
report is probably nothing like as exhaustive as it could be but it may
give you a few pointers.
Apart from the above report, again for comparison purposes, I have been
converting a Linda program into PVM and have formed a few impressions of
my own.
As a rather old programmer with a hopefully modern outlook on software
construction, I find Linda much more comfortable to work with. Linda
represents a parallel programming model in which I have so far found it
quite easy to describe parallel computations. The emphasis is fairly high
level concentrating on the computational interaction between concurrent
components in terms of the tasks to be undertaken and how they are
synchronised.
PVM does not represent a parallel programming model as such but is a set
of fairly low-level tools (subroutines) addressing the mechanics of
passing messages between processes. As such, it forces on the user a much
more mechanistic view of the parallelism rather than the higher level
semantics of the computation.
In distributing a computation over co-operating processes, Linda is
concerned primarily with the identification of data which needs to be
shared or communicated. The Linda compilation system uses a preprocessor
which uses data identity to deduce the lower level details of data types
etc. and to construct automatically the messages which need to be
communicated between processes. In contrast, PVM depends upon the
programmer specifying not only the identity of data but details of data
representations. Message buffers need to be initialised, packed/unpacked
and transmitted explicitly. This is very error-prone both in the early
stages of development and later when it may be necessary to alter
representations and consequently locate all references to the data
concerned. Moreover, this attention to low-level detail makes PVM very
verbose compared to Linda.
PVM seems to be concerned more with where tasks are performed rather than
with what needs to be done. In some situations this can be rather an
impediment to ones logical view of the computation. On the other hand, the
location of a particular sub-computation may be important and PVM permits
firm control over that. Linda is more concerned with the logical structure
of the computation and forcing a sub-computation on to a particular host
needs an unnatural element of contrivance.
There is probably nothing that one system can do that the other can't.
However, I am getting the impression that it is much easier to convert PVM
into Linda than the other way round. This would indicate that Linda is
inherently a much more expressive vehicle for ones intuitive perception of
computational structure. In simple situations this may not be important
but, since parallel programming is notoriously difficult, Linda's
programming model may be particularly advantageous in more complex
scenarios.
We use SCA's (Scientific Computing Associates) implementation of Linda on
workstation clusters. This comes with an excellent X-based visual
debugging system. This enables dynamic visualisation of the distributed
computation and it has been our experience that this has been
indispensible in locating synchronisation errors. Program execution can be
controlled at the high-level Linda synchronisation/communication level as
well as at the detailed statement level (through integration with host
debuggers, e.g. dbx). There is also a powerful postmortem analyser. I
don't think PVM is as well-equipped for debugging. The importance of
debugging facilities for parallel programs cannot be over-stressed.
On the other hand, associated with PVM is HeNCE, a graphical system for
composing parallel programs. I have only seen a simple demo of this so
although this seems an ideal way of specifying the logical parallelism I
have no idea how well it copes with complicated computational topologies.
I have no hard details of relative performance of PVM and Linda other than
that I think they are comparable. I suspect that comparisons in which a
program in one system is systematically translated into the other may
yield false information since the differences in programming model may
have important implications for synchronisation and the quantity of data
communicated. Last year, Yale produced the report "Parallel Programming
Systems for Workstation Clusters" (Douglas, Mattson & Schultz) which you
might care to read.
In using these systems on workstation clusters you need to be aware of the
implications parallel computations have on other users, in terms of both
CPU effects and network traffic. Here, PVM and Linda are used on public
workstations and at times this has caused significant interference
problems. PVM, being public domain can be installed by anyone and used to
run parallel computations on an unlimited number of workstations. (On one
occasion we observed 173 processes executing on 65 workstations spread
over several ethernet segments.) Linda could have similar effects but
since SCA's licence locks us into a fixed number of identified machines,
it is harder for the situation to get totally out of hand. Whether you
used shared or dedicated workstations may be extremely important.
In the context of interference, there is a Linda variant called Piranha
which is designed to address this problem. Piranha processes advance and
retreat according to other concurrent use of the workstation. I am
currently trying to convert a regular Linda program into Piranha and I get
the impression that the Piranha programming is much less expressive than
Linda. I don't know whether PVM has a handle on the interference problem.
I hope some of this is useful. Let me know if you want a copy of the
report I mention at the beginning. I would be very interested to see any
other comparative information you acquire.
Cheers....Ron
------------------------------------------------------------------------
Ron Kerr, Computing Service, Newcastle University, NE1 7RU, England.
Tel. +44 91 222 8187 Fax. +44 91 222 8765
------------------------------------------------------------------------
From: cagan@CERES.SCA.COM
Subject: your net posting regarding Linda
To: li@ground.cs.columbia.edu
Jay--
I'd be happy to send you an information packet on our
Linda environments, including a couple of items that directly
address a number of your questions regarding Linda as contrasted
with message passing. Please send me your full U.S. mail address,
and we'll get it out to you this week.
Regards,
--Leigh Cagan
-------
From: sherman@sca.com (Andrew H. Sherman)
To: Zhe Li
Subject: Re: PVM vs. C-linda
Organization: Scientific Computing Associates, Inc.
There are a number of articles on this available from the CS folks at Yale
--- you might contact Nick Carriero (carriero@cs.yale.edu). In addition,
you might check out the article I wrote with Leigh Cagan in the December
issue of IEEE Spectrum. That addresses a number of issues, including most
of the ones you list.
Let me know if you need additional information.
--
********************************************************************
Dr. Andrew H. Sherman
Vice President, Technology
SCIENTIFIC Computing Associates, Inc.
One Century Tower, 265 Church Street, New Haven, CT 06510-7010
Email: sherman@sca.com * Phone:(203)777-7442 * Fax:(203)776-4074
********************************************************************
From: Heng Kek
To: li@ground.cs.columbia.edu (Zhe Li)
Subject: Re: PVM vs. C-linda
Hi, I'd be grateful if you could summarise if you get enough
positive responses. Otherwise, there is one paper which compares
the various parallel programming packages. The details:
PARALLEL PROGRAMMING SYSTEMS FOR WORKSTATION CLUSTERS
-Craig C. Douglas, Timothy G. Mattson and Martin H. Schultz
ftp'able from casper.na.cs.yale.edu.
Sorry I don't remember the filename, but I'm sure you'll be able to
guess it. The paper compares the major packages: pvm, c-linda, p4,
posybl, tcgmsg.
From: ZDV153%DJUKFA11@CUVMB.CC.columbia.edu
Organization: Forschungszentrum Juelich GmbH
Subject: Re: PVM vs. C-linda
To: li@ground.cs.columbia.edu
Hi .........
I wrote a report (warning: german language) about parallel processing
on workstation cluster with Express and Network Linda. It is full with
graphics, so you can understand most of it with little german knowledge.
I can send you the report (400 KB compressed PostScript ), if you want.
You can compare pvm with the host-node-programming-model
of Express (Express has two models: host-node and cubix, cubix provides
I/O via a generic host ). The most important differences between message
passing and Linda are :
- Linda is easy to learn (only four commands)
- dynamic load balancing is great with Linda
- Linda has more overhead than message passing
Joerg
From: Rusty Lusk
To: Zhe Li
Subject: Re: PVM vs. C-linda
In article <1994Jan4.142253.1056@hubcap.clemson.edu> you write:
>
>Hi world:
>
>I am in the process of choosing a parallel processing toolkit to perform a
>data intensive computations (e.g., heavy inter-host communication) as part of
>my PHD thesis work. I playe around with PVM but have not gained any
>experience with C-linda yet. Could anyone share some hands-on experience
You might also be interested in p4. I enclose a blurb.
Regards,
Rusty Lusk
p4
p4 is a library of macros and subroutines developed at Argonne National
Laboratory for programming a variety of parallel machines in C and Fortran.
Its predecessor was the m4-based "Argonne macros" system described in the
Holt, Rinehart, and Winston book "Portable Programs for Parallel Processors,
by Lusk, Overbeek, et al., from which p4 takes its name. The current p4
system maintains the same basic computational models described there (monitors
for the shared-memory model, message-passing for the distributed-memory model,
and support for combining the two models) while significantly increasing ease
and flexibility of use.
The current release is version 1.3. Features include:
+ library of useful monitors for shared-memory programming
+ portable monitor-building primitives
+ send/receive for shared-memory, distributed memory, and clusters
+ support for heterogeneous computing
+ Emacs info version of the manual for on-line help
+ Shared-memory programming even on uniprocessor workstations
+ instrumentation for automatic logging/tracing
+ Either automatic or user-controlled buffer-pool management
+ Remote startup; no daemons necessary
+ optional secure server for faster startup on networks
+ optional automatic logging of events for upshot tracing
+ asynchronous communication of large messages
+ global operations (broadcast, global sum, max, etc.)
+ both master-slave and SPMD models for message-passing programs
p4 is intended to be portable, simple to install and use, and efficient. It
can be used to program networks of workstations, distributed-memory parallel
supercomputers like the Intel Paragon, the Thinking Machines CM-5, and the IBM
SP-1, as well as shared-memory multiprocessors like the Kendall Square. It
has currently been installed on the following list of machines: Sequent
Symmetry (Dynix and PTX), Convex, Encore Multimax, Alliant FX/8, FX/800, and
FX/2800, Cray X/MP, Sun (SunOS and Solaris), NeXT, DEC, Silicon Graphics, HP,
and IBM RS6000 workstations, Stardent Titan, BBN GP-1000 and TC-2000, Kendall
Square, nCube, Intel IPSC/860, Intel Touchstone Delta, Intel Paragon, Alliant
Campus, Thinking Machines' CM-5, and the IBM SP-1 (TCP/Ethernet, TCP/switch,
EUI, and EUI-H). It is not difficult to port to new systems.
A useful companion system is the upshot logging and X-based trace examination
facility. The macros to create logs are included in p4. Upshot (an X program
for graphically displaying the logs) is available separately.
You can obtain the complete distribution of p4 by anonymous ftp from
info.mcs.anl.gov. Take the file p4-1.3.tar.Z from the directory pub/p4. The
distribution contains all source code, installation instructions, a User's
Guide in both ascii text and latexinfo format, and a collection of examples in
both C and Fortran. A copy of the postscript for the manual is available
separately as p4-manual.ps.Z. An article on p4 is available in p4-paper.ps.Z.
There are a few features that are not implemented on certain machines. See
the machine-specific section of the manual for details.
To ask questions about p4, report bugs, contribute examples, etc., send mail
to p4@mcs.anl.gov. To subscribe to a list to receive announcements about
new releases and bug fixes, send your request to the same place,
p4@mcs.anl.gov.
Rusty Lusk
lusk@mcs.anl.gov
From: Joerg
To: Zhe Li
Organization: Forschungszentrum Juelich GmbH
Subject: Re: PVM vs. C-linda
In-Reply-To: Your message of Wed, 5 Jan 94 10:28:28 EST
I am talking about linda in general, not about piranha. But Piranha
demonstrates these feature clearly.
You can implement dynamic load scheduling very good with Linda because
of the ability to access data from every process (this means you can
store data for unknown(later known) processes. You need no addressing
(in sometimes only identifiers). Linda works as a third party in such
situations. You can build job pools without additional processes.
( Think about implementing such features with pvm or Express !?!)
But if you know the receiver exactly, Linda is less efficient than
message passing. If you plan to implement software-pipelinig (overlapping
communication and computation) then you will see strange (?) effects
with Linda. If the tuple is directly send to the receiver, then there is
no difference, but when a request is neccessary, then Linda needs time
for the request (and there is no overlapping). The developers of Linda
implement mechanisms, which analayze communication pattern at compile and
runtime, but this means overhead and is no guarantee. If you have simple
pattern it will work, but if you have more complicated pattern, then ???
Now, my personal opinion: Linda is great, but is not always the best
solution (static data decomposition). Cubix (part of Express) allows
IO from every cubix-process, pvm is freeware. Have a look on my ping-pong
benchmarks and you will see the effect, but remember the benefits of
of Linda's tuplespace. (Network Linda 2.4.5 is very old, newer versions
show a higher bandwith and a lower lateny; the pattern analyse has been
improved; but the general behaviour is the same ).
Joerg
From: "Timothy G. Mattson"
To: li@ground.cs.columbia.edu
Subject: PVM vs C-Linda
I have heavilly used PVM and Linda. You may find my
technical report on the topic of some interest. You
can grab it by anonymous FTP from
casper.cs.yale.edu
in the file pub/tr975.ps
This paper only looks at performance. I have also written
a paper where I discuss more qualitative issues (ease of
use, debugging, etc). You can grab this by anonymous ftp
from
export.ssd.intel.com
in the file
pub/tmp/mattson/hicss.ps
Basically, what the two papers will tell you are:
1. Performance isn't really the way to compare Linda and
PVM. If all you care about is performance, use
TCGMSG.
2. Both Linda and PVM seriously suffer from a lack of global
communication operations (use TCGMSG or P4 if you need these).
3. Linda is so much easier to debug than PVM, that there is
no comparison. When I had access to a Linda system,
I used to write my programs with Linda first even if I
ultimately wanted a message-passing code just so I
could use the wonderful Linda debugger to develop the
basic parallel algorithm.
So there you have my two-cents worth. If you have any problems
grabbing those papers, let me know.
--Tim
------------------------------------------------------------------
Timothy G. Mattson, Ph.D. Math Library Hacker and Chemist
Intel Supercomputer Systems Division
Phone: (503) 531-5627 FAX: (503) 531-5502
tgm@ssd.intel.com
------------------------------------------------------------------