Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.
-
Upload
jason-adams -
Category
Documents
-
view
237 -
download
1
Transcript of Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.
![Page 1: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/1.jpg)
Multiple Processor Systems
Chapter 8
8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems
![Page 2: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/2.jpg)
Multiprocessor Systems
• Continuous need for faster computers– shared memory model– message passing multiprocessor– wide area distributed system
![Page 3: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/3.jpg)
3
Distributed Systems (1)
Comparison of three kinds of multiple CPU systems
![Page 4: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/4.jpg)
Multiprocessors
Definition:A computer system in which two or more CPUs share full access to a common RAM
![Page 5: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/5.jpg)
5
Multiprocessor Hardware (1)
Bus-based multiprocessors
![Page 6: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/6.jpg)
Multiprocessor Hardware (2)
• UMA Multiprocessor using a crossbar switch
![Page 7: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/7.jpg)
Multiprocessor Hardware (3)
• UMA multiprocessors using multistage switching networks can be built from 2x2 switches
(a) 2x2 switch (b) Message format
![Page 8: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/8.jpg)
Multiprocessor Hardware (4)
• Omega Switching Network
![Page 9: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/9.jpg)
Multiprocessor Hardware (5)
NUMA Multiprocessor Characteristics
1. Single address space visible to all CPUs
2. Access to remote memory via commands- LOAD- STORE
3. Access to remote memory slower than to local
![Page 10: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/10.jpg)
Multiprocessor Hardware (6)
(a) 256-node directory based multiprocessor(b) Fields of 32-bit memory address(c) Directory at node 36
![Page 11: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/11.jpg)
Multiprocessor OS Types (1)
Each CPU has its own operating system
Bus
![Page 12: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/12.jpg)
Multiprocessor OS Types (2)
Master-Slave multiprocessors
Bus
![Page 13: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/13.jpg)
Multiprocessor OS Types (3)
• Symmetric Multiprocessors– SMP multiprocessor model
Bus
![Page 14: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/14.jpg)
Multiprocessor Synchronization (1)
TSL instruction can fail if bus already locked
![Page 15: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/15.jpg)
Multiprocessor Synchronization (2)
Multiple locks used to avoid cache thrashing
![Page 16: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/16.jpg)
Multiprocessor Synchronization (3)
Spinning versus Switching
• In some cases CPU must wait– waits to acquire ready list
• In other cases a choice exists– spinning wastes CPU cycles– switching uses up CPU cycles also– possible to make separate decision each time
locked mutex encountered
![Page 17: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/17.jpg)
Multiprocessor Scheduling (1)
• Timesharing– note use of single data structure for scheduling
![Page 18: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/18.jpg)
Multiprocessor Scheduling (2)
• Space sharing– multiple threads at same time across multiple CPUs
![Page 19: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/19.jpg)
Multiprocessor Scheduling (3)
• Problem with communication between two threads– both belong to process A– both running out of phase
![Page 20: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/20.jpg)
Multiprocessor Scheduling (4)
• Solution: Gang Scheduling1. Groups of related threads scheduled as a unit (a gang)
2. All members of gang run simultaneously• on different timeshared CPUs
3. All gang members start and end time slices together
![Page 21: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/21.jpg)
Multiprocessor Scheduling (5)
Gang Scheduling
![Page 22: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/22.jpg)
Multicomputers
• Definition:Tightly-coupled CPUs that do not share memory
• Also known as – cluster computers
– clusters of workstations (COWs)
![Page 23: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/23.jpg)
Multicomputer Hardware (1)
• Interconnection topologies(a) single switch(b) ring(c) grid
(d) double torus(e) cube(f) hypercube
![Page 24: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/24.jpg)
Multicomputer Hardware (2)
• Switching scheme– store-and-forward packet switching
![Page 25: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/25.jpg)
Multicomputer Hardware (3)
Network interface boards in a multicomputer
![Page 26: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/26.jpg)
Low-Level Communication Software (1)
• If several processes running on node – need network access to send packets …
• Map interface board to all process that need it
• If kernel needs access to network …• Use two network boards
– one to user space, one to kernel
![Page 27: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/27.jpg)
Low-Level Communication Software (2)
Node to Network Interface Communication• Use send & receive rings• coordinates main CPU with on-board CPU
![Page 28: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/28.jpg)
User Level Communication Software
• Minimum services provided– send and receive
commands
• These are blocking (synchronous) calls
(a) Blocking send call
(b) Nonblocking send call
![Page 29: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/29.jpg)
Remote Procedure Call (1)
• Steps in making a remote procedure call– the stubs are shaded gray
![Page 30: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/30.jpg)
Remote Procedure Call (2)
Implementation Issues• Cannot pass pointers
– call by reference becomes copy-restore (but might fail)
• Weakly typed languages– client stub cannot determine size
• Not always possible to determine parameter types• Cannot use global variables
– may get moved to remote machine
![Page 31: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/31.jpg)
Distributed Shared Memory (1)
• Note layers where it can be implemented– hardware– operating system– user-level software
![Page 32: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/32.jpg)
Distributed Shared Memory (2)
Replication(a) Pages distributed on 4 machines
(b) CPU 0 reads page 10
(c) CPU 1 reads page 10
![Page 33: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/33.jpg)
Distributed Shared Memory (3)
• False Sharing
• Must also achieve sequential consistency
![Page 34: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/34.jpg)
Multicomputer SchedulingLoad Balancing (1)
• Graph-theoretic deterministic algorithm
Process
![Page 35: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/35.jpg)
Load Balancing (2)
• Sender-initiated distributed heuristic algorithm– overloaded sender
![Page 36: Multiple Processor Systems Chapter 8 8.1 Multiprocessors 8.2 Multicomputers 8.3 Distributed systems.](https://reader031.fdocuments.in/reader031/viewer/2022013102/5515d1e255034638038b457e/html5/thumbnails/36.jpg)
Load Balancing (3)
• Receiver-initiated distributed heuristic algorithm– under loaded receiver