我正在使用Sungrid6.2u5,我正在嘗試在4臺主機上提交一些作業,我需要使用所有4臺主機運行50個作業,但是我想告訴SGE,我只希望5個作業能夠在4臺在任何時候主持,我該怎麼做?如何限制使用Sungrid的主機上的作業數量?
我是SunGrid的新手。請告訴我SGE的基本知識,我的意思是從哪裏開始? 我發現這個網上,
新手指南的Sun Grid Engine 6.2丹尼爾·鄧普頓
但顯然這是爲系統管理員,我只是誰是試圖瞭解SGE功能普通用戶。
感謝,
我正在使用Sungrid6.2u5,我正在嘗試在4臺主機上提交一些作業,我需要使用所有4臺主機運行50個作業,但是我想告訴SGE,我只希望5個作業能夠在4臺在任何時候主持,我該怎麼做?如何限制使用Sungrid的主機上的作業數量?
我是SunGrid的新手。請告訴我SGE的基本知識,我的意思是從哪裏開始? 我發現這個網上,
新手指南的Sun Grid Engine 6.2丹尼爾·鄧普頓
但顯然這是爲系統管理員,我只是誰是試圖瞭解SGE功能普通用戶。
感謝,
如果你不應該運行4節點上超過5·喬布斯(姑且稱之爲computer04
),也許它不是能夠運行更多的東西的。通常,鼓勵您爲您指定適當的資源量以防止內核過載和內存不足情況。
如果您對computer04
完全20 Gb和你的工作,使用5 GB,你可以限制所有的作業5Gb
內存使用:
qsub -l vmem=5G my_work
類似的適用於盤量:
qsub -l fsize=10G my_work
我發現可以使用-l -h=
選項在特定主機上運行作業。
qsub -l -h=computer04 -l vmem=5G my_work
for 5 jobs。然後使用
qsub -l vmem=5G my_work
其他45個職位。
(較髒的方式) 你可以做到這一點不帶內存/硬盤的限制:
qsub -l -h=computer04 my_work # 5 jobs
qsub -l -h="!computer04" my_work # for 45 jobs
如果你有不同的隊列或資源,你可以使用它們爲不同的工作。例如,你有一個與其他計算機連接queue_4
上computer04
運行一切,queue_main
,那麼,你對其他的工作要做
qsub -q queue_4 my_work
5個工作,
qsub -q queue_main my_work
。
UPD的評論:
有可能迫使超過X
工作的用戶/主機SGE拒絕。它應該由隊列管理員完成。
qconf -arqs
{
name max_jobs_per_computer04
description "maximal number of jobs for user1 on computer04 restricted to 5!"
enabled TRUE
limit users user1 hosts computer04 to slots=5
}
如果你想限制用戶只能在提交的某種就業崗位computer04
,你需要如圖here定義complex parameter
。
感謝您的答覆。但我沒有多個隊列,只有一個隊列與4個主機。我正在尋找某種開關或某種東西,通過這種開關,我可以將第4臺主機上的作業數量限制爲5個,同時將其他三臺主機用於其最大潛力。是否有可能? – shiva1987
使用'qsub -l -h = computer04 my_work'作爲5個作業,使用'qsub -l -h =「!computer04」'作爲其他46.但是我建議添加'vmem'或其他資源規範來佔用主機,因爲沒有它,任何人仍然可以提交工作到第四主機。 –
注意我的數學'5 + 46 = 50':D –