Post on 19-Jan-2016
description
1
חישוב מקבילי לכל תלמיד/ה
פרופ' רן גינוסרהנדסת חשמל ומדעי המחשב
הטכניוןran@ee.technion.ac.il www.ee.technion.ac.il/~ran
2
תוכן
מדוע חישוב מקבילי ?•
תיאוריה•
ארכיטקטורה•
אלגוריתמים•
מה לעשות•
3
מדוע חישוב מקבילי ?
כולם עושים זאת•–search “Parallel computing high school”
חישוב מהיר יותר•
חישוב בהספק נמוך יותר•
חישוב באנרגיה נמוכה יותר•
4
(1תיאוריה )
PRAMמודל •–Parallel Random Access Machineמיועד לאלגוריתם אחד בלבד בו-זמנית–קריאה וכתיבה "במקביל"–
•Concurrently•Simultaneously
ביחידת זמן:–כל מעבד מבצע חישוב, או•כל מעבד ניגש לזיכרון•
P0
P1
P2
Pn
Shared m
emory…
5
דוגמה: סיכום אברי מערך
+
A1 A2
+
+
+
A3 A4
+
A5 A6
+
+
A7 A8
T1=7, O)n(P=1
TP=3, O)log n(P=4, O)n(SpeedUp=T1/TP=7/3=2.33, O)n/logn(
)PTP=12, O)nlog nסה"כ עבודה אפשרית: )W=7, O)nסה"כ עבודה שבוצעה:
)EP = W / PTP=7/12, O)1/ log nיעילות:
+
A1 A2
+
A3
+
A4
+
A5
+
A6
+
A7
+
A8
תידרס
מקבילי
אבל: שכחנו להתחשב במחיר הגישה לזיכרון...
6
ExchangeSwap elements from A[ ] with those of B[ ]
Input: A[ ], B[ ], n = length of arrays
SERIALint main) ({ int i; for)i=0; i<n; i++( {
int e= A[i];A[i] = B[i];B[i] = e;
}}
PARALLELDuplicable task)( // n copies{ int x ; x= A[$]; A[$] = B[$]; B[$] = x;}
כמה מעבדים?מה זמן החישוב? ההאצה? היעילות?
FINE GRANULARITY
7
Optimal Parallel Exchangeint 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
(2תיאוריה )
מה פירוש גישה במקביל לזיכרון?•–EREWקריאה בלעדית, כתיבה בלעדית :
אל / מאותו משתנה בדיוק!•
–CREWקריאה בו-זמנית, כתיבה בלעדית :–ERCW–CRCWקריאה וכתיבה בו-זמנית :
האלגוריתם חייב להבטיח חישוב נכון•לא החומרה מגינה מפני המתכנת הטיפש–
מעשי? PRAMהאם מודל •
9
סינכרון
PRAMסינכרון •כל המעבדים מבצעים אותה פעולה באותו זמן–
חוסר סינכרון•כל מעבד מתקדם בקצב שלו, עד נקודת –
סינכרוןדוגמה בהמשך•
סינכרון בקטעים•–BSP = Bulk Synchronous Pattern
כל מעבד בקצב שלו, אבל נקודות הסינכרון –משותפות )= מחסומים(
בכל קטע ירוק אין שיתוף זיכרונות–בנקודות המחסום מחליפים מידע–
BSP
10
מודלים אחרים
P+Mמחשב רשת• P+M P+M P+M
P+M P+M P+M P+M
P+M P+M P+M P+M
P+M P+M P+M P+M
11
כיצד לארגן את המעבדים והזכרונות על גבי שבב ?
12
P0 P1
P2
P3P4P5
P6
P7
מודל נהלל: המשותף קרוב לכולם
13
ארכיטקטורה
14
• Start-up company in Israel
• Result of Technion research )since 1980s(
PLURALITY
15
Architecture: Part I
“anti-local” addressing by interleavingMANY banks / portsnegligible conflicts
fine granularityNO PRIVATE MEMORY
tightly coupled memoryequi-distant )1 cycle each way(fast combinational NOC
PPPPPPPP
external memory
shared memory
P-to-M resolving NoC
PLURALITY
16
PPPPPPPP
external memory
shared memory
P-to-M resolving NoC
low latency parallel schedulingenables fine granularity
scheduler
P-to-S scheduling NoC
“anti-local” addressing by interleavingMANY banks / portsnegligible conflicts
fine granularityNO PRIVATE MEMORY
tightly coupled memoryequi-distant )1 cycle each way(fast combinational NOC
Architecture: Part IIPLURALITY
17
Actual layout )40nm(
1MByte Data Cache
1MByte Data Cache64 K
B Instruction
Cache
64KB
InstructionC
ache
Sync/S
ched
32 processors
32 processors
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: PPPPPPPP
external memory
shared memory
P-to-M resolving NoC
scheduler
P-to-S scheduling NoC
PLURALITY
19
Fine Grain Parallelization
• SERIALfor ( i=0; i<10000; i++ ) { a[i] = b[i]*c[i]; }
• PARALLELduplicable task XX(…) // 10000 copies {a[$] = b[$]*c[$];}
• All tasks, or any subset, can be executed in parallel
20
Task map example )2D FFT(
Duplicable task
………
………
Conditional task
Join / fork task
21
Another task map )linear solver(
22
Linear Solver: Simulation snap-shots
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
PLURALITY
24
Analysis
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
Analysis
27
1.E-03
1.E-02
1.E-01
1.E+00
1.E+01
1.E+02
1.E+03
1.E+04
1.E+05
1.E+06
1.E+07
1.E+08
10 100 1000 10000
Number of Processors
Power Perf Freq Perf/Power Series5
Analysis64 256 1K 4K
power N
perf N
freq 1/N
Perf / power const
28
מה לעשות?
ללמד חישוב מקבילי•מעט ארכיטקטורה–הרבה אלגוריתמים–
לפיתוח תכנה, Pluralityלהשתמש במערכת •סימולציה ומדידת ביצועים
GCC, Eclipseמבוססת –C, ++Cלשפות –זמינה חינם לכל מורה ותלמיד/ה, הורדה מהאתר–כוללת דוגמאות והוראות–מאפשרת התנסות–
29
סיכום
מחשב מקבילי )מעבדים קטנים( יעיל יותר •ממחשב יחיד חזק
בתנאי שאנו יודעים לתכנת אותו ביעילות–וזה אפשרי רק במחשב פשוט ועם אלגוריתם חכם–
תכנות מקבילי•קל ללימוד למורה–מתאים ללימוד בבי"ס תיכון–חיוני ללמוד אותו בבי"ס תיכון–
30