multi-threaded algorithm 3

15
Multi- threaded Algorithm 3 Michael Tsai 2011/6/17

Upload: yeriel

Post on 07-Jan-2016

67 views

Category:

Documents


0 download

DESCRIPTION

Multi-threaded Algorithm 3. Michael Tsai 2011/6/17. Multithreaded matrix multiplication. P-SQUARE-MATRIX-MULTIPLY(A,B) n= A.rows let C be a new n x n matrix parallel for i=1 to n parallel for j=1 to n for k=1 to n return C. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Multi-threaded Algorithm 3

Multi-threaded Algorithm 3

Michael Tsai2011/6/17

Page 2: Multi-threaded Algorithm 3

2

Multithreaded matrix multiplicationP-SQUARE-MATRIX-MULTIPLY(A,B)n=A.rowslet C be a new n x n matrixparallel for i=1 to n

parallel for j=1 to n

for k=1 to n

return C

𝑇 1(𝑛)=Θ (𝑛3 )

𝑇 ∞ (𝑛)=Θ ( log n )+Θ (log𝑛)+Θ (𝑛)=Θ(𝑛)

𝑇 1 (𝑛)𝑇 ∞ (𝑛 )

=Θ (𝑛3 )Θ (𝑛)

=Θ (𝑛2)

Page 3: Multi-threaded Algorithm 3

3

Divide-and-conquer Multithreaded Algorithm for Matrix Multiplication ( 勒勒長 )

C T

Page 4: Multi-threaded Algorithm 3

4

P-MATRIX-MULTIPLY-RECURSIVE(C,A,B)n=A.rowsif n==1

else let T be a new n x n matrixpartition A,B,C, and T into n/2 x n/2

submatrices (spawn P-MATRIX-MULTIPLY-RECURSIVE( spawn P-MATRIX-MULTIPLY-RECURSIVE(spawn P-MATRIX-MULTIPLY-RECURSIVE(spawn P-MATRIX-MULTIPLY-RECURSIVE(spawn P-MATRIX-MULTIPLY-RECURSIVE(spawn P-MATRIX-MULTIPLY-RECURSIVE(spawn P-MATRIX-MULTIPLY-RECURSIVE(P-MATRIX-MULTIPLY-RECURSIVE(syncparallel for i=1 to n

parallel for j=1 to n

𝑀 1 (𝑛)=8𝑀 1(𝑛2 )+Θ (𝑛2 )=Θ (𝑛3 )

𝑀∞ (𝑛)=𝑀∞(𝑛2 )+Θ ( log𝑛 )+Θ (log𝑛)=Θ ( log2𝑛)

𝑀 1 (𝑛)𝑀∞ (𝑛 )

=Θ (𝑛3 )Θ ( log2𝑛)

=Θ( 𝑛3

log2𝑛 )

Page 5: Multi-threaded Algorithm 3

5

How about Strassen’s method? Reading assignment: p.795-796.

Parallelism: , slightly less than the original recursive version!

Page 6: Multi-threaded Algorithm 3

6

Multithreaded Merge SortMerge-Sort’(A,p,r)if p<r

q=spawn MERGE-SORT’(A,p,q)MERGE-SORT’(A,q+1,r)syncMERGE(A,p,q,r) Θ(𝑛)

𝑀𝑆1′ (𝑛 )=2𝑀𝑆1

′ (𝑛2 )+Θ (𝑛 )=Θ (𝑛 log𝑛)

𝑀𝑆∞′ (𝑛 )=𝑀𝑆∞

′ (𝑛2 )+Θ (𝑛)=Θ (𝑛 )

Parallelism=

Merge() is the bottleneck!

A: Array to be sortedp and r: Start and end index of the range to be sorted

Page 7: Multi-threaded Algorithm 3

7

1. 挑出的中位數 x2. 找出中這個位置使得都 < x, 都 x

把 Merge 也用 Divide & Conquer 來解 !( 方便交給不同的 thread 去做 )

3. Copy x 到新地方 ( 根據 x 和

4. 開分身去 merge 和 , 及 和兩個區段

Base case: 和都是空的

Page 8: Multi-threaded Algorithm 3

8

Multithreaded MergeP-MERGE(T,,, ,,A,)

if exchange exchange exchange

if return

else

BINARY-SEARCH(T[],T, ,)

A[]=T[]spawn P-MERGE(T,,, ,,A,)P-MERGE(T,,, ,,A,)sync

T: Array to be mergedA: Array to save the merged result,, ,: Start and end index of the range to be merged: The index of the median in A

Page 9: Multi-threaded Algorithm 3

9

,

最糟的狀況下 , x 比所有的都大 要 merge 個元素

Page 10: Multi-threaded Algorithm 3

10

Multithreaded MergeP-MERGE(T,,, ,,A,)

if exchange exchange exchange

if return

else

BINARY-SEARCH(T[],T, ,)

A[]=T[]spawn P-MERGE(T,,, ,,A,)P-MERGE(T,,, ,,A,)sync

𝑃 𝑀∞ (𝑛 )=𝑃 𝑀∞( 3𝑛4 )+Θ (log𝑛)

Θ (log𝑛)

, 因為至少要 copy n elements

, 見課本 p.802

⇒𝑃𝑀 1 (𝑛)=Θ (𝑛)

Page 11: Multi-threaded Algorithm 3

11

P-MERGE-SORT(A,p,r,B,s)n=r-p+1if n==1

B[s]=A[p]else let T[1..n] be a new array

spawn P-MERGE-SORT(A,p,q,T,1)P-MERGE-SORT(A,q+1,r,T,q’+1)syncP-MERGE(T,1,q’,q’+1,n,B,s)

A: Array to be mergedp,r: Index of the range to be sortedB: Array to save the result

𝑃𝑀 𝑆1 (𝑛)=2𝑃𝑀𝑆1(𝑛2 )+𝑃 𝑀1 (𝑛)=2𝑃𝑀 𝑆1(𝑛2 )+Θ (𝑛)=Θ (𝑛 log𝑛)

𝑃𝑀 𝑆∞ (𝑛)=𝑃𝑀𝑆∞(𝑛2 )+𝑃𝑀∞ (𝑛)=𝑃𝑀𝑆∞(𝑛2 )+Θ (log 2𝑛)=Θ ( log3𝑛 )

Parallelism = Much better now!

Page 12: Multi-threaded Algorithm 3

12

怎麼自己學演算法 非常重要 這堂課沒辦法把所有”重要”的演算法都教完 但是希望過程中你已經建立了自己學習演算法的能力

準備研究所考試的時候可能會需要

Page 13: Multi-threaded Algorithm 3

13

我的經驗 我這一年來也跟著大家一起學習 資料結構 與 演算法 一些好方法 ( 自以為 ) 跟大家分享 :

1. 畫圖 , 用簡單的例子圖解步驟2. 先了解概念 ( 大方向 ), 不急著看複雜的數學

( 我常說 : 如果什麼都沒弄懂 , 先弄懂這個 )3. 一次了解一小部分就好 ( 模組化學習 ), 不急著弄懂所

有的部分4. 相信自己一定可以弄懂 ( 非常重要 )5. 不知道自己到底懂了沒 ? 用一些古怪的例子來試試

(boundary case)6. 練習自己看課本 ( 非常重要 )

Page 14: Multi-threaded Algorithm 3

14

期末考內容 & 型式 Closed book, 2 x A4 cheat sheets (double-

sided) 佔學期成績 30% 包含整學期上課內容 , 但以期中考過後的內容為主 180 minutes 題型與期中考類似 ( 是非 + 選擇 + 解釋 ) Extra office hour ??

Page 15: Multi-threaded Algorithm 3

15

再會 , 我教學生涯的第一班學生~

希望以後也能在選修課 / 專題課看到你們 ~

I’ll miss you

祝各位有個不太爆肝的期末 + 愉快的暑假