多CPU的機器OS如何align jobs?

看板Programming作者 (陳揚和)時間16年前 (2009/06/28 03:41), 編輯推噓1(1012)
留言13則, 3人參與, 最新討論串1/2 (看更多)
如果我在多CPU上的機器, 比如說8 或 16個 for i in {0..1} do { time ./myprogram ${i}.input; } 2> ${i}.time; 這樣話 每次call myprogram時 會自動assign 給一個cpu嗎 還是全部的都只會在一個上跑.. 現在的OS應該有聰明到會自己assign吧 但這樣一起跑.. 會不會比一個一個跑的CPU hours 多呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.125.87.33 ※ 編輯: sorryChen 來自: 128.125.87.33 (06/28 03:41)

06/28 03:42, , 1F
不會. 請參考 OpenMP 的語法.
06/28 03:42, 1F

06/28 07:34, , 2F
不會是說 只會在一個CPU上跑..
06/28 07:34, 2F

06/28 07:35, , 3F
那是說多個CPU的機器..除非OPEN_MP
06/28 07:35, 3F

06/28 07:36, , 4F
另一個CPU完全空著? 我只會用C++中寫
06/28 07:36, 4F

06/28 07:36, , 5F
如何在Shell level用多個CPU?
06/28 07:36, 5F
※ 編輯: sorryChen 來自: 128.125.87.33 (06/28 07:37)

06/28 08:54, , 6F
align jobs 是指甚麼 ?
06/28 08:54, 6F

06/28 09:38, , 7F
assign 只是說跑一次 ./myprogram
06/28 09:38, 7F

06/28 12:46, , 8F
Shell啟動的執行程式都是一個process,每
06/28 12:46, 8F

06/28 12:47, , 9F
個process在OS管理下在對稱式多處理機就
06/28 12:47, 9F

06/28 12:49, , 10F
資源管理立場由OS將所有process輪派給所
06/28 12:49, 10F

06/28 12:53, , 11F
有的cpu去跑,沒事幹的cpu跑idle process.
06/28 12:53, 11F

06/29 00:42, , 12F
所以是說每個process 都會倫到各個CPU上
06/29 00:42, 12F

06/29 00:43, , 13F
但應該會想辦法利用每個CPU吧
06/29 00:43, 13F
文章代碼(AID): #1AHdNU0A (Programming)
文章代碼(AID): #1AHdNU0A (Programming)