how to write parallel programs
-----BEGIN PGP SIGNED MESSAGE----- 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 approach. 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 -----BEGIN PGP SIGNATURE----- Version: PGP 7.0.4 iQA/AwUBPH+j1eaWiFwg2CH4EQLCFACfbG5aGOHfTMsM0p/Ql/HKQ+FmFcoAn00S eSuaTeJMxUUpkoy7O6qOT1QC =l/pi -----END PGP SIGNATURE-----
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format