EM 361: Παπάλληλοι Υπολογιζμοί Φαπμανδάπηρ Βαγγέληρ, Τμήμα Εθαπμοζμένων Μαθημαηικών Πανεπιζηήμιο Κπήηηρ, Φειμεπινό Εξάμηνο 2010/11 Κεθάλαιο 3: Θεωπία Παπάλληλος Ππογπαμμαηιζμού - Απόδοζη Απόδοζη Παπάλληλων Ππογπαμμάηων. Νόμορ Amdahl. Νόμορ Gustafson. Karp-Flatt metric. Τεζη Αναθοπάρ: Linpack.
Απόδοζη Παπάλληλος Ππογπαμμαηιζμού Βαζηθόο ζηόρνο ηνπ παξάιιεινπ αιγόξηζκνύ είλαη ε ηαρύηεξε επίιπζε ελόο πξνβιήκαηνο. Ο ρξόλνο εθηέιεζεο ηνπ παξάιιεινπ αιγόξηζκνπ πξέπεη λα είλαη πνιύ κηθξόηεξνο από ηνλ ρξόλν εθηέιεζεο ηνπ ζεηξηαθνύ αιγόξηζκνπ. Η απόδνζε παξάιιειωλ αιγνξίζκωλ πξνγξακκάηωλ κπνξεί λα κεηξεζεί κε εκπεηξηθνύο δείθηεο όπωο ν ιόγνο επηηάρπλζεο. Θεωξεηηθνί λόκνη γηα δηαθνξεηηθνύο ηύπνπο πξνβιεκάηωλ: Νόκνο ηνπ Amdahl Νόκνο ηνπ Gustafson ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 2
Απόδοζη Παπάλληλων Ππογπαμμάηων Η παξάιιειε επεμεξγαζία πξνϋπνζέηεη ηνλ θαηακεξηζκό ελόο πξνβιήκαηνο (ή κηαο εξγαζίαο) ζε κηθξόηεξεο δηεξγαζίεο πνπ κπνξνύλ λα εθηειεζηνύλ ηαπηόρξνλα (παξάιιεια). Επηκέξηζε (Granularity): ην κέγεζνο ηεο εξγαζίαο (εληνιώλ) θάζε δηεξγαζίαο. Σηόρνο είλαη ε επίηεπμε κέζεο επηκέξηζεο: -- Μηθξή επηκέξηζε: Μηθξόο θόξηνο εξγαζίαο ζε θάζε επεμεξγαζηή, πνιύ επηθνηλωλία. -- Μεγάιε επηκέξηζε: Μεγάινο θόξηνο εξγαζίαο ζε θάζε επεμεξγαζηή, ιίγε επηθνηλωλία. Βαζηθόο ζηόρνο ε κεγηζηνπνίεζε ηνπ ιόγνπ: Φξόλνο Υπνινγηζκνύ Φξόλνο Επηθνηλωλίαο t t comp comm ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 3
Speedup Factor (Λόγορ Επιηάσςνζηρ) Λόγνο επηηάρπλζεο, S, είλαη έλα κέηξν ηεο απόδνζεο ελόο πξνγξάκκαηνο ζε έλα παξάιιειν ππνινγηζηηθό ζύζηεκα: SP ( ) ρξόλνο εθηέιεζεο ζε έλα επεμεξγαζηή ρξόλνο εθηέιεζεο ζε P επεμεξγαζηέο T T s p Απόιπηνο ιόγνο επηηάρπλζεο: αλ T s είλαη ν ρξόλνο ηνπ θαιύηεξνπ ζεηξηαθνύ αιγόξηζκνπ. Σρεηηθόο ιόγνο επηηάρπλζεο: αλ T s είλαη ν ρξόλνο ηνπ παξάιιεινπ αιγόξηζκνπ ζε 1 επεμεξγαζηή. Βέιηηζηε επηηάρπλζε είλαη ε γξακκηθή: S(P) = P Υπεξγξακκηθή επηηάρπλζε (S(P) > P): κπνξεί λα εκθαληζηεί ζε κηθξό αξηζκό επεμεξγαζηώλ. Οθείιεηαη: 1) είηε ζηελ δηαθνξεηηθή ρξήζε-ηεξαξρία εζωηεξηθήο κλήκεο ζηνπο δηαθνξεηηθνύο επεμεξγαζηέο (cache effect), 2) είηε ζε απηόκαηε βειηηζηνπνίεζε (optimization) ηνπ ζεηξηαθνύ θώδηθα από ηνλ compiler. ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 4
Speedup Factor (Λόγορ Επιηάσςνζηρ) Ο ιόγνο επηηάρπλζεο, είλαη έλα απιό θαη θαηαλνεηό κέηξν απόδνζεο. Αλ ν ιόγνο επηηάρπλζεο είλαη κεγάινο (S(P) είλαη ηάμεο P) ηόηε ν παξάιιεινο αιγόξηζκνο είλαη θαιόο. Αλ ν ιόγνο επηηάρπλζεο είλαη κηθξόο (S(P) <<P) ηόηε: 1) είηε ην πξόβιεκα δελ παξαιιειίδεηαη, 2) είηε ν παξάιιεινο αιγόξηζκνο ρξεηάδεηαη βειηίωζε! Πποζοσή: Ο κέγηζηνο ιόγνο επηηάρπλζεο δελ έρεη λόεκα αλ είλαη << P. Καζώο ν αξηζκόο ηωλ επεμεξγαζηώλ, n, απμάλεηαη, ην ζεηξηαθό θνκκάηη ηνπ θώδηθα απνηειεί νινέλα θαη κεγαιύηεξν ηκήκα ηνπ ζπλνιηθνύ ρξόλνπ εθηέιεζεο (Νόκνο ηνπ Amdahl). ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 5
Νόμορ ηος Amdahl (1967) Έζηω όηη γηα κηα δηεξγαζία απαηηείηαη ζε έλα επεμεξγαζηή ρξόλνο t S. Έζηω αθόκε όηη έλα κέξνο (πνζνζηό) f ηεο δηεξγαζίαο είλαη ζεηξηαθό ελώ ην ππόινηπν 1-f παξαιιειίδεηαη. Τόηε γηα P επεμεξγαζηέο ν ιόγνο επηηάρπλζεο είλαη: SP ( ) TS ts P T (1 f) t P s ft 1 ( P 1) f s P Τν όξην γηα P (κέγηζηε επηηάρπλζε) είλαη : S max lim S( P) P 1 f Πποζοσή: αθόκε θαη αλ κόλν ην 10% ηνπ πξνβιήκαηνο είλαη ζεηξηαθό ηόηε S max = 10! Μεγάιν θνκκάηη ηεο παξάιιειεο επεμεξγαζίαο αθνξά ηελ ειαρηζηνπνίεζε ηνπ f. ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 6
Νόμορ ηος Amdahl ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 7
Νόμορ ηος Amdahl ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 8
Αποδοηικόηηηα, Επεκηαζιμόηηηα Αποδοηικόηηηα (Efficiency) : SP ( ) Ts EP ( ) P PT p -- Αιγόξηζκνη κε ζρεδόλ γξακκηθή επηηάρπλζε: Ε ~ 1 -- Πνιινί δύζθνια παξαιιειίζηκνη αιγόξηζκνη έρνπλ: Ε ~ 1/log(P), Ε 0 κε P! Επεθηαζηκόηεηα πιηθνύ είλαη ε δπλαηόηεηα αλαβάζκηζεο ηωλ ζπζηεκάηωλ (hardware) κε απνηέιεζκα ηελ αύμεζε ηεο απόδνζεο. -- Όκωο πεξηζζόηεξνη επεμεξγαζηέο κεγαιύηεξν δίθηπν αύμεζε ηεο επηθνηλωλίαο πηώζε ηεο απόδνζεο! Επεθηαζηκόηεηα (Scalability) αιγνξίζκνπ είλαη ε δπλαηόηεηα ηνπ ινγηζκηθνύ (software) λα δηαρεηξηζηεί κεγαιύηεξα πξνβιήκαηα θαη άξα κεγαιύηεξν όγθν δεδνκέλωλ κε ζρεηηθά κηθξή αύμεζε ζην θόζηνο ηνπ αιγόξηζκνπ. ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 9
Νόμορ ηος Gustafson (1988) Ο λόκνο ηνπ Amdahl ζέηεη έλα πάλω όξην ζηελ κέγηζηε επηηάρπλζε πνπ κπνξεί λα επηηεπρζεί ζε έλα πξόγξακκα κέζω παξαιιειηζκνύ. Ο ιόγνο είλαη όηη ην ζεηξηαθό πνζνζηό f είλαη ζηαζεξό. Ο λόκνο ηνπ Gustafson πξνηείλεη όηη ν σπόνορ εκηέλεζηρ ηος ζειπιακού μέποςρ είναι ζηαθεπόρ. Έζηω n ην κέηξν κεγέζνπο (measure) ελόο πξνβιήκαηνο. Έζηω αθόκε όηη ε εθηέιεζε ηνπ ζε έλα παξάιιειν ζύζηεκα κε P επεμεξγαζηέο κπνξεί λα γξαθεί ζαλ f(n) + (1- f(n))=1, όπνπ f(n) είλαη ν ρξόλνο εθηέιεζεο ηνπ ζεηξηαθνύ κέξνπο ηνπ θώδηθα θαη (1- f(n)) ν ρξόλνο εθηέιεζεο ηνπ παξάιιεινπ κέξνπο ηνπ θώδηθα. Τόηε ν ζπλνιηθόο ρξόλνο εθηέιεζεο ηνπ πξνγξάκκαηνο ζε έλα επεμεξγαζηή είλαη: f(n) +P (1-f(n)). Ο ιόγνο επηηάρπλζεο είλαη: S( P) f ( n) P(1 f ( n)) P f ( n)( P 1) ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 10
Νόμορ ηος Gustafson (1988) Καζώο ν αξηζκόο ηωλ επεμεξγαζηώλ απμάλεη, απμάλεη θαη ην παξάιιειν ηκήκα ηνπ θώδηθα. Υπνζέηνληαο όηη ην ζεηξηαθό κέξνο f(n) κεηώλεηε κε ην κέγεζνο ηνπ πξνβιήκαηνο, n, ν ιόγνο επηηάρπλζεο απμάλεη. Τν όξην γηα n είλαη : Smax lim S( P) P n Πξαθηηθά ν λόκνο ηνπ Gustafson ζεωξεί όηη ε επίδξαζε ηνπ ζεηξηαθνύ κέξνπο είλαη ε ίδηα αθόκε θαη γηα πνιύ κεγάια παξάιιεια ζπζηήκαηα ελώ λόκνο ηνπ Amdahl όηη επίδξαζε ηνπ ζεηξηαθνύ κέξνπο απμάλεη όζν κεγαιώλεη ν αξηζκόο ηωλ επεμεξγαζηώλ! Τα πεξηζζόηεξα ξεαιηζηηθά-πνιύπινθα πξνβιήκαηα αθνινπζνύλ πβξηδηθή ζπκπεξηθνξά κεηαμύ ηνπ λόκνπ ηνπ Gustafson θαη ηνπ λόκνπ ηνπ Amdahl. ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 11
Karp-Flatt Metric (1990) Η κεηξηθή Karp-Flatt είλαη έλαο δείθηεο παξαιιειηζκνύ ελόο θώδηθα ζε παξάιιεια ζπζηήκαηα ρξεζηκνπνηώληαο ην ζεηξηαθό κέξνο. Έζηω όηη έλαο παξάιιεινο θώδηθαο «ηξέρεη» ζε P επεμεξγαζηέο θαη όηη T S είλαη ν ρξόλνο εθηέιεζεο ηνπ ζεηξηαθνύ κέξνπο θαη T P ν ρξόλνο εθηέιεζεο ηνπ παξάιιεινπ κέξνπο ζε έλα επεμεξγαζηή. Τόηε ν ζπλνιηθόο ρξόλνο εθηέιεζεο ηνπ πξνγξάκκαηνο ζε P επεμεξγαζηέο, T(P), είλαη: TP T ( P) Ts P Οξίδνληαο ην «πεηξακαηηθό» ζεηξηαθό κέξνο ωο e = T s /T(1) έρνπκε: T ( P) T (1) e T(1)(1 e) P ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 12
Karp-Flatt Metric (1990) Φξεζηκνπνηώληαο ην ιόγνο επηηάρπλζεο, S=T(1)/T(P), ηειηθά: P 1 1 e e e S S P P 1 1 Η ρξήζε ηνπ «πεηξακαηηθνύ» ζεηξηαθνύ κέξνπο βνεζάεη ζην λα έρνπκε έλα εκπεηξηθό κέηξν πνπ κπνξεί λα ρξεζηκνπνηεζεί πξαθηηθά ζηε αλάιπζε πεξίπινθωλ αιγνξίζκωλ. Όζν κηθξόηεξν ην e ηόζν θαιύηεξνο ν παξαιιειηζκόο. Γηα δεδνκέλν κέγεζνο πξνβιήκαηνο n ε απνηειεζκαηηθόηεηα ηνπ παξάιιεινπ πξνγξάκκαηνο ζπλήζωο κεηώλεηαη όζν ν αξηζκόο ηωλ επεμεξγαζηώλ απμάλεη. Φξεζηκνπνηώληαο ηελ κεηξηθή Karp-Flatt κπνξνύκε λα ππνινγίζνπκε αλ ε κείωζε ηεο απνηειεζκαηηθόηεηαο νθείιεηαη ζην ηύπνπ ηνπ πξνβιήκαηνο ή ζηνλ αιγόξηζκν. ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 13
Το Τεζη Αναθοπάρ LINPACK Τν Τεζη Αλαθνξάο LINPACK (LINPACK Benchmarks) είλαη έλα κέηξν ηεο ηαρύηεηαο εθηέιεζεο πξάμεωλ πξαγκαηηθώλ αξηζκώλ ελόο ππνινγηζηηθνύ ζπζηήκαηνο. Απνηειείηαη από κηα ζεηξά ραξαθηεξηζηηθώλ ππν-πξνγξακκάηωλ ηα νπνία ιύλνπλ έλα ζύζηεκα γξακκηθώλ εμηζώζεωλ. Τα πξνγξάκκαηα είλαη γξακκέλα ζε FORTRAN ή C θαη ν αιγόξηζκνο είλαη LU decomposition with partially pivoting. Τν LINPACK ρξεζηκνπνηεί κία ραξαθηεξηζηηθή βηβιηνζήθε γξακκηθήο άιγεβξαο (BLAS, Basic Linear Algebra Subprograms) γηα εθηέιεζε βαζηθώλ πξάμεωλ πηλάθωλ. Ο ζπλνιηθόο αξηζκόο πξάμεωλ ηνπ αιγόξηζκνπ επίιπζεο ζπζηήκαηνο n γξακκηθώλ εμηζώζεωλ είλαη: 2/3 n 3 + n 2 + O(n). R : ε απόδνζε ηνπ αιγόξηζκνπ ζε flops γηα πνιύ κεγάιν πξόβιεκα (n=n max ). R Peak : ε ζεωξεηηθή απόδνζε γηα θάζε ζύζηεκα. ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 14
Το Τεζη Αναθοπάρ LINPACK Λίζηα επίδνζεο ζην ηεζη LINPACK ηωλ θαιύηεξωλ ππνινγηζηηθώλ ζπζηεκάηωλ ζηνλ θόζκν (06/2009). Name Number of CPU s R (Gflops) N max (Order) R Peak (Gflops) Roadrunner, IBM Cluster 129600 1105000 2329599 1456704 Jaguar, Cray XT 150152 1059000 4712799 1381400 Juelich (FZJ), IBM Cluster BlueGene/L, IBM Cluster Kraken XT5, Cray XT 294912 825500 4043519 1002700 212992 478200 2456063 596378 66000 463300 2078999 607000 ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 15
Βιβλιογπαθία Parallel Programming, B. Wilkinson, M. Allen, Prentice Hall, 2nd Ed. 2005. Parallel Computing: Theory and Practice, M. J. Quinn, McGraw-Hill, 1994. Scientific Computing: An introduction with Parallel Computing, G. Golub, J. Ortega, Academic Press, 1993. http://en.wikipedia.org/wiki/parallel_computing LINPACK: http://www.netlib.org/linpack/, http://www.top500.org/ BLAS: http://www.netlib.org/blas/ ΕΜ 361: Παξάιιεινη Υπνινγηζκνί 2010/11, Κεθάιαην 3 16