Multi-threaded Algorithm 3

Slides:



Advertisements
Similar presentations
index 目次 ( 請按一下滑鼠,解答就會出現喔 !) 接續下頁解答 3-1 極限的概念.
Advertisements

如何學好數學? 黃駿耀老師
三个偶像的故事和功绩 ——第12课 明清时期的反侵略斗争 董飞燕.
捣蛋鬼历险记 初一四班 孙嘉佑小组.
10 郑和远航 郑和 郑和,1371年生于云南昆阳州(今昆明晋宁县)一个信奉伊斯兰教的回族家庭,原名马和,小字三宝,十一岁时在明太祖朱元璋发动的统一云南的战争中被俘进宫,后当朱元璋四子燕王朱棣的近侍。1403年朱棣登基,史称明成祖。次年正月初一,朱棣念他有勇有谋,屡立奇功,便赐姓“郑”,改称郑和,并提拔为内宫太监,于永乐三年(1405年7月11日)率领庞大船队首次出使西洋。自1405年到1433年,漫长的28年间,郑和船队历经亚非三十余国,涉十万余里,与各国建立了政治,经济,文化的联系,完成了七下西洋的伟
新編多元性向測驗 測驗說明 輔導室
目錄 服務地點 南寮 世光教養院 飛鳳山 長安養老院 尖石國小 內灣 大華停車場 上智國小 二重國中 班級 領隊教師 參與人數 (人次)
我征服了黃山 林達的黃山之旅 2006春.
簡報大綱 一、本期執行重點 二、由教學單位協助辦理項目 三、教學卓越計畫經費補助項目 四、卓越計畫管考網站填表說明.
在《命运交响曲》 音乐声中 安静我们的心 迎接挑战.
101年國中畢業生多元進路宣導 國中部註冊組 100年10月29日.
高中職優質化專題 教育研究博士班二年級 游宗輝.
海星國中部直升方案說明 報告人:教務處 陳博文主任
101年度十二年國民基本教育 國民中學校長專業研習 校長落實補救教學、適性輔導 中輟生的預防與復學輔導之實務作為
交通大學資訊學院 陳俊旻 教學助理經驗分享 我在教學上的第一堂課 24小時、深入淺出、徹底解析… 交通大學資訊學院 陳俊旻
‘‘色彩計畫 期末作業’’ 企業色彩識別系統分析 4950Z003 陳美菱 4971C001 林立婷 指導老師:呂裕文.
歡迎各位老師 蒞校參訪 召集人、各位委員、同仁大家好,我是林淑玟,負責教務行政進行簡報 報告人:林淑玟 中華民國九十九年三月二十三日.
大學甄選入學 選填志願輔導說明會 曾文農工輔導室.
一所具有悠久歷史與優良傳統的 優質學校 強調生活教育與精緻教學 是您有心向學的最佳選擇.
第一章信託法 第一節 信託契約 第二節 信託財產 第三節 受益人 第四節 受託人 第五節 信託關係之消滅.
國立嘉義高級工業職業學校 101年度綜合高中宣導研習 國立嘉義高工 教務主任 林章明
我們最常去的地方還是我的故鄉苗栗, 您知道春天的樟樹是什麼香味嗎?
Performance Evaluation
我国的宗教政策 第七课第三框.
海軍軍官學校 士官二專班 招生簡報 、 第1頁,共30頁.
海軍軍官學校 士官二專班 103學年度 招生簡報.
分治演算法 各個擊破獲得最後勝利 國立中央大學 資工系 江振瑞 教授.
報告人:魏教務長耀揮 日 期: ※ 修正接受教育部評鑑時程(含人社院) 、評鑑項目及指標、相關說明※
股市不傳之秘 甘氏矩陣圖/價格推算 簡介、基礎學習步驟 1、學習觀念 2、基礎看圖法 A.大數推算 B.基礎角度線推算.
第六章 技术创新与经济增长 本章主要问题 ---技术创新过程 ---技术创新分类 ---技术创新动力源 ---技术创新影响因素
你 今 天 累 吗 ? 坪山高级中学心理教师 张婧乔.
中学生心理健康讲座 打开心灵之门 开启阳光之路 主讲人:范荃.
教育部宣導專員 國立臺中家商 許敏政主任 101年2月23日製作 #201~203
分治演算法 各個擊破獲得最後勝利 國立中央大學 資工系 江振瑞 教授.
主讲人: 吕敏 { } Spring 2012 ,USTC 算法基础 主讲人: 吕敏 { } Spring 2012 ,USTC.
物件導向程式設計 (Object-Oriented rogramming)
大綱 Labview 環境介紹 數值(Numeric) 布林值(Boolean)與比較(Comparison) 結構(Structure)
第 7 章 陣列 (Array).
演算法方式總覽 The Divide-and-Conquer Strategy (個各擊破)(binary Searching、Quick Sort…. ) The Greedy Method(貪婪演算法) (Prim MST、Kruskal MST、Djikstra's algorithm) Dynamic.
數學與電腦 的初相識 汪群超 個人網址: 變有不可者三,有不可不變者三: 能力未至不可變也、 學識未敷不得變也、 功侯未到不能變也。
主讲人: 吕敏 } Spring 2012 ,USTC 算法基础 主讲人: 吕敏 } Spring 2012 ,USTC.
第六章 安全衛生工作守則 6-1 前 言  6-2 訂定依據相關法令規定  6-3 工作守則製作程序及製作前應注意事項  6-4 如何訂定適合需要之安全衛生工作守則  6-5 結 論.
樹 2 Michael Tsai 2013/3/26.
Sorting in Linear Time Michael Tsai 2013/5/21.
十二年國民基本教育 103學年度高中高職及五專 入學方式與就學區規劃 (草案諮詢稿)
Lecture 6 Quicksort 本章的重點在介紹Quicksort的作法 然後給予時間複雜度的分析。
MATLAB 程式設計入門篇 初探MATLAB
Hashing Michael Tsai 2013/06/04.
107學年度高雄區國中技藝技能 優良學生甄審入學說明會
Lucene 算法介绍 IR-Lab 胡晓光.
高中職多元進路 家長說明會 主講人: 東莞台商子弟學校 麥馨月 日 期:
Course 10 削減與搜尋 Prune and Search
講師:郭育倫 第2章 效能分析 講師:郭育倫
算法导论第一次习题课.
Disjoint Sets Michael Tsai 2013/05/14.
北一女中 資訊選手培訓營 遞迴、河內塔與merge sort Nan.
Divide and Conquer 3 Michael Tsai 2011/3/11.
108學年度高雄區國中技藝技能 優良學生甄審入學說明會
Dynamic Programming II
國立嘉義高級工業職業學校 101年度雲嘉區綜合高中宣導研習 國立嘉義高工 綜高高中學務組長 呂明欣
2019年“国科大杯”创新创业大赛参赛项目 商业计划书PPT模板
指導單位:教育部 技專校院招生策進總會 主辦單位:101學年度南區五專聯合免試 暨申請抽籤入學招生委員會 主辦學校:美和科技大學
本教學投影片係屬教科書著作之延伸,亦受著作權法之保護。
99年基測暨直升、原藝班、 申請、甄選入學報名作業說明
資料結構 老師:李崇明 助教:楊斯竣.
Quicksort 本章的重點在介紹Quicksort的作法 然後給予時間複雜度的分析。.
Advanced Competitive Programming
臺灣北區102學年度高級中等學校 舞蹈班暨聯合甄選入學術科測驗 暨甄選入學說明會
台中市黎明國中105學年度 學生報考 一般智能暨學術性向資賦優異學生鑑定 報名流程說明
Presentation transcript:

Multi-threaded Algorithm 3 Michael Tsai 2014/1/2

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 𝑐 𝑖𝑗 =0 for k=1 to n 𝑐 𝑖𝑗 = 𝑐 𝑖𝑗 + 𝑎 𝑖𝑘 ∙ 𝑏 𝑘𝑗 return C 𝑇 1 (𝑛)=Θ 𝑛 3 𝑇 ∞ 𝑛 =Θ log n +Θ log 𝑛 +Θ 𝑛 =Θ(𝑛) 𝑇 1 𝑛 𝑇 ∞ 𝑛 = Θ 𝑛 3 Θ 𝑛 =Θ 𝑛 2

Divide-and-conquer Multithreaded Algorithm for Matrix Multiplication (勒勒長) 𝐴= 𝐴 11 𝐴 12 𝐴 21 𝐴 22 𝐵= 𝐵 11 𝐵 12 𝐵 21 𝐵 22 𝐶= 𝐶 11 𝐶 12 𝐶 21 𝐶 22 = 𝐴 11 𝐴 12 𝐴 21 𝐴 22 𝐵 11 𝐵 12 𝐵 21 𝐵 22 = 𝐴 11 𝐵 11 𝐴 12 𝐵 12 𝐴 21 𝐵 11 𝐴 22 𝐵 12 + 𝐴 12 𝐵 21 𝐴 12 𝐵 22 𝐴 22 𝐵 21 𝐴 22 𝐵 22 C T

𝑀 1 𝑛 𝑀 ∞ 𝑛 = Θ 𝑛 3 Θ log 2 𝑛 =Θ 𝑛 3 log 2 𝑛 P-MATRIX-MULTIPLY-RECURSIVE(C,A,B) n=A.rows if n==1 𝑐 11 = 𝑎 11 𝑏 11 else let T be a new n x n matrix partition A,B,C, and T into n/2 x n/2 submatrices ( 𝐴 𝑖𝑗 , 𝐵 𝑖𝑗 , 𝐶 𝑖𝑗 , 𝑇 𝑖𝑗 , 𝑖,𝑗={1,2}) spawn P-MATRIX-MULTIPLY-RECURSIVE( 𝐶 11 , 𝐴 11 , 𝐵 11 ) spawn P-MATRIX-MULTIPLY-RECURSIVE( 𝐶 12 , 𝐴 11 , 𝐵 12 ) spawn P-MATRIX-MULTIPLY-RECURSIVE( 𝐶 21 , 𝐴 21 , 𝐵 11 ) spawn P-MATRIX-MULTIPLY-RECURSIVE( 𝐶 22 , 𝐴 21 , 𝐵 12 ) spawn P-MATRIX-MULTIPLY-RECURSIVE( 𝑇 11 , 𝐴 12 , 𝐵 21 ) spawn P-MATRIX-MULTIPLY-RECURSIVE( 𝑇 12 , 𝐴 12 , 𝐵 22 ) spawn P-MATRIX-MULTIPLY-RECURSIVE( 𝑇 21 , 𝐴 22 , 𝐵 21 ) P-MATRIX-MULTIPLY-RECURSIVE( 𝑇 22 , 𝐴 22 , 𝐵 22 ) sync parallel for i=1 to n parallel for j=1 to n 𝑐 𝑖𝑗 = 𝑐 𝑖𝑗 + 𝑡 𝑖𝑗 𝑀 1 𝑛 =8 𝑀 1 𝑛 2 +Θ 𝑛 2 =Θ 𝑛 3 𝑀 1 𝑛 𝑀 ∞ 𝑛 = Θ 𝑛 3 Θ log 2 𝑛 =Θ 𝑛 3 log 2 𝑛 𝑀 ∞ 𝑛 = 𝑀 ∞ 𝑛 2 +Θ log 𝑛 +Θ log 𝑛 =Θ log 2 𝑛

How about Strassen’s method? Reading assignment: p.795-796. Parallelism: Θ( 𝑛 log 7 log 2 𝑛 ), slightly less than the original recursive version!

Multithreaded Merge Sort A: Array to be sorted p and r: Start and end index of the range to be sorted Merge-Sort’(A,p,r) if p<r q= (𝑝+𝑟)/2 spawn MERGE-SORT’(A,p,q) MERGE-SORT’(A,q+1,r) sync MERGE(A,p,q,r) Merge() is the bottleneck! Θ(𝑛) 𝑀 𝑆 1 ′ 𝑛 =2𝑀 𝑆 1 ′ 𝑛 2 +Θ 𝑛 =Θ 𝑛 log 𝑛 Parallelism= Θ( log 𝑛 ) 𝑀 𝑆 ∞ ′ 𝑛 =𝑀 𝑆 ∞ ′ 𝑛 2 +Θ 𝑛 =Θ 𝑛

把Merge也用Divide & Conquer來解! (方便交給不同的thread去做) 2. 找出 𝑝 2 ~ 𝑟 2 中 𝑞 2 這個位置使得 𝑝 2 ~ 𝑞 2 −1都< x, 𝑞 2 ~ 𝑟 2 都≥ x 1. 挑出 𝑝 1 ~ 𝑟 1 的中位數x 3. Copy x 到新地方(根據x和 𝑞 2 的位置) Base case: 𝑝 1 ~ 𝑟 1 和 𝑝 2 ~ 𝑟 2 都是空的 4. 開分身去merge 𝑝 1 ~ 𝑞 1 −1和 𝑝 2 ~ 𝑞 2 −1, 及 𝑞 1 +1~ 𝑟 1 和 𝑞 2 ~ 𝑟 2 兩個區段

Multithreaded Merge P-MERGE(T, 𝑝 1 , 𝑟 1 , 𝑝 2 , 𝑟 2 ,A, 𝑝 3 ) 𝑛 1 = 𝑟 1 − 𝑝 1 +1 𝑛 2 = 𝑟 2 − 𝑝 2 +1 if 𝑛 1 < 𝑛 2 exchange 𝑝 1 𝑤𝑖𝑡ℎ 𝑝 2 exchange 𝑟 1 𝑤𝑖𝑡ℎ 𝑟 2 exchange 𝑛 1 𝑤𝑖𝑡ℎ 𝑛 2 if 𝑛 1 ==0 return else 𝑞 1 = ( 𝑝 1 + 𝑟 1 )/2 𝑞 2 =BINARY-SEARCH(T[ 𝑞 1 ],T, 𝑝 2 , 𝑟 2 ) 𝑞 3 = 𝑝 3 + 𝑞 1 − 𝑝 1 +( 𝑞 2 − 𝑝 2 ) A[ 𝑞 3 ]=T[ 𝑞 1 ] spawn P-MERGE(T, 𝑝 1 , 𝑞 1 −1, 𝑝 2 , 𝑞 2 −1,A, 𝑝 3 ) P-MERGE(T, 𝑞 1 +1, 𝑟 1 , 𝑞 2 , 𝑟 2 ,A, 𝑞 3 +1) sync T: Array to be merged A: Array to save the merged result 𝑝 1 , 𝑟 1 , 𝑝 2 , 𝑟 2 : Start and end index of the range to be merged 𝑝 3 : The index of the median in A

𝑛 1 ≥ 𝑛 2 , 𝑛= 𝑛 1 + 𝑛 2 𝑛 2 = 2 𝑛 2 2 ≤ 𝑛 1 + 𝑛 2 2 = 𝑛 2 最糟的狀況下, x比所有 𝑝 2 ~ 𝑟 2 的都大 要merge 𝑛 1 2 + 𝑛 2 個元素 𝑛 1 2 + 𝑛 2 ≤ 𝑛 1 2 + 𝑛 2 2 + 𝑛 2 2 = 𝑛 1 + 𝑛 2 2 + 𝑛 2 2 ≤ 𝑛 2 + 𝑛 4 = 3𝑛 4

Multithreaded Merge P-MERGE(T, 𝑝 1 , 𝑟 1 , 𝑝 2 , 𝑟 2 ,A, 𝑝 3 ) 𝑛 1 = 𝑟 1 − 𝑝 1 +1 𝑛 2 = 𝑟 2 − 𝑝 2 +1 if 𝑛 1 < 𝑛 2 exchange 𝑝 1 𝑤𝑖𝑡ℎ 𝑝 2 exchange 𝑟 1 𝑤𝑖𝑡ℎ 𝑟 2 exchange 𝑛 1 𝑤𝑖𝑡ℎ 𝑛 2 if 𝑛 1 ==0 return else 𝑞 1 = ( 𝑝 1 + 𝑟 1 )/2 𝑞 2 =BINARY-SEARCH(T[ 𝑞 1 ],T, 𝑝 2 , 𝑟 2 ) 𝑞 3 = 𝑝 3 + 𝑞 1 − 𝑝 1 +( 𝑞 2 − 𝑝 2 ) A[ 𝑞 3 ]=T[ 𝑞 1 ] spawn P-MERGE(T, 𝑝 1 , 𝑞 1 −1, 𝑝 2 , 𝑞 2 −1,A, 𝑝 3 ) P-MERGE(T, 𝑞 1 +1, 𝑟 1 , 𝑞 2 , 𝑟 2 ,A, 𝑞 3 +1) sync 𝑃 𝑀 ∞ 𝑛 =𝑃 𝑀 ∞ 3𝑛 4 +Θ log 𝑛 =Θ log 2 𝑛 𝑃 𝑀 1 𝑛 =Ω 𝑛 , 因為至少要copy n elements 𝑃 𝑀 1 𝑛 =O 𝑛 , 見課本p.802 ⇒𝑃 𝑀 1 𝑛 =Θ 𝑛 Θ log 𝑛

P-MERGE-SORT(A,p,r,B,s) n=r-p+1 if n==1 B[s]=A[p] else let T[1 P-MERGE-SORT(A,p,r,B,s) n=r-p+1 if n==1 B[s]=A[p] else let T[1..n] be a new array 𝑞= 𝑝+𝑟 2 𝑞 ′ =𝑞−𝑝+1 spawn P-MERGE-SORT(A,p,q,T,1) P-MERGE-SORT(A,q+1,r,T,q’+1) sync P-MERGE(T,1,q’,q’+1,n,B,s) A: Array to be merged p,r: Index of the range to be sorted B: Array to save the result 𝑃𝑀 𝑆 1 𝑛 =2𝑃𝑀 𝑆 1 𝑛 2 +𝑃 𝑀 1 𝑛 =2𝑃𝑀 𝑆 1 𝑛 2 +Θ 𝑛 =Θ 𝑛 log 𝑛 𝑃𝑀 𝑆 ∞ 𝑛 =𝑃𝑀 𝑆 ∞ 𝑛 2 +𝑃 𝑀 ∞ 𝑛 =𝑃𝑀 𝑆 ∞ 𝑛 2 +Θ log 2 𝑛 =Θ log 3 𝑛 Parallelism = Θ 𝑛 log 𝑛 log 3 𝑛 =Θ 𝑛 log 2 𝑛 Much better now!

怎麼自己學演算法 非常重要 這堂課沒辦法把所有”重要”的演算法都教完 但是希望過程中你已經建立了自己學習演算法的能力 準備研究所考試的時候可能會需要

我的經驗 我也跟著大家一起學習 資料結構 與 演算法 一些好方法(自以為)跟大家分享: 畫圖, 用簡單的例子圖解步驟 先了解概念(大方向), 不急著看複雜的數學 (我常說: 如果什麼都沒弄懂, 先弄懂這個) 一次了解一小部分就好 (模組化學習), 不急著弄懂所有的部分 相信自己一定可以弄懂 (非常重要) 不知道自己到底懂了沒? 用一些古怪的例子來試試 (boundary case) 練習自己看課本 (非常重要)

期末考內容&型式 Closed book, 2 x A4 cheat sheets (double-sided) 佔學期成績26% 包含整學期上課內容, 但以期中考過後的內容為主 180 minutes 題型與期中考類似 (是非+選擇+解釋) Extra office hour ??