Parallel Programming in C for the Transputer
© D. Thiébaut, 1995
Table of Contents
1 Introduction
1-1 Transputer-based multiprocessors and parallel architectures
1-2 Flexibility and versatility
1-3 Hardware and software support
1-4 Why use C?
1-5 Chapter organization
2 The transputer
2-1 A processor with memory and I/O ports
2-2 The Processor
2-3 Memory access
2-4 The serial I/O ports
2-5 Technical aspects of the CSA Educational Kit
2-6 Concluding remarks
3 Tutorial: a first program
3-1 The program
3-2 The compilation process
3-3 The linking process
3-4 Loading the program
3-5 Concluding remarks
4 Communication primitives
4-1 Network topology
4-2 Transputer to transputer communication
4-3 Alternation with ProcSkipAlt
4-4 Adding a relay node
4-5 Concluding remarks
5 Multitasking
5-1 Creating multitasks
5-2 Timing aspects of multitasking
5-3 Unsynchronized execution of multitasks: ProcRun
5-4 Communication between multitasks
5-5 A complete program
5-6 Virtual channels
5-7 Concluding remarks
6 Parallel programming and debugging
6-1 Using a commercial debugger
6-2 Defensive debugging techniques
6-3 Root debugging
6-4 Managing the stack and heap
6-5 Using high and low priority tasks
6-6 Concluding remarks
7 Deadlocks
7-1 Introductory examples
7-2 Deadlocks on shared resources
7-3 How likely is a deadlock?
7-4 Why not a certainty?
7-5 Detecting deadlocks: the interleave problem
7-6 Semaphores and locks
7-7 Deadlocks in communication
7-8 Deadlock prevention
7-9 Deadlock recovery
7-10 Concluding remarks
8 Measuring performance
8-1 Introduction
8-2 Execution time and speedup
8-3 Processor utilization
8-4 Processor efficiency
8-5 Packet throughput
8-6 Other performance metrics
9 Problem decomposition on a multiprocessor network
9-1 Introduction
9-2 Code-driven decomposition
9-3 Data-driven decomposition
9-4 Concluding remarks
10 Load balancing
10-1 Dynamic load balancing
10-2 An application: balancing the N-queen problem
10-3 Concluding remarks
References
Accompanying software (README file, and
zip-compressed archive)
(Statistics of accesses to different parts of the book are available here!)