OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   how to write parallel programs

[ Lists Home | Date Index | Thread Index ]

Hash: SHA1

> Mike Champion:
> That is, perhaps "encapsulation" of data 
> is not such a good thing after all ... 
> or at least it's not scaling well to the Web. 
> Perhaps it makes more sense to expose the data 
> via generic operations rather than exchange 
> objects that encapsulate data behind customized 
> operations. I'm not sure, but things are getting 
> interesting ....

Carriero and Gelernter's "How to Write Parallel Programs" claim 3
fundamental paradigms for parallel programs. What they have to say
is cogent with respect to distributed programming, and the question
of how REST, (OO)RPC and the whole web architecture shooting match
squares with their claims is an interesting one. This book is,
astonishingly, out of print, so I'll quote liberally:

"We can envision parallelism in terms of a program's 
result, a program's agenda of activities or of an 
ensemble of specialists that collectively constitute 
the program. We begin with an analogy.

Suppose you want to build a house. Parallelism - using 
many people on the job - is the obvious approach. But 
there are several different ways in which parallelism 
might enter.

First, we might envision parallelism by starting with 
the finished product, the result. [...] In sum each 
worker is assigned to produce one piece of the result 
[...] This is the result parallel approach.

At the other end of the spectrum we might envision 
parallelism by starting with the crew of workers who 
will do the building. [...] In sum, each worker is 
assigned to perform one specified kind of work [...] 
This is the specialist parallel approach.

Finally, we might envision parallelism in terms of an 
agenda of activities that must be completed in building 
a house. [...] In sum, each worker is assigned to pick 
a task from the agenda and do that task - and repeat, 
until the job is done [...] This is the agenda parallel 

The boundaries between the three paradigms can sometimes 
be fuzzy, and we will often mix elements of several paradigms 
in getting a particular job done [...] It's nonetheless an 
essential point that these three paradigms represent three 
clearly separate ways of thinking about the problem."

They go on to describe how the paradigms imply different
relationships between processes and data. The first two
relationships are message passing (enclose data within a process)
and live data (enclose processes inside data). The defining
difference between these is whether processes are created
explicitly (message passing) or implicitly (live data). The third
is an intermediate: many processes share access to many data and
may communicate by reading and writing data; these are called
distributed data structures. Specialist parallelism maps onto
message passing. Result parallelism maps onto live data. Agenda
parallelism maps onto distributed data structures.

Bill de hÓra

Version: PGP 7.0.4



News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS