* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Multiprocessor and Distributed Systems
Survey
Document related concepts
Transcript
Multiprocessing and Distributed Systems CS-502 Operating Systems Fall 2006 (Slides include materials from Operating System Concepts, 7th ed., by Silbershatz, Galvin, & Gagne, Modern Operating Systems, 2nd ed., by Tanenbaum, and Operating Systems: Internals and Design Principles, 5th ed., by Stallings) CS-502 Fall 2006 Multiprocessing and Distributed Systems 1 Multiprocessing Distributed Computing (a spectrum) • Many independent problems at same time • Similar • Different • One very big problem (or a few) • Computations that are physically separated • Client-server • Inherently dispersed computations Different kinds of computers and operating systems CS-502 Fall 2006 Multiprocessing and Distributed Systems 2 Multiprocessing Distributed Computing (a spectrum) • Many independent problems at same time • Similar — e.g., banking & credit card; airline reservations • Different — e.g., university computer center; your own PC • One very big problem (or a few) • Computations that are physically separated • Client-server • Inherently dispersed computations Different kinds of computers and operating systems CS-502 Fall 2006 Multiprocessing and Distributed Systems 3 Multiprocessing Distributed Computing (a spectrum) • Many independent problems at same time • Similar — e.g., banking & credit card; airline reservations • Different — e.g., university computer center; your own PC • One very big problem (too big for one computer) • Weather modeling, finite element analysis; drug discovery; gene modeling; weapons simulation; etc. • Computations that are physically separated • Client-server • Inherently dispersed computations Different kinds of computers and operating systems CS-502 Fall 2006 Multiprocessing and Distributed Systems 4 Multiprocessing Distributed Computing (a spectrum) • Many independent problems at same time • Similar — e.g., banking & credit card; airline reservations • Different — e.g., university computer center; your own PC • One very big problem (too big for one computer) • Weather modeling, Finite element analysis; Drug discovery; Gene modeling; Weapons simulation; etc. • Computations that are physically separated • Client-server • Dispersed – routing tables for internet; electric power distrib. Different kinds of computers and operating systems CS-502 Fall 2006 Multiprocessing and Distributed Systems 5 Taxonomy of Parallel Processing CS-502 Fall 2006 Multiprocessing and Distributed Systems 6 Inherently Distributed Computation (example) • Internet routing of packets • Network layer – send a packet to its IP address • Problems • No central authority to manage routing in Internet • Nodes and links come online or fail rapidly • Need to be able to send a packet from any address to any address • Solution • Distributed routing algorithm CS-502 Fall 2006 Multiprocessing and Distributed Systems 7 Distributed routing algorithm (simplified example) • Each node “knows” networks other nodes directly connected to it. • Each node maintains table of distant networks • [network #, 1st hop, distance] • Periodically adjacent nodes exchange tables • Update algorithm (for each network in table) • If (neighbor’s distance to network < my distance to network + my distance to neighbor), then update my table entry for that network CS-502 Fall 2006 Multiprocessing and Distributed Systems 8 Distributed routing algorithm (result) • All nodes in Internet have reasonably up-todate routing tables • Rapid responses to changes in network topology, congestion, failures, etc. • Very reliable with no central management! • Network management software • Monitoring health of network (e.g., routing tables) • Identifying actual or incipient problems • Data and statistics for planning purposes CS-502 Fall 2006 Multiprocessing and Distributed Systems 9 Summary • Some algorithms are inherently distributed • Depend upon computations at physically separate places • Result is the cumulative results of individual computations • Not much impact on computer or OS architecture CS-502 Fall 2006 Multiprocessing and Distributed Systems 10 Client-Server Computations • Very familiar model • Parts of computation takes place on • User’s PC, credit-card terminal, etc. • … and part takes place on central server • E.g., updating database, search engine, etc. • Central issues • Protocols for efficient communication • Where to partition the problem CS-502 Fall 2006 Multiprocessing and Distributed Systems 11 Very Big Problems • Lots and lots of calculations • Highly repetitive • Easily parallelizable into separate subparts • (Usually) dependent upon adjacent subparts • Arrays or clusters of computers • Independent memories • Very fast communication between elements close coupling CS-502 Fall 2006 Multiprocessing and Distributed Systems 12 Closely-coupled Systems • Examples – Beowulf clusters – 32-256 PCs – ASCI Red – ~1000-4000 PC-like processors – BlueGene/L – >16,000 processing elements CS-502 Fall 2006 Multiprocessing and Distributed Systems 13 Taxonomy of Parallel Processing CS-502 Fall 2006 Multiprocessing and Distributed Systems 14 IBM BlueGene/L CS-502 Fall 2006 Multiprocessing and Distributed Systems 15 Systems for Closely-Coupled Clusters • Independent OS for each node • E.g., Linux in Beowulf • Additional middleware for • • • • Distributed process space Synchronization among nodes (Silbershatz, Ch 18) Access to network and peripheral devices Failure management • Parallelizing compilers • For partitioning a problem into many processes CS-502 Fall 2006 Multiprocessing and Distributed Systems 16 Cluster Computer Architecture CS-502 Fall 2006 Multiprocessing and Distributed Systems 17 Interconnection Topologies CS-502 Fall 2006 Multiprocessing and Distributed Systems 18 Goal • Microsecond-level – messages – synchronization and barrier operations among processes CS-502 Fall 2006 Multiprocessing and Distributed Systems 19 Questions? CS-502 Fall 2006 Multiprocessing and Distributed Systems 20 Multiprocessing Distributed Computing (a spectrum) • Many independent problems at same time • Similar — e.g., banking & credit card; airline reservations • Different — e.g., university computer center; your own PC • One very big problem (or a few) • Problems that physically separated by their very nature Different kinds of computers and operating systems CS-502 Fall 2006 Multiprocessing and Distributed Systems 21 Many Separate Computations • Similar – banking & credit card; airline reservation; … • Transaction processing • Thousands of small transactions per second • Few (if any) communications among transactions – Exception: locking, mutual exclusion • Common database CS-502 Fall 2006 Multiprocessing and Distributed Systems 22 Requirements • Lots of disks, enough CPU power • Accessible via multiple paths • High availability • Fault-tolerant components & OS support • Processor independence • • • • CS-502 Fall 2006 Any transaction on any processor Global file system Load-balancing Scalable Multiprocessing and Distributed Systems 23 Options • Cluster (of a somewhat different sort) • Shared-memory multi-processor CS-502 Fall 2006 Multiprocessing and Distributed Systems 24 Taxonomy of Parallel Processing CS-502 Fall 2006 Multiprocessing and Distributed Systems 25 Cluster Computing • Scalable to large number of processors • Common I/O space – Multiple channels for disk access – Hyper-channel, Fiber-channel, etc. • Multi-headed disks – At least two paths from any processor to any disk • Remote Procedure Call for communication among processors – DCOM, CORBA, Java RMI, etc. CS-502 Fall 2006 Multiprocessing and Distributed Systems 26 Shared-Memory Multiprocessor • All processors can access all memory • Some memory may be faster than other memory • Any process can run on any processor • Multiple processors executing in same address space concurrently • Multiple paths to disks (as with cluster) CS-502 Fall 2006 Multiprocessing and Distributed Systems 27 Shared Memory Multiprocessors Bus-based •Bus contention limits the number of CPUs CS-502 Fall 2006 •Lower bus contention •Caches need to be synced (big deal) Multiprocessing and Distributed Systems •Compiler places data and text in private or shared memory 28 Multiprocessors (2) - Crossbar • • • Can support a large number of CPUs Non-blocking network Cost/performance effective up to about 100 CPU – growing as n2 CS-502 Fall 2006 Multiprocessing and Distributed Systems 29 Multiprocessors(3) – Multistage Switching Networks • Omega Network – blocking – Lower cost, longer latency – For N CPUs and N memories – log2 n stages of n/2 switches CS-502 Fall 2006 Multiprocessing and Distributed Systems 30 Type of Multiprocessors – UMA vs. NUMA • UMA (Uniform Memory Access) • NUMA (Non-Uniform Memory Access) – All memory is equal – Familiar programming model – Number of processors is limited • 8-32 – Symmetrical – Single address space visible to all CPUs – Access to remote memory via commands • LOAD & STORE • remote memory access slower than to local • No processor is different from others CS-502 Fall 2006 Multiprocessing and Distributed Systems 31 Common SMP Implementations • Multiple processors on same board or bus • Dual core processors • I.e., two processors on same chip • Share same L2 cache • Hyperthreading • One processor shares its circuitry among two threads or processes • Separate registers, PSW, etc. • Combinations of above CS-502 Fall 2006 Multiprocessing and Distributed Systems 32 Hardware issue – Cache Synchronization • Each processor cache monitors memory accesses on bus (i.e., “snoops”) – Memory updates are propagated to other caches – Complex cache management hardware – Order of operations may be ambiguous • Some data must be marked as not cacheable – Visible to programming model CS-502 Fall 2006 Multiprocessing and Distributed Systems 33 Operating System Considerations • Master-slave vs. full symmetry • Explicit cache flushing • When page is replaced or invalidated • Processor affinity of processes • Context switches across processors can be expensive • Synchronization across processors • Interrupt handling CS-502 Fall 2006 Multiprocessing and Distributed Systems 34 Multiprocessor OS – Master-Slave • One CPU (master) runs the OS and applies most policies • Other CPUs – run applications – Minimal OS to acquire and terminate processes • Relatively simple OS • Master processor can become a bottleneck for a large number of slave processors CS-502 Fall 2006 Multiprocessing and Distributed Systems 35 Multiprocessor OS – Symmetric Multi-Processor (SMP) • Any processor can execute the OS and any applications • Synchronization within the OS is the issue 1. Lock the whole OS – poor utilization – long queues waiting to use OS 2. OS critical regions – much preferred – Identify independent OS critical regions that be executed independently – protect with mutex – Identify independent critical OS tables – protect access with MUTEX – Design OS code to avoid deadlocks – – CS-502 Fall 2006 The art of the OS designer Maintenance requires great care Multiprocessing and Distributed Systems 36 Multiprocessor OS – SMP (continued) • Multiprocessor Synchronization – Need special instructions – test-and-set – Spinlocks are common • Can context switch if time in critical region is greater than context switch time • OS designer must understand the performance of OS critical regions • Context switch time could be onerous – Data cached on one processor needs to be recached on another CS-502 Fall 2006 Multiprocessing and Distributed Systems 37 Multiprocessor Scheduling • When processes are independent (e.g., timesharing) – Allocate CPU to highest priority process – Tweaks • For a process with a spinlock, let it run until it releases the lock • To reduce TLB and memory cache flushes, try to run a process on the same CPU each time it runs • For groups of related processes – Attempt to simultaneously allocate CPUs to all related processes (space sharing) – Run all threads to termination or block – Gang schedule – apply a scheduling policy to related processes together CS-502 Fall 2006 Multiprocessing and Distributed Systems 38 Linux SMP Support • Multi-threaded kernel • Any processor can handle any interrupt • Interrupts rarely disabled, and only for shortest time possible • Multiple processors can be active in system calls concurrently • Process vs. Interrupt context • Process context:– when processor is acting on behalf of a specific process • Interrupt context:– when processor is acting on behalf of no particular process • Extensive use of spinlocks • Processor affinity properties in task_struct CS-502 Fall 2006 Multiprocessing and Distributed Systems 39 WPI Computing & Communications Center • • • • • • CCC cluster – 11 dual 2.4 GHz Xeon processors toth – 16-node 1.5 GHz Itanium2 big16 – 8 dual-core 2.4 GHz Opterons toaster – NetApp 5.5 TByte Fiber Channel RAID NFS breadbox – NetApp 12 TByte RAID NFS Many others • All connected together by very fast networks CS-502 Fall 2006 Multiprocessing and Distributed Systems 40 Questions? Next Topic CS-502 Fall 2006 Multiprocessing and Distributed Systems 41