看板 Linux 關於我們 聯絡資訊
想問一個應該是shell script的問題 平常都是在hpc上面丟job 但是因為人很多 很多job都要等很久才開始跑 但是有些計算其實也就十幾分鐘 但是這種的job量很大 所以想考慮直接在桌上型電腦上跑 如果直接全部丟的話 就是全部一起執行 幾乎同時全部結束 因為是普通桌上型 CPU只有四核 量小的時候 大約20~30內吧 就是慢而已 量多的時候 大約超過50 甚至會出錯 更不要說全部同時一起執行的時候 普通的使用都會受到影響 所以在想有沒有辦法讓他一個接著一個跑 同時可以控制同時在跑的job數量 例如說隨時在跑的最多兩個或三個jobs 這樣可以保留其他普通工作的空間 這樣的需求可以用寫script 來解決嗎? 還是只能自己裝一個小cluster 單一電腦用? 如果是script的話 現在還沒有什麼頭緒該從那邊下手 不知道有沒有人有類似經驗給點建議 謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 129.119.235.12 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1470759131.A.D96.html
CaptainH: 取決於你怎麼"丟"job 但你偏偏不寫這個 08/10 00:43
noonee: 如果是hpc上當然就是qsub ./exe 08/10 01:36
noonee: 我在自己電腦上平丟也只是用 nohup ./exe & 而已 08/10 01:37
noonee: 程式本身沒有做平行化所以可以看成很一般的執行 08/10 01:37
補充一下 剛剛有找到 如果是一串的 cmd的話 可以寫成 cmd && cmd && cmd && .... 但是這樣只能限制一次只run 一個job 想問的是 如果是限制同時只有 例如三個jobs 在跑的話該怎麼寫? 謝謝 ※ 編輯: noonee (129.119.235.12), 08/10/2016 06:05:51
Hevak: GNU parallel 08/10 06:04
noonee: 謝謝樓上 正在看是不是我要的 08/10 11:57
noonee: 大致上看懂意思了 應該不是我要的 還是謝謝 08/10 14:47
bibo9901: 明明gnu parallel 就是你要的 08/10 18:14
fourdollars: 樓主要找的是 taskset -c 0 some_heavy_command 吧? 08/10 22:39
lspci: 把所有的計算工作寫進一個job script裡面就可以了 08/10 22:44
m8403051: 開三個 terminal, 每個各貼一次 cmd && cmd && cmd... 08/11 16:13
Hevak: 同時只有3個job這種就是gnu parallel在玩的啊@@ 08/12 21:30
jokester: 簡單的job control也可在bash做: https://git.io/v6KdZ 08/18 11:27