[理工] 103 台大電機丙 計組 第7題 (已解決)

看板Grad-ProbAsk作者 (FB不放大頭貼的神經質人)時間9年前 (2016/09/10 22:28), 8年前編輯推噓2(2010)
留言12則, 2人參與, 最新討論串1/1
大家好,想請問一下這題 http://i.imgur.com/f6EB6KN.png
http://i.imgur.com/XmaKnaB.png
http://i.imgur.com/uF1JEuO.png
張凡計組的書中,在第5章-『利用管線增加效能』有提到, 可以藉由迴圈展開來進行平行處理,所以這邊我也想用一樣的方法來做, 具體來說就是檢查一下迴圈裡面有沒有什麼data hazard和control hazard的情形發生, 我也像他題目中的範例一樣,分成0、25、50、75來看, 看不出會有data hazard的問題啊@@? 這題張凡考古題給的答案是a、b、c、e 想請大家幫忙解惑一下@@。 105年的考題也有類似的題目,我也是依照這個方式去選答案的, 貼在這邊給大家比較一下。 http://i.imgur.com/wCpaV3N.png
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.175.238.139 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1473517707.A.002.html

09/11 00:07, , 1F
題目那個只是舉個例子吧 (D)只要舉i=0跟i=1分別到
09/11 00:07, 1F

09/11 00:07, , 2F
不同的thread 就會有hazard了 都會用到 a[101]
09/11 00:07, 2F

09/11 00:09, , 3F
然後你看(E) 他就把相依的兩個指令放在同一個for
09/11 00:09, 3F

09/11 00:11, , 4F
注意題目舉的例(0,25,50,75) 是由compiler分配
09/11 00:11, 4F

09/11 00:11, , 5F
(D) 是直接丟給 4core 執行
09/11 00:11, 5F

09/11 12:38, , 6F
題目是假設core隨機使用data 若你用message passing(你
09/11 12:38, 6F

09/11 12:38, , 7F
可以去看一下MPI怎麼實作)可以分配特定data給core執行 就
09/11 12:38, 7F

09/11 12:38, , 8F
可以像你所說的不會有data hazard
09/11 12:38, 8F

09/11 13:01, , 9F
D即使分成原po那樣依然有data hazard @@
09/11 13:01, 9F

09/11 13:44, , 10F
QQ被原po騙惹我假設他說的是對的
09/11 13:44, 10F

09/11 13:45, , 11F

09/11 13:46, , 12F
給原po參考 應該要先寫再讀 但你分開就有可能先讀再寫
09/11 13:46, 12F
當初看到題目的時候也沒想到說還要再繼續把讀寫都列出來一個一個檢查, 誤導大家了真是抱歉,謝謝你們的回答! ※ 編輯: angel861047 (1.175.238.139), 09/11/2016 22:14:46 ※ 編輯: angel861047 (1.175.59.68), 02/05/2017 20:55:12
文章代碼(AID): #1Nr1YB02 (Grad-ProbAsk)