平行運算的方法 [論壇 - Ubuntu 程式設計]
正在瀏覽:
1 名遊客
平行運算的方法 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2009/10/29 15:41 所屬群組:
已註冊使用者 等級: 3
HP : 0 / 68
![]() |
我想先請教2個基本的問題
1. 一個未使用平行運算 library的 fortran 程式,執行時是否只會使用一顆CPU呢? 2. 多個1.中的程式執行,若不安排CPU,是否也只會使用一顆CPU執行? 以下是我的問題 我使用學校的伺服器,想要同時運算多個相同程式, 我寫了如以下的script: odir=$PWD for j in $(seq 1 10) do cd ${odir}/${j} taskset -c ${j} ./abc & done 其中 abc 為我的 fortran程式, 雖然通常程式可正常的運算, 但因伺服器上不只有我一個使用者 所以可能 CPU1~CPU10,其中幾個的使用率接近 100%, 這樣是否會造成問題呢? 所以我的問題為:如何能自動找出使用率低的CPU進行運算? 若伺服器為叢集電腦,那麼該如何自動找出使用率低的CPU呢? 另外,我有下載並使用 intel mpirun 不知未運用 mpi libray,且非使用 intel fortran compiler 編譯的程式 是否也能使用mpirun? (我還未測試) 如果可以,也許使用下面指令,即能自動運用使用率低的CPU運算, mpirun -np 1 ./abc (再配合 intel mpirun的選項 -machinefile,也能於叢集電腦上運作) 請問是否正確? 希望高手們能提供我相關的經驗 謝謝!
2013/11/11 1:01
|
||||||||||
![]() |
回覆: 平行運算的方法 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
管理員
![]() ![]() 註冊日期:
2011/3/11 6:32 所屬群組:
討論區管理群 等級: 44
HP : 216 / 1084
![]() |
大概是這樣吧
surdrew 寫到: 是 surdrew 寫到: 不是。CPU scheduler 安定。 surdrew 寫到: 不會。CPU scheduler 安定。 surdrew 寫到: 不需要。CPU scheduler 安定。
2013/11/11 2:41
|
||||||||||
本篇發表文章以「創用CC BY 3.0 或更新之台灣地區版本」授權條款釋出,如何使用敬請參考
Creative Commons — 姓名標示 3.0 台灣 — CC BY 3.0 TW http://creativecommons.org/licenses/by/3.0/tw/ 「你不懂的東西就不要亂講,被懂得人看破手腳就算了,騙不懂的人誤導別人,還要別人把你當成大師,這就真的是說不過去了。」 by Allen Own 出處 http://www.plurk.com/p/i4uogm 自由知識創作平台介紹 https://docs.google.com/document/d/1MGG6lW_0qCgH4U785R-IwSc_INdoBGej1l-JxiA4gPE 如何建立新的自由知識創作平台文件 https://docs.google.com/document/d/11NdzOW2lGYksfyQIcPMPye5tlmj1J0QTkgPTmQvIvKA |
|||||||||||
![]() |
回覆: 平行運算的方法 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
管理員
![]() ![]() 註冊日期:
2012/1/14 18:41 所屬群組:
討論區管理群 等級: 20
HP : 0 / 480
![]() |
surdrew 寫到: 如果你需要真正平行運算,請自己再程式裏面使用MPI的函式,CPU的schedule只會分配你使用那個CPU,不會分配你使用多個CPU,就我所知,還沒有方法可以取代MPI的平行運算設計。
2013/11/11 7:58
|
||||||||||
![]() |
回覆: 平行運算的方法 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
管理員
![]() ![]() 註冊日期:
2012/1/14 18:41 所屬群組:
討論區管理群 等級: 20
HP : 0 / 480
![]() |
V字龍 寫到: 如果他是需要使用MPI的函式,CPU就可以不只使用一個,可能會造成當機的問題。 我這邊有MPI的程式範例,可以一次使用很多CPU。
2013/11/11 8:00
|
||||||||||
![]() |
回覆: 平行運算的方法 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2009/10/29 15:41 所屬群組:
已註冊使用者 等級: 3
HP : 0 / 68
![]() |
感謝大家的解答
2013/11/11 11:23
|
||||||||||
![]() |
回覆: 平行運算的方法 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2009/10/29 15:41 所屬群組:
已註冊使用者 等級: 3
HP : 0 / 68
![]() |
請問如 intel mpirun 的script
是否能應用於執行 shell script 如:cluster上只能用到目前主機的CPU時 我將要執行的 script 放在所有主機都找的到的目錄 然後使用 mpirun 去執行 script 並提供 machinefile 其內含不同主機的名稱 請教一下大家,這樣可行嗎?
2013/11/11 19:40
|
||||||||||
![]() |
回覆: 平行運算的方法 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
管理員
![]() ![]() 註冊日期:
2012/1/14 18:41 所屬群組:
討論區管理群 等級: 20
HP : 0 / 480
![]() |
surdrew 寫到: 基本上shell沒聽過可以平行運算,但是你shell執行的程式可以式平行化。 你說的那個,基本上做不到,mpirun這個東西如果你執行的不是mpi的程式,其實他就根普通./差不多。
2013/11/11 20:45
|
||||||||||
![]() |
回覆: 平行運算的方法 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
會員一級
![]() ![]() 註冊日期:
2009/10/29 15:41 所屬群組:
已註冊使用者 等級: 3
HP : 0 / 68
![]() |
其實我這麼做的原因是因為
使用學校的叢集電腦時,若登入某台主機 一般我只能使用該台主機的CPU 我不知怎麼於該台主機上使用其他台的CPU 所以想應用 mpirun 去使用 這個方法好像可以正確的運作。 (雖然只使用一顆CPU,與一般執行相同)
2013/11/11 21:13
|
||||||||||
![]() |
回覆: 平行運算的方法 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
管理員
![]() ![]() 註冊日期:
2012/1/14 18:41 所屬群組:
討論區管理群 等級: 20
HP : 0 / 480
![]() |
surdrew 寫到: 通常平行化的程式才會用得到多CPU,其他的情況多台電腦的CPU大部份都是idle
2013/11/11 21:20
|
||||||||||
![]() |
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.