160 likes | 308 Views
Different Species of Parallel. Multiple Instructions, Data Sets. Some Common Organizations. Symmetric Multiprocessing (SMP) - multiple CPUs each with cache - common everything else Cluster and Grid Computing - multiple everything, networked together - common software control Blade Server
E N D
Some Common Organizations Symmetric Multiprocessing (SMP) - multiple CPUs each with cache - common everything else Cluster and Grid Computing - multiple everything, networked together - common software control Blade Server - multiple blades (CPU, cache, RAM, hard drive) - common everything else (network, other cards)
SMP and Cache Coherence Each processor has its own cache How do we keep them in sync? - if one changes its copy, how do others know? - one option: directory protocol (centralized) - typical option: snoopy protocol (decentralized) MESI: Modified/Exclusive/Shared/Invalid - track global status of cache word with 2 bits - coordinate via snoop signals (set bits in others' cache words)
Hyperthreading and Multicore For a single CPU, pipelining and superscalar are the bread and butter However, we can do more We can grab multiple instruction streams • Each stream represents a different program • When one stream stalls, feed in another Hyperthreading switches among multiple instruction streams (called “threads”) Multicore does multiple streams in parallel
Finer Distinctions Divide: ask who divides the work? Hide: easier to hide divisions with some Share: how much data sharing is needed? These issues are becoming more a part of the programmer's design decisions Concurrent programming is becoming a necessary skill; used to be extra A major topic covered in Operating Systems
SMP vs Cluster vs CC-NUMA SMP versus Cluster • SMP has trouble scaling past 64 processors • SMP packaged more conveniently Cluster versus CC-NUMA • CC-NUMA scales like cluster • CC-NUMA data sharing more transparent • “NU” effect untried, uncharacterized
Where do SMT, Multicore Fit? SMP versus Hyperthreading and Multicore • better packaged than SMP Hyperthreading versus Multicore • Hyperthreading more transparent • Multicore scales better, but with limits Real world: do 'em all at multiple levels How about their place in Flynn's taxonomy?