2016-03-06 28 views
1

我正在使用Sungrid6.2u5,我正在嘗試在4臺主機上提交一些作業,我需要使用所有4臺主機運行50個作業,但是我想告訴SGE,我只希望5個作業能夠在4臺在任何時候主持,我該怎麼做?如何限制使用Sungrid的主機上的作業數量?

我是SunGrid的新手。請告訴我SGE的基本知識,我的意思是從哪裏開始? 我發現這個網上,

新手指南的Sun Grid Engine 6.2丹尼爾·鄧普頓
但顯然這是爲系統管理員,我只是誰是試圖瞭解SGE功能普通用戶。

感謝,

回答

0

如果你不應該運行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_4computer04運行一切,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

+0

感謝您的答覆。但我沒有多個隊列,只有一個隊列與4個主機。我正在尋找某種開關或某種東西,通過這種開關,我可以將第4臺主機上的作業數量限制爲5個,同時將其他三臺主機用於其最大潛力。是否有可能? – shiva1987

+0

使用'qsub -l -h = computer04 my_work'作爲5個作業,使用'qsub -l -h =「!computer04」'作爲其他46.但是我建議添加'vmem'或其他資源規範來佔用主機,因爲沒有它,任何人仍然可以提交工作到第四主機。 –

+0

注意我的數學'5 + 46 = 50':D –

相關問題