EM 361: Παπάλληλοι Υπολογιζμοί Φαπμανδάπηρ Βαγγέληρ, Τμήμα Δθαπμοζμένων Μαθημαηικών Πανεπιζηήμιο Κπήηηρ, Φειμεπινό Δξάμηνο 2010/11 Κεθάλαιο 2: Απσιηεκηονική Απσιηεκηονική Παπάλληλων Σςζηημάηων. Ταξινόμηζη Flynn. Οπγάνωζη Μνήμηρ. Γίκηςο: Τοπολογία Γιαζύνδεζηρ. Παπαδείγμαηα.
Απσιηεκηονική Παπάλληλων Σςζηημάηων Τα ππνινγηζηηθά ζπζηήκαηα κπνξνύλ λα ηαμηλνκεζνύλ κε βάζε δηαθνξεηηθά θξηηήξηα. Παπαδείγμαηα: Ταμηλόκεζε Flynn (1966): βαζίδεηαη ζηνλ αξηζκό εληνιώλ θαη ηνλ αξηζκό δεδνκέλωλ. Αξρηηεθηνληθή Μλήκεο: κε βάζε ην αλ ε κλήκε είλαη θνηλή ή θαηαλεκεκέλε. Με βάζε ηελ δηαζύλδεζε ηωλ ππνινγηζηώλ ηελ ηνπνινγία ηνπ δηθηύνπ. Πξνζνρή: ηα πεξηζζόηεξα ζύγρξνλα παξάιιεια ππνινγηζηηθά ζπζηήκαηα έρνπλ πβξηδηθή αξρηηεθηνληθή. ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 2
Ταξινόμηζη Flynn (1966) Ταμηλόκεζε ηωλ ππνινγηζηώλ κε θξηηήξηα ηνλ αξηζκό κνλάδωλ εληνιώλ θαη ηνλ αξηζκό δεδνκέλωλ εηζαγωγήο. SISD: Single Instruction Single Data (Δληαίεο Δληνιέο Δληαία Γεδνκέλα). SIMD: Single Instruction Multiple Data (Δληαίεο Δληνιέο Πνιιαπιά Γεδνκέλα). MISD: Multiple Instruction Single Data (Πνιιαπιέο Δληνιέο Δληαία Γεδνκέλα). MIMD: Multiple Instruction Multiple Data (Πνιιαπιέο Δληνιέο Πνιιαπιά Γεδνκέλα). Πποζοσή: Η ηαμηλόκεζε Flynn κπνξεί λα αλαθέξεηαη ηόζν ζην hardware όζν θαη ζην software. Δδώ εζηηάδνπκε ζην hardware. ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 3
Απσιηεκηονική von Neumann: SISD: Ο Σειπιακόρ Υπολογιζηήρ Ο (κνλαδηθόο) ππνινγηζηήο εθηειεί ζεηξηαθά (κηα-κηα) ηηο εληνιέο. Τόζν ηα δεδνκέλα όζν θαη νη εληνιέο θνξηώλνληαη ζηελ κλήκε. Βειηίωζε ηεο Υπνινγηζηηθήο Ιζρύνο κε: Αύμεζε ηεο ηαρύηεηαο ηνπ ππνινγηζηή ή Βειηίωζε ηνπ ρξόλνπ πξόζβαζεο ζηε κλήκε. Σπκθόξεζε δεδνκέλωλ (bottleneck): Η ηαρύηεηα εθηέιεζεο ηνπ θώδηθα εμαξηάηαη από ηνλ ξπζκό κεηαθνξάο ηωλ δεδνκέλωλ από ηελ κλήκε ζηνλ επεμεξγαζηή. ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 4
Ιεπαπσική Απσιηεκηονική Μνήμηρ Σηόρνο: H βειηίωζε ηεο πξόζβαζεο ηεο κλήκεο: Φξήζε ηεξαξρηθήο κλήκεο Hierarchical Memory: Hard Disk, RAM, Cache (Level 1 and Level 2), Registers) ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 5
SIMD Όινη νη επεμεξγαζηέο εθηεινύλ ηελ ίδηα εληνιή ρξεζηκνπνηώληαο δηαθνξεηηθά ζύλνια δεδνκέλωλ. Όινη νη επεμεξγαζηέο είλαη ζπγρξνληζκέλνη ζην ίδην ζεκείν εθηέιεζεο. Οη εληνιέο δίλνληαη ζηνπο επεμεξγαζηέο από έλα επεμεξγαζηή ειέγρνπ (ζπλήζωο ν master node). Μπνξεί λα είλαη ηύπνπ «θαηαλεκεκέλεο» (distributed) ή «κνηξαζκέλεο» (shared) κλήκεο. ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 6
MISD Όινη νη επεμεξγαζηέο εθηεινύλ δηαθνξεηηθέο εληνιέο ρξεζηκνπνηώληαο ην ίδην ζύλνιν δεδνκέλωλ. Γεν ςπάπσοςν πνιινί ηέηνηνπ ηύπνπ ππνινγηζηέο γηαηί νη SIMD θαη MIMD αξρηηεθηνληθέο επηηξέπνπλ θαιύηεξε δηαρείξηζε κλήκεο θαη ιηγόηεξε επηθνηλωλία κεηαμύ επεμεξγαζηώλ. ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 7
MIMD Οη επεμεξγαζηέο εθηεινύλ δηαθνξεηηθό set εληνιώλ ρξεζηκνπνηώληαο δηαθνξεηηθά ζύλνια δεδνκέλωλ. Κάζε επεμεξγαζηήο έρεη αλεμάξηεην έιεγρν ηεο εθηέιεζεο θαη κπνξεί λα εθηειεί ηαπηόρξνλα δηαθνξεηηθέο εξγαζίεο. Μπνξεί λα είλαη ηύπνπ «θαηαλεκεκέλεο» (distributed) ή «κνηξαζκέλεο» (shared) κλήκεο. ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 8
Οπγάνωζη Μνήμηρ Γιάθοπα «επίπεδα» μνήμηρ: δεπηεξνγελέο απνζήθεπζε (secondary storage), θπξίωο κλήκε (main memory), εζωηεξηθή κλήκε (internal memory). Αλάινγα κε ηελ δηαρείξηζε ηεο θπξίωο κλήκεο ππάξρνπλ δύν ηύπνη ζπζηεκάηωλ: Σπζηήκαηα κνηξαζκέλεο-θνηλήο κλήκεο (Shared Memory Machines). Σπζηήκαηα θαηαλεκεκέλεο κλήκεο (Distributed Memory Machines). ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 9
Shared Memory Machines Shared Memory Machines: : Όινη νη επεμεξγαζηέο κνηξάδνληαη ηελ ίδηα κλήκε. Πνιπεπεμεξγαζηέο (Multiprocessors). Υπέπ: Ο πξνγξακκαηηζκόο είλαη ζπλήζωο επθνιόηεξνο. Καηά: Πνιύ δύζθνιν λα βάινπκε καδί πνιινύο επεμεξγαζηέο (ζπλήζωο N procs < 64). ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 10
Distributed Memory Machines Distributed Memory Machines. Κάζε επεμεξγαζηήο έρεη ηελ δηθηά ηνπ κλήκε (private memory). Πνιπππνινγηζηέο (Multicomputers). Υπέπ: Μπνξνύκε λα ρξεζηκνπνηήζνπκε πνιιέο ρηιηάδεο επεμεξγαζηώλ! Ο κόλνο ηξόπνο λα θηάζνπκε ζε ηζρύο Pflops. Καηά: Ο πξνγξακκαηηζκόο είλαη δπζθνιόηεξνο. Note: Μηα ζπζηνηρία πξνζωπηθώλ ππνινγηζηώλ (PC cluster) είλαη έλα MIMD ζύζηεκα. ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 11
Γίκηςο (Network) Βαζικά σαπακηηπιζηικά δικηύος ςπολογιζηών: Σύλδεζκνο: ην θαλάιη επηθνηλωλίαο κεηαμύ δύν θόκβωλ (nodes) ηνπ δηθηύνπ. Τύπνη ζπλδέζκωλ: Μνλόπιεπξνο, Ακθίπιεπξνο Γιάμεηπορ (diameter): Ο ειάρηζηνο αξηζκόο ζπλδέζεωλ κεηαμύ ηωλ πην απνκαθξπζκέλωλ θόκβωλ ηνπ δηθηύνπ. Υζηέπηζη Δπικοινωνίαρ (Communication Latency): Ο ρξόλνο πνπ απαηηείηαη από ην πιηθό θαη ην ινγηζκηθό ώζηε λα ππάξμεη επηθνηλωλία κεηαμύ δύν θόκβωλ ηνπ δηθηύνπ (t lat ). Δύπορ Γιαύλος (Bandwidth): Ο αξηζκόο ηωλ bits πνπ κπνξνύλ λα κεηαδνζνύλ ζηελ κνλάδα ρξόλνπ, x 0. Φπόνορ επικοινωνίαρ: Γηα X αξηζκό δεδνκέλωλ t comm = t lat + X/ x 0 ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 12
Τοπολογία Γικηύος (Network Topology) "There are two kinds of people in the world: those who divide the world into two kinds of people, and those who don't" Robert Benchley (1889-1945) Τοπολογία Γικηύος: Γηαζύλδεζε ηωλ δηαθόξωλ ζηνηρείωλ ζε έλα δίθηπν ππνινγηζηώλ. Γηαθνξεηηθνί ηξόπνη θαλνληθήο δηαζύλδεζεο (regular network topology) δηθηύνπ: Γπαμμική (Linear Bus): Οη κεραλέο ζπλδένληαη ζεηξηαθά ζην ίδην θαιώδην. -- Υπέπ: Δύθνιε ζύλδεζε, πην νηθνλνκηθή ιύζε. -- Καηά: Όιν ην δίθηπν πέθηεη αλ ππάξμεη βιάβε ηνπ θπξίωο θαιωδίνπ. Γύζθνινο εληνπηζκόο βιάβεο. Αζηεπιού (Star): Όιεο νη κεραλέο ζπλδένληαη ζε κία θεληξηθή κνλάδα. -- Υπέπ: Δύθνιε ζύλδεζε, εύθνινο εληνπηζκόο βιάβεο. -- Καηά: Πην αθξηβή ιύζε. Όιν ην δίθηπν πέθηεη ζε βιάβε ηεο θεληξηθήο κνλάδαο. Γενηπική (Tree): νη κεραλέο ζπλδένληαη ζε κνξθή δέληξνπ. -- Υπέπ: Σεηξηαθή ζύλδεζε γηα θάζε «θιαδί». Καιή ππνζηήξημε από Software. -- Καηά: Πην δύζθνιε δηαζύλδεζε. Όιν ην δίθηπν πέθηεη αλ ππάξμεη βιάβε ηνπ «θνξκνύ». ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 13
Τοπολογία Γικηύος Πλέγμα (Mesh): θάπνηεο από ηηο κεραλέο ζπλδένληαη κε πεξηζζόηεξεο από κία άιιε. -- Υπέπ: Δύθνιε ζύλδεζε, Δύθνινο εληνπηζκόο βιάβεο. -- Καηά: Πην αθξηβή ιύζε. Fully connected mesh: όιεο νη κεραλέο ζπλδένληαη αλακεηαμύ ηνπο. -- Υπέπ: Καηεπζείαλ ζύλδεζε κεηαμύ όιωλ ηωλ κεραλώλ. -- Καηά: Η πην αθξηβή θαη πεξίπινθε ιύζε. Hypercubes: νη κεραλέο ζπλδένληαη ζε κνξθή ππεξθύβωλ. -- Υπέπ: Δπέιηθηε δηαζύλδεζε. Καιή επηθνηλωλία. -- Καηά: Πεξίπινθε δηαζύλδεζε. Υβπιδικά (Hybrids): ζπλδπαζκόο όιωλ ηωλ παξαπάλω. Grid: 2D Mesh. Παπάμεηποι Δπιλογήρ: Οηθνλνκηθνί, Σπλνιηθό κήθνο θαιωδίνπ, Τύπνο θαιωδίνπ, Μειινληηθή ρξήζε ηνπ δηθηύνπ. ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 14
Τοπολογία Γικηύος (Static vs. Dynamic) Έλα δίθηπν ππνινγηζηώλ κπνξεί λα είλαη: Σηαηικό (Static): Οη επεμεξγαζηέο νη ίδηνη απνηεινύλ ηνπο θόκβνπο ηνπ δηθηύνπ. Γςναμικό (Dynamic): Οη επεμεξγαζηέο θαη ε κλήκε είλαη «εθηόο» δηθηύνπ θαη εηδηθνί θόκβνη κεηαθέξνπλ ηα κελύκαηα. ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 15
Μησανέρ GPU GPU (Graphics Processing Unit) αξρηηεθηνληθή: ρξήζε πνιύ-επεμεξγαζηηθήο θάξηαο γξαθηθώλ. Υβξηδηθή αξρηηεθηνληθή: Οη επεμεξγαζηέο ηεο θάξηαο γξαθηθώλ είλαη SIMD ελώ νη επεμεξγαζηέο ηεο κεηξηθήο είλαη MIMD. Πνιύ ηζρπξή θαη νηθνλνκηθή ιύζε: δπλαηόηεηα θαηαζθεπήο ππνινγηζηή γξαθείνπ (desktop) κε ηζρύ ηάμεο Tera-flops! Φπήζη ηηρ κάπηαρ γπαθικών για επιζηημονικούρ ςπολογιζμούρ ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 16
Βιβλιογπαθία Parallel Programming, B. Wilkinson, M. Allen, Prentice Hall, 2nd Ed. 2005. Designing and Building Parallel Programs, Ian Foster, Addison-Wesley 1994. Parallel Computing: Theory and Practice, M. J. Quinn, McGraw-Hill, 1994. Computer Networks: http://fcit.usf.edu/network/ http://en.wikipedia.org/wiki/flynn s_taxonomy http://www.turing.org.uk/turing/scrapbook/computer.html GPU Machines: http://techreport.com/articles.x/17670 ΔΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 2 17