2016-02-26 107 views
1

我正在使用numpy在使用sun grid engine分發作業的羣集上運行多個相同作業的重複(星羣)。我的每個節點都有2個核心(AWS上的c3.large)。所以說我有5個節點,每個節點有2個核心。Sun Grid Engine,每個節點強制執行一個作業

numpy中的矩陣運算能夠一次使用多個核心。我發現SGE將派出10個工作立即運行,每個工作都使用一個核心。這會導致作業的運行時間延長。看着htop,看起來每個核心的兩個職位都在爭奪資源。

如何讓qsub爲每個節點分配1個作業?所以當我提交工作時,只有5個會同時運行,而不是10個?

回答

3

第1步:爲您的羣集添加複雜值。運行

qconf -mc 

添加一行

exclusive  excl  INT   <= YES   YES  0  0 

第2步:對於每一個節點,定義爲複雜的值。

qconf -rattr exechost complex_values exclusive=1 <nodename> 

這裏我們設置爲1.然後,當您啓動作業時,請求該資源的「1」。例如:

qrsh -l exclusive=1 <myjob> 

如果你願意每個節點有2個職位,你可以在步驟2中

編輯定義值2:這是如何每個節點配置。您可以在第1步將整個羣集設置爲「默認」列中的值爲1。

+0

「編輯:這是如何爲每個節點配置它。您可以爲整個羣集完成它步驟1將該值設置爲「默認」列爲1.「這正是我想要做的。我嘗試過,但它仍然立即啓動了10個作業,而不是5個。我是否需要運行「excl」命令? –

+0

然後在啓動工作時,請執行:「qrsh -l exclusive = 1 qsub -e ...」那樣的..? –

+0

不,qsub和qrsh都是推出工作的工具。 qsub分離,qrsh是互動的。所以你可以在示例中用qsub替換qrsh。 –

相關問題