Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 חישוב מקבילי לכל תלמיד/ה פרופ' רן גינוסר הנדסת חשמל ומדעי המחשב הטכניון

Similar presentations


Presentation on theme: "1 חישוב מקבילי לכל תלמיד/ה פרופ' רן גינוסר הנדסת חשמל ומדעי המחשב הטכניון"— Presentation transcript:

1 1 חישוב מקבילי לכל תלמיד/ה פרופ' רן גינוסר הנדסת חשמל ומדעי המחשב הטכניון ran@ee.technion.ac.ilran@ee.technion.ac.il www.ee.technion.ac.il/~ranwww.ee.technion.ac.il/~ran

2 2 תוכן מדוע חישוב מקבילי ? תיאוריה ארכיטקטורה אלגוריתמים מה לעשות

3 3 מדוע חישוב מקבילי ? כולם עושים זאת –search “Parallel computing high school” חישוב מהיר יותר חישוב בהספק נמוך יותר חישוב באנרגיה נמוכה יותר

4 4 תיאוריה (1) מודל PRAM –Parallel Random Access Machine –מיועד לאלגוריתם אחד בלבד בו-זמנית –קריאה וכתיבה "במקביל" Concurrently Simultaneously –ביחידת זמן: כל מעבד מבצע חישוב, או כל מעבד ניגש לזיכרון P0P0 P1P1 P2P2 PnPn Shared memory …

5 5 דוגמה: סיכום אברי מערך + A1 A2 + + + A3 A4 + A5 A6 + + A7 A8 T 1 =7, O(n) P=1 T P =3, O( log n) P=4, O(n) SpeedUp=T 1 /T P =7/3=2.33, O(n/ log n) סה"כ עבודה אפשרית : P  T P =12, O(n log n) סה"כ עבודה שבוצעה: W=7, O(n) יעילות: E P = W / PT P =7/12, O(1/ log n) + A1 A2 + A3 + A4 + A5 + A6 + A7 + A8 סדרתי מקבילי אבל: שכחנו להתחשב במחיר הגישה לזיכרון...

6 6 Exchange Swap elements from A[ ] with those of B[ ] Input: A[ ], B[ ], n = length of arrays SERIAL int main( ) { int i; for(i=0; i<n; i++) { int e= A[i]; A[i] = B[i]; B[i] = e; } PARALLEL Duplicable task() // n copies { int x ; x= A[$]; A[$] = B[$]; B[$] = x; } כמה מעבדים? מה זמן החישוב? ההאצה? היעילות? FINE GRANULARITY

7 7 Optimal Parallel Exchange int y[n], x[n]; Duplicable Task first-A () { x[$] = A[$]; } Duplicable Task second-A ( first-A,first-B ) { A[$] = y[$]; } Duplicable Task first-B () { y[$] = B[$]; } Duplicable Task second-B ( first-A,first-B ) { B[$] = x[$]; } על כמה מעבדים? מה יקרה אם יהיו פחות מעבדים? יותר מעבדים? מה זמן חישוב? ההאצה? היעילות? מה המשמעות של FINE GRANULARITY ??

8 8 תיאוריה (2) מה פירוש גישה במקביל לזיכרון? –EREW: קריאה בלעדית, כתיבה בלעדית אל / מאותו משתנה בדיוק! –CREW: קריאה בו-זמנית, כתיבה בלעדית –ERCW –CRCW: קריאה וכתיבה בו-זמנית האלגוריתם חייב להבטיח חישוב נכון –לא החומרה מגינה מפני המתכנת הטיפש האם מודל PRAM מעשי?

9 9 סינכרון סינכרון PRAM –כל המעבדים מבצעים אותה פעולה באותו זמן חוסר סינכרון –כל מעבד מתקדם בקצב שלו, עד נקודת סינכרון דוגמה בהמשך סינכרון בקטעים –BSP = Bulk Synchronous Pattern –כל מעבד בקצב שלו, אבל נקודות הסינכרון משותפות (= מחסומים) –בכל קטע ירוק אין שיתוף זיכרונות –בנקודות המחסום מחליפים מידע BSP

10 10 מודלים אחרים מחשב רשת P+M

11 11 כיצד לארגן את המעבדים והזכרונות על גבי שבב ?

12 12 P0 P1 P2 P3 P4 P5 P6 P7 מודל נהלל: המשותף קרוב לכולם

13 13 ארכיטקטורה

14 14 Start-up company in Israel Result of Technion research (since 1980s) P LURALITY

15 15 Architecture: Part I “anti-local” addressing by interleaving MANY banks / ports negligible conflicts fine granularity NO PRIVATE MEMORY tightly coupled memory equi-distant (1 cycle each way) fast combinational NOC P P P PPP P P external memory shared memory P-to-M resolving NoC P LURALITY

16 16 P P P PPP P P external memory shared memory P-to-M resolving NoC low latency parallel scheduling enables fine granularity scheduler P-to-S scheduling NoC “anti-local” addressing by interleaving MANY banks / ports negligible conflicts fine granularity NO PRIVATE MEMORY tightly coupled memory equi-distant (1 cycle each way) fast combinational NOC Architecture: Part II P LURALITY

17 17 Actual layout (40nm) 1MByte Data Cache 64 KB Instruction Cache Sync/Sched 32 processors

18 18 programming model Compile into –task-dependency-graph = ‘task map’ –task codes Task maps loaded into scheduler Tasks loaded into memory regular duplicable task xxx( dependencies ) join/fork { … $ …. ….. } Task template: P P P PPP P P external memory shared memory P-to-M resolving NoC scheduler P-to-S scheduling NoC P LURALITY

19 19 Fine Grain Parallelization SERIAL for ( i=0; i<10000; i++ ) { a[i] = b[i]*c[i]; } PARALLEL duplicable task XX(…) // 10000 copies {a[$] = b[$]*c[$];} All tasks, or any subset, can be executed in parallel

20 20 Task map example (2D FFT) Duplicable task Conditional task Join / fork task

21 21 Another task map (linear solver)

22 22 Linear Solver: Simulation snap-shots

23 23 Architectural Benefits Shared, uniform (equi-distant) memory –no worry which core does what –no advantage to any core because it already holds the data Many-bank memory + fast P-to-M NoC –low latency –no bottleneck accessing shared memory Fast scheduling of tasks to free cores (many at once) –enables fine grain data parallelism –impossible in other architectures due to: task scheduling overhead data locality Any core can do any task equally well on short notice –scales automatically Programming model: –intuitive to programmers –easy for automatic parallelizing compiler P LURALITY

24 24 Analysis

25 25 Two (analytic) approaches to many cores 1) How many cores can fit into a fixed size VLSI chip? 2) One core is fixed size. How many cores can be integrated? The following analysis employs approach (1)

26 26 Analysis

27 27 Analysis 64 256 1K 4K power   N perf   N freq  1/  N Perf / power  const

28 28 מה לעשות? ללמד חישוב מקבילי –מעט ארכיטקטורה –הרבה אלגוריתמים להשתמש במערכת Plurality לפיתוח תכנה, סימולציה ומדידת ביצועים –מבוססת GCC, Eclipse –לשפות C, ++C –זמינה חינם לכל מורה ותלמיד/ה, הורדה מהאתר –כוללת דוגמאות והוראות –מאפשרת התנסות

29 29 סיכום מחשב מקבילי (מעבדים קטנים) יעיל יותר ממחשב יחיד חזק –בתנאי שאנו יודעים לתכנת אותו ביעילות –וזה אפשרי רק במחשב פשוט ועם אלגוריתם חכם תכנות מקבילי –קל ללימוד למורה –מתאים ללימוד בבי"ס תיכון –חיוני ללמוד אותו בבי"ס תיכון

30 30


Download ppt "1 חישוב מקבילי לכל תלמיד/ה פרופ' רן גינוסר הנדסת חשמל ומדעי המחשב הטכניון"

Similar presentations


Ads by Google