Morgan Kaufmann/Elsevier, 2024. — 200 p. — ISBN: 978-0-443-24814-6.
The theory of Structured Parallel Programming is a comprehensive guide to structured parallel programming corresponding to traditional structured sequential programming. The book provides readers with comprehensive coverage of the theoretical foundations of structured parallel programming, including analyses of parallelism and concurrency, truly concurrent process algebras, building block-based structured parallel programming, modeling and verification of parallel programming language, modeling and verification of parallel programming patterns, as well as modeling and verification of distributed systems.
There have been always two ways to approach parallel computing: one is the structured way, and the other is the graph-based (true concurrent) way. The structured way is often based on interleaving semantics, such as process algebra CCS. Since parallelism in interleaving semantics is not a fundamental computational pattern (the parallel operator can be replaced by alternative composition and sequential composition), the parallel operator often does not occur as an explicit operator, such as in the mainstream programming languages C, C++, Java, et al.
The graph-based way is also called true concurrency. There also have been some ways to structure the graph, but these works only considered the causal relation in the graph and neglected the conflict and even the communication. There are also industrial efforts to adopt the graph-based way, such as the workflow description language WSFL. The later workflow description language BPEL adopts both the structured way and the graph-based way. Why does BPEL not adopt the structured way only? This is because the expressive power of the structured way is limited. Then why does BPEL not adopt the graph-based way only? It is just because the graph could not be structured at that time and the structured way is the basis for implementing a compiler.
Now, it is time to do some work on structured parallel programming under the background of programming language and parallel software engineering. On one side, traditional structured programming has great success in sequential computation; on the other side, current structured parallel programming focuses on parallel patterns (also known as parallel skeletons, templates, and archetypes), In comparison to structured sequential programming, the corresponding structured parallel programming with solid foundation still is missing.
Introduces algebraic properties and laws for structured parallel programming, one of the foundational concepts of Computer Science.
Discusses modeling and verification of parallel programming language, parallel programming patterns, and distributed systems.
Demonstrates parallel programming language with its operational semantics, denotational semantics, axiomatic semantics, and their relations.
Parallelism and concurrency.
Truly concurrent process algebra.
Guarded APTC.
Distributed APTC.
Building blocks-based structured parallel programming.
Modeling and verification of parallel programming languages.
Modeling and verification of parallel programming patterns.
Modeling and verification of distributed systems.
A: A parallel programming language.