Re: [助教]雙班OS Project 2延期

看板b93902HW作者 (Mark)時間17年前 (2006/12/11 21:03), 編輯推噓0(005)
留言5則, 1人參與, 最新討論串9/11 (看更多)
※ 引述《shiing (!?)》之銘言: : 有同學反應project2的題目有點問題。助教在出作業之時確實有些因素沒有考慮進去。 : 出矩陣相乘的意義在於有大量的I/O和計算要同時處理。 : 100*100的size太小和會導致multithread效率不彰和Strassen Algorithm會拖慢速度。 : 因此大家在寫作業可能會觀察到single thread的效率可能是最好的。 : 這次作業的核心意義在於讓大家了解到thread數量和系統效率的關係, : 目的在於找出最好的辦法。 : 開thread的overhead太大,因此若矩陣size太小,將I/O與計算的部分overlap仍然可能效 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ : 能會輸給single thread。 ^^^^^^^^^^^^^^^^^^^^^^^^^^ : 為了這個原因,我們將矩陣的size調大,最大到1000*1000。 : 我們的原則還是一樣的,希望大家能觀察thread的數量與系統效能的關係。 : 對於大部分已經做完的同學,我們願意說聲對不起, : 臨時更改題目的規定的確是不好的行為 : 最後,若有任何問題,歡迎與助教們討論 經過我今天的奮戰發現不只如此, 如果矩陣太小,thread的加速效果的確不甚明顯。 但矩陣太大,運算時在記憶體中的offset會變大,也會蓋過thread的加速, 舉例來說:我今天code完全沒改,單單將我的變數陣列開大而已, 對相同100x100的測資而言就慢了三倍。 也就是說我原先是宣告int matrix1[100][100]; 如今宣告int matrix1[1000][1000];才改這樣程式就慢了三倍。 那麼更不能保證說多thread能夠勝過單一thread了。 所以由此可見程式勢必是要重寫。 而且我開的是二維陣列還算好,開三維的人不就死定了。 (這個記憶體offset的case可以給大家參考。) 助教,我真的很不希望上週奮戰三十幾小時的全成為空白。 我覺得ddio班代的建議很不錯,就是把1000x1000的case變成BONUS, 這樣原先的基本分也還有,而願意多花時間研究的同學, 也多得到一些分數。 或者您會考慮再把SPEC改回原來的100x100。 ==== 不過可能要煩請助教生兩種測資了。 也就是[ 100x100~1000x1000 ] 和[ 100x100以下 ]的兩種。 這篇文如果有人反對的話,也請推/噓提出來。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.247.132

12/11 22:19, , 1F
po完我才想到,如果matrix改大後陣列的offset會影響mult
12/11 22:19, 1F

12/11 22:20, , 2F
thread的結果,那是不是不要再改SPEC反而好?
12/11 22:20, 2F

12/11 22:20, , 3F
反正兩者都會有問題存在,而100x100的版本大家都已經做
12/11 22:20, 3F

12/11 22:20, , 4F
好了
12/11 22:20, 4F

12/11 22:21, , 5F
請助教再考慮看看>"<
12/11 22:21, 5F
文章代碼(AID): #15VLS9J4 (b93902HW)
討論串 (同標題文章)
文章代碼(AID): #15VLS9J4 (b93902HW)