skip to main content
Skip header Section
How to write parallel programs: a first courseDecember 1990
Publisher:
  • MIT Press
  • 55 Hayward St.
  • Cambridge
  • MA
  • United States
ISBN:978-0-262-03171-4
Published:01 December 1990
Pages:
232
Skip Bibliometrics Section
Bibliometrics
Abstract

No abstract available.

Cited By

  1. Single-sided statistic multiplexed high performance computing Proceedings of the Fourth International Workshop on Software Engineering for HPC in Computational Science and Engineering, (28-33)
  2. ACM
    Lin S and Tatar D Encouraging parallel thinking through explicit coordination modeling Proceedings of the 42nd ACM technical symposium on Computer science education, (441-446)
  3. Cicirelli F, Furfaro A and Nigro L Using time stream Petri nets over a service architecture for workflow modelling and enactment Proceedings of the 2010 Spring Simulation Multiconference, (1-8)
  4. Atkinson A A dynamic, decentralised search algorithm for efficient data retrieval in a distributed tuple space Proceedings of the Eighth Australasian Symposium on Parallel and Distributed Computing - Volume 107, (21-30)
  5. Cicirelli F, Furfaro A and Nigro L (2009). An Agent Infrastructure over HLA for Distributed Simulation of Reconfigurable Systems and its Application to UAV Coordination*, Simulation, 85:1, (17-32), Online publication date: 1-Jan-2009.
  6. ACM
    Luckie M, Hyun Y and Huffaker B Traceroute probe method and forward IP path inference Proceedings of the 8th ACM SIGCOMM conference on Internet measurement, (311-324)
  7. ACM
    Tatar D, Lee J and Alaloula N Playground games Proceedings of the 7th ACM conference on Designing interactive systems, (68-77)
  8. Aldini A (2006). Classification of security properties in a Linda-like process algebra, Science of Computer Programming, 63:1, (16-38), Online publication date: 1-Nov-2006.
  9. Zargayouna M, Trassy J and Balbo F Property based coordination Proceedings of the 12th international conference on Artificial Intelligence: methodology, Systems, and Applications, (3-12)
  10. Varela C, Ciancarini P and Taura K (2005). Worldwide computing, Scientific Programming, 13:4, (255-263), Online publication date: 1-Oct-2005.
  11. Fetzer C and Jim T Dependable distributed computing using free databases Proceedings of the Second international conference on Service Availability, (123-136)
  12. ACM
    Guillen-Scholten J, Arbab F, de Boer F and Bonsangue M MoCha-pi, an exogenous coordination calculus based on mobile channels Proceedings of the 2005 ACM symposium on Applied computing, (436-442)
  13. Guillen-Scholten J and Arbab F Coordinated anonymous peer-to-peer connections with mocha Proceedings of the 4th international conference on Scientific Engineering of Distributed Java Applications, (68-77)
  14. Wells G New and improved Proceedings of the 3rd international symposium on Principles and practice of programming in Java, (67-74)
  15. Jeong K, Kim D, Kim M, Hwang S, Jung S, Lim Y and Lee S A workflow management and grid computing approach to molecular simulation-based bio/nano experiments Proceedings of the 2003 international conference on Computational science, (1117-1126)
  16. Quinn M, Miller R, Miller R and Quinn M Parallel processing Encyclopedia of Computer Science, (1349-1365)
  17. Hankin C Coordination languages Encyclopedia of Computer Science, (462-465)
  18. Reynolds J Advancing learning goals Proceedings of the 34th conference on Winter simulation: exploring new frontiers, (1804-1808)
  19. Gibaud A and Thomin P (2002). Communications Directed by Bound Types in Linda, IEEE Transactions on Parallel and Distributed Systems, 13:8, (828-843), Online publication date: 1-Aug-2002.
  20. ACM
    Hooman J and van de Pol J Formal verification of replication on a distributed data space architecture Proceedings of the 2002 ACM symposium on Applied computing, (351-358)
  21. Purcell T Parallel ray tracing on a chip Practical parallel rendering, (329-336)
  22. De Palma P, Wiborg A and Withers A (2001). Super computing on a budget, Journal of Computing Sciences in Colleges, 17:2, (71-77), Online publication date: 1-Dec-2001.
  23. Chachkov S and Buchs D From an Abstract Object-Oriented Model to a Ready-to-Use Embedded System Controller Proceedings of the 12th International Workshop on Rapid System Prototyping
  24. ACM
    Cass A, Lerner B, Sutton S, McCall E, Wise A and Osterweil L Little-JIL/Juliette Proceedings of the 22nd international conference on Software engineering, (754-757)
  25. Fabbri A GVT and scheduling in space time memory based techniques Proceedings of the thirteenth workshop on Parallel and distributed simulation, (54-61)
  26. Andreoli J and Pacull F (1999). Distributed Print on Demand Systems in the Xpect Framework, Distributed and Parallel Databases, 7:2, (179-198), Online publication date: 1-Apr-1999.
  27. ACM
    Norris C and Wilkes J Computer systems “conference” for teaching communication skills The proceedings of the thirtieth SIGCSE technical symposium on Computer science education, (189-193)
  28. ACM
    Norris C and Wilkes J (1999). Computer systems “conference” for teaching communication skills, ACM SIGCSE Bulletin, 31:1, (189-193), Online publication date: 1-Mar-1999.
  29. ACM
    Mott P and Roberts S A multi-broker architecture for sharing information amongst diverse user communities Proceedings of the 1999 ACM symposium on Applied computing, (194-196)
  30. ACM
    Matloff N TupleDSM Proceedings of the 1999 workshop on Computer architecture education, (2-es)
  31. Andreoli J, Pareschi R and Castagnetti T (1997). Static analysis of Linear Logic programming, New Generation Computing, 15:4, (449-481), Online publication date: 1-Dec-1997.
  32. Smith J and Shrivastava S Fault-Tolerant Parallel Applications Using Queues and Actions Proceedings of the international Conference on Parallel Processing, (145-149)
  33. Alherbish J, Ammar R and Abdalla M Arabic character recognition in a multi-processing environment Proceedings of the 2nd IEEE Symposium on Computers and Communications (ISCC '97)
  34. Nebro A, Pimentel E and Troya J Applying Distributed Shared Memory Techniques for Implementing Distributed Objects Proceedings of the Workshops on Object-Oriented Technology, (499-506)
  35. Moreira J and Naik V (2019). Dynamic resource management on distributed systems using reconfigurable applications, IBM Journal of Research and Development, 41:3, (303-330), Online publication date: 1-May-1997.
  36. Wagner A, Sreekantaswamy H and Chanson S (1997). Performance Models for the Processor Farm Paradigm, IEEE Transactions on Parallel and Distributed Systems, 8:5, (475-489), Online publication date: 1-May-1997.
  37. Diaz M, Rubio B and Troya J Logic Channels Proceedings of the 11th International Symposium on Parallel Processing, (436-442)
  38. ACM
    Dillon E, Dos Santos C and Guyard J (1997). Teaching an engineering approach for network computing, ACM SIGCSE Bulletin, 29:1, (229-232), Online publication date: 1-Mar-1997.
  39. ACM
    Dillon E, Dos Santos C and Guyard J Teaching an engineering approach for network computing Proceedings of the twenty-eighth SIGCSE technical symposium on Computer science education, (229-232)
  40. ACM
    Yang C and Pollock L Towards a structural load testing tool Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis, (201-208)
  41. ACM
    Yang C and Pollock L (1996). Towards a structural load testing tool, ACM SIGSOFT Software Engineering Notes, 21:3, (201-208), Online publication date: 1-May-1996.
  42. Wang X and Blum E (2019). Parallel Execution of Iterative Computations on Workstation Clusters, Journal of Parallel and Distributed Computing, 34:2, (218-226), Online publication date: 1-May-1996.
  43. Banerjee D and Browne J Complete Parallelization of Computations Proceedings of the 10th International Parallel Processing Symposium, (354-360)
  44. ACM
    Ben-Ari M (1996). Using inheritance to implement concurrency, ACM SIGCSE Bulletin, 28:1, (180-184), Online publication date: 1-Mar-1996.
  45. ACM
    Ben-Ari M Using inheritance to implement concurrency Proceedings of the twenty-seventh SIGCSE technical symposium on Computer science education, (180-184)
  46. ACM
    Schaller N and Kitchen A (2019). Experiences in teaching parallel computing—five years later, ACM SIGCSE Bulletin, 27:3, (15-20), Online publication date: 1-Sep-1995.
  47. Foster I and Chandy K (2019). FORTRAN M - A Language for Modular Parallel Programming, Journal of Parallel and Distributed Computing, 26:1, (24-35), Online publication date: 1-Apr-1995.
  48. ACM
    Lau S The HOOL Proceedings of the 33rd annual on Southeast regional conference, (281-282)
  49. ACM
    Bickham J Parallel ocean modeling using Glenda Proceedings of the 33rd annual on Southeast regional conference, (58-63)
  50. ACM
    Lobo D Network Glenda software design Proceedings of the 33rd annual on Southeast regional conference, (52-57)
  51. ACM
    Makowski C and Pollock L Achieving efficient register allocation via parallelism Proceedings of the 1995 ACM symposium on Applied computing, (123-129)
  52. ACM
    Yue K (1994). An undergraduate course in concurrent programming using Ada, ACM SIGCSE Bulletin, 26:4, (59-63), Online publication date: 1-Dec-1994.
  53. Nieplocha J, Harrison R and Littlefield R Global arrays Proceedings of the 1994 ACM/IEEE conference on Supercomputing, (340-349)
  54. ACM
    Bottoni P, Mariotto M and Mussio P (2019). LiSEB, ACM SIGAPL APL Quote Quad, 25:1, (7-16), Online publication date: 1-Oct-1994.
  55. ACM
    Hirsbrunner B, Aguilar M and Krone O CoLa Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
  56. ACM
    Bottoni P, Mariotto M and Mussio P LiSEB Proceedings of the international conference on APL : the language and its applications: the language and its applications, (7-16)
  57. Ciancarini P (1994). Distributed programming with Logic Tuple Spaces, New Generation Computing, 12:3, (251-283), Online publication date: 1-Jun-1994.
  58. Wilson G, Schaeffer J and Szafron D Enterprise in context Proceedings of the 1993 conference of the Centre for Advanced Studies on Collaborative research: distributed computing - Volume 2, (999-1010)
  59. ACM
    Ciancarini P and Guerrini N (1993). Linda meets Minix, ACM SIGOPS Operating Systems Review, 27:4, (76-92), Online publication date: 1-Oct-1993.
  60. ACM
    Gutfreund Y, Diaz-Gonzalez J, Sasnett R and Phuah V CircusTalk Proceedings of the first ACM international conference on Multimedia, (351-358)
  61. ACM
    Patterson L, Turner R and Hyatt R Construction of a fault-tolerant distributed tuple-space Proceedings of the 1993 ACM/SIGAPP symposium on Applied computing: states of the art and practice, (279-285)
  62. ACM
    Seevers B, Quinn M and Hatcher P (1993). A parallel programming environment supporting multiple data-parallel modules, ACM SIGPLAN Notices, 28:1, (44-47), Online publication date: 1-Jan-1993.
  63. ACM
    Kitchen A, Schaller N and Tymann P (1992). Game playing as a technique for teaching parallel computing concepts, ACM SIGCSE Bulletin, 24:3, (35-38), Online publication date: 1-Sep-1992.
  64. ACM
    Gelernter D and Kaminsky D Supercomputing out of recycled garbage Proceedings of the 6th international conference on Supercomputing, (417-427)
  65. ACM
    McDonald C (1992). Teaching concurrency with Joyce and Linda, ACM SIGCSE Bulletin, 24:1, (46-52), Online publication date: 1-Mar-1992.
  66. ACM
    McDonald C Teaching concurrency with Joyce and Linda Proceedings of the twenty-third SIGCSE technical symposium on Computer science education, (46-52)
  67. ACM
    Gelernter D and Carriero N (1992). Coordination languages and their significance, Communications of the ACM, 35:2, (97-107), Online publication date: 1-Feb-1992.
  68. Ciancarini P PoliS Proceedings of the 6th international workshop on Software specification and design, (44-51)
  69. ACM
    Jellinghaus R (1990). Eiffel Linda, ACM SIGPLAN Notices, 25:12, (70-84), Online publication date: 1-Dec-1990.
Contributors
  • Yale University
  • Yale University

Recommendations

Reviews

Nancy R. Mead

The audience for this textbook is upper-level undergraduates who wish to learn parallel programming. A suggested syllabus is provided, but no specific prerequisites are stated. The authors suggest using the book in an undergraduate or graduate workshop environment. The book includes nine chapters. Each chapter except the first has exercises, most of which require programming. The language of discourse is C-Linda, and an appendix serves as a language reference. A short bibliography is included. Chapter 1 introduces the “what,” “why,” and “how” of parallelism. The fundamental notion presented is that parallelism is one way to solve problems fast, and that sequential programming is a restricted version of parallel programming. Parallel programming is considered the norm, and sequential programming is the exception. Chapter 2 discusses basic paradigms for network coordination, including result parallelism, agenda parallelism, and specialist parallelism. The analogy of building a house serves nicely to introduce these notions. Guidance is given about when to use the various models. The authors briefly discuss some of the other parallel programming methods and implementations, such as communicating sequential processes (CSP), remote procedure call (RPC), monitors, and other synchronization techniques. They make clear that the book will deal primarily with parallel programming techniques. Chapter 3 introduces the basic data structures: sema phores, bugs, name-accessed structures (such as records), and position-accessed structures (such as arrays). Live data structures and message passing are also discussed. Linda is introduced as a model of coordination for executing multiple threads. Chapter 4 focuses on debugging and performance measurement. Problems such as deadlock and non-determinism are introduced. The discussion of performance considerations includes load balancing and starvation. The chapter briefly discusses modeling of parallel programs. Chapter 5 synthesizes the previous chapters to treat an example problem (finding all primes between 1 and n ) using the three paradigms introduced in chapter 2. Examples are given in C-Linda (a version of C enhanced with language support for the Linda model). Chapters 6, 7, and 8 investigate three programs that are naturally agenda-parallel, result-parallel, and specialist-parallel, respectively. The problems are database search with a complex search criterion, wavefront computation of a matrix, and data-stream analysis. In each case, analysis of the problem and an initial solution eventually result in an efficient agenda-parallel solution. Chapter 9 introduces the dining philosophers and readers-writers problems. The main example of the chapter is a “meeting maker” (calendar management) example. The book is nicely written and would be suitable for a seminar. A student with no background in parallel programming would have to do a lot of outside reading to be adequately prepared and to appreciate some of the problems. The programming examples are interesting and well thought out. The book lacks sufficient depth for a graduate-level course. I recommend it for an upper-level undergraduate seminar course, provided the supporting tools were available.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.