Re: [助教]雙班OS Project 2延期
※ 引述《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
12/11 22:19, 1F
→
12/11 22:20, , 2F
12/11 22:20, 2F
→
12/11 22:20, , 3F
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 9 之 11 篇):