חישוב מקבילי לכל תלמיד/ה

Post on 19-Jan-2016

71 views 7 download

description

חישוב מקבילי לכל תלמיד/ה. פרופ' רן גינוסר הנדסת חשמל ומדעי המחשב הטכניון ran@ee.technion.ac.il www.ee.technion.ac.il/~ran. תוכן. מדוע חישוב מקבילי ? תיאוריה ארכיטקטורה אלגוריתמים מה לעשות. מדוע חישוב מקבילי ?. כולם עושים זאת search “Parallel computing high school” חישוב מהיר יותר - PowerPoint PPT Presentation

Transcript of חישוב מקבילי לכל תלמיד/ה

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