Cluster

如何在 Sun Grid Engine 上保留完整的節點?

  • June 18, 2015

如何使用 SGE 保留集群上的完整節點?

我不想要一台機器的 2 個處理器,另一台機器的 3 個處理器,依此類推。我有一個四核集群,我想保留 4 台完整的機器,每台機器有 4 個插槽。我不能只指定我想要 16 個插槽,因為它不能保證我將在 4 台機器上各有 4 個插槽。

將分配規則更改為 FILL_UP 是不夠的,因為如果沒有完全空閒的機器,SGE 將盡可能簡單地“填滿”負載最少的機器,而不是等待 4 台空閒機器然後調度任務。

有什麼辦法可以做到這一點嗎?有更好的地方問這個問題嗎?

SGE 對此很奇怪,在一般情況下我還沒有找到一個好的方法來做到這一點。如果您知道所需節點的記憶體大小,您可以做的一件事是 qsub,同時保留幾乎等於節點全部容量的記憶體量。這將確保它抓取一個沒有其他任何東西執行的系統。

我想我找到了一種方法,但它可能不適用於像我這樣的舊 SGE。似乎新版本的 SGE 內置了獨家調度。

https://web.archive.org/web/20101027190030/http://wikis.sun.com/display/gridengine62u3/Configuring+Exclusive+Scheduling

我考慮過但很容易出錯的另一種可能性是使用 qlogin 而不是 qsub 並在每台所需的四核機器上手動保留 4 個插槽。可以理解的是,自動化這並不是特別容易或有趣。

最後,也許這是可以使用主機組的情況。例如,創建一個包含 4 台四核機器的主機組,然後 qsubbing 到隊列的這個特定子集,請求的處理器數量等於組中的最大總數。不幸的是,這有點像硬編碼,並且有很多缺點,例如必須等待人們騰出特定的硬編碼主機組,並且如果您想切換到 8 台機器而不是 4 台機器,則需要進行更改等。

引用自:https://serverfault.com/questions/266848