From the Publisher: Greg Andrews teaches the fundamental concepts of multithreaded, parallel and distributed computing and relates them to the implementation and performance processes. He presents the appropriate breadth of topics and supports these discussions with an emphasis on performance. Features Emphasizes how to solve problems, with correctness the primary concern and performance an important, but secondary, concern Includes a number of case studies which cover such topics as pthreads, MPI, and OpenMP libraries, as well as programming languages like Java, Ada, high performance Fortran, Linda, Occam, and SR Provides examples using Java syntax and discusses how Java deals with monitors, sockets, and remote method invocation Covers current programming techniques such as semaphores, locks, barriers, monitors, message passing, and remote invocation Concrete examples are executed with complete programs, both shared and distributed Sample applications include scientific computing and distributed systems
Cited By
- Mahmud M, Huang J and García S (2024). Clustering approximation via a fusion of multiple random samples, Information Fusion, 101:C, Online publication date: 1-Jan-2024.
- Alegria A, Ierusalimschy R and Rodriguez N EventManager — a tool to help students analyse concurrent programs Proceedings of the XXVI Brazilian Symposium on Programming Languages, (24-31)
- Gorbunova A and Lebedev A (2020). Bivariate Distributions of Maximum Remaining Service Times in Fork-Join Infinite-Server Queues, Problems of Information Transmission, 56:1, (73-90), Online publication date: 1-Jan-2020.
- Wenjie T, Yiping Y, Feng Z, Tianlin L and Xiao S A work-stealing based dynamic load balancing algorithm for conservative parallel discrete event simulation Proceedings of the 2017 Winter Simulation Conference, (1-12)
- Guo P, Liu X, Cao J and Tang S (2017). Lossless In-Network Processing and Its Routing Design in Wireless Sensor Networks, IEEE Transactions on Wireless Communications, 16:10, (6528-6542), Online publication date: 1-Oct-2017.
- Phu V, Dat N, Ngoc Tran V, Ngoc Chau V and Nguyen T (2017). Fuzzy C-means for english sentiment classification in a distributed system, Applied Intelligence, 46:3, (717-738), Online publication date: 1-Apr-2017.
- Samarah M and Fatmi R Dynamic Self-assembling Petaflop Scale Clusters Proceedings of the International Conference on High Performance Compilation, Computing and Communications, (1-5)
- Wang J, Abu-Ghazaleh N and Ponomarev D (2015). AIR, ACM Transactions on Modeling and Computer Simulation, 25:3, (1-25), Online publication date: 7-May-2015.
- Dimitrakopoulos G, Seitanidis I, Psarras A, Tsiouris K, Mattheakis P and Cortadella J Hardware primitives for the synthesis of multithreaded elastic systems Proceedings of the conference on Design, Automation & Test in Europe, (1-4)
- Wang J, Abu-Ghazaleh N and Ponomarev D Interference resilient PDES on multi-core systems Proceedings of the 1st ACM SIGSIM Conference on Principles of Advanced Discrete Simulation, (115-126)
- Terechko A, Hoogerbrugge J, Alkadi G, Guntur S, Lahiri A, Duranton M, Wüst C, Christie P, Nackaerts A and Kumar A (2012). Balancing Programmability and Silicon Efficiency of Heterogeneous Multicore Architectures, ACM Transactions on Embedded Computing Systems, 11S:1, (1-32), Online publication date: 1-Jun-2012.
- Nobakht B, de Boer F, Jaghoori M and Schlatte R Programming and deployment of active objects with application-level scheduling Proceedings of the 27th Annual ACM Symposium on Applied Computing, (1883-1888)
- Whittinghill D and Lutes K Teaching enterprise application development Proceedings of the 2011 conference on Information technology education, (221-226)
- Le-Phuoc D, Polleres A, Hauswirth M, Tummarello G and Morbidoni C Rapid prototyping of semantic mash-ups through semantic web pipes Proceedings of the 18th international conference on World wide web, (581-590)
- Ababei C (2009). Speeding up FPGA placement via partitioning and multithreading, International Journal of Reconfigurable Computing, 2009, (1-1), Online publication date: 1-Jan-2009.
- Ábrahám E, de Boer F, de Roever W and Steffen M (2008). A Deductive Proof System for Multithreaded Java with Exceptions, Fundamenta Informaticae, 82:4, (391-463), Online publication date: 1-Dec-2008.
- Ábrahám E, de Boer F, de Roever W and Steffen M (2008). A Deductive Proof System for Multithreaded Java with Exceptions, Fundamenta Informaticae, 82:4, (391-463), Online publication date: 30-Jul-2008.
- Barsotti D and Blanco J Automatic refinement of split binary semaphore Proceedings of the 4th international conference on Theoretical aspects of computing, (64-78)
- Julien C Adaptive preference specifications for application sessions Proceedings of the 4th international conference on Service-Oriented Computing, (78-89)
- Kienzle J and Sendall S Addressing concurrency in object-oriented software development Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research, (15-es)
- Julien C and Stovall D Enabling ubiquitous coordination using application sessions Proceedings of the 8th international conference on Coordination Models and Languages, (130-144)
- Siegel S and Avrunin G Modeling wildcard-free MPI programs for verification Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, (95-106)
- Fedoruk A and Deters R Improving fault-tolerance by replicating agents Proceedings of the first international joint conference on Autonomous agents and multiagent systems: part 2, (737-744)
- Deng X, Dwyer M, Hatcliff J and Mizuno M Invariant-based specification, synthesis, and verification of synchronization in concurrent programs Proceedings of the 24th International Conference on Software Engineering, (442-452)
Recommendations
Distributed parallel computing using navigational programming
Message Passing (MP) and Distributed Shared Memory (DSM) are the two most common approaches to distributed parallel computing. MP is difficult to use, whereas DSM is not scalable. Performance scalability and ease of programming can be achieved at the ...
An object-oriented parallel programming language for distributed-memory parallel computing platforms
In object-oriented programming (OOP) languages, the ability to encapsulate software concerns of the dominant decomposition in objects is the key to reaching high modularity and loss of complexity in large scale designs. However, distributed-memory ...
The APGAS library: resilient parallel and distributed programming in Java 8
X10 2015: Proceedings of the ACM SIGPLAN Workshop on X10We propose the APGAS library for Java 8. Inspired by the core constructs and semantics of the Resilient X10 programming language, APGAS brings many benefits of the X10 programming model to the Java programmer as a pure, idiomatic Java library. APGAS ...