Gridengine

Sun Grid Engine (SGE) 中的非同步作業排隊 - 可能嗎?

  • October 10, 2011

我們正在尋求部署一個排隊系統,而 SGE 看起來它將滿足我們幾乎所有的願望。但是,我們有同時支持同步和非同步排隊模型的想法。換句話說:

  1. 我們會將所有工作節點綁定到一個同步隊列,以便分配給它們的作業將正常排隊 - 即一個作業執行,當它完成時另一個作業被接受並執行。
  2. 我們也希望能夠將“非同步”作業分配給節點。這些任務可以與其他工作並行完成,通常是機器本身的維護任務。

我在 SGE 文件中看到可以跨節點定義多個隊列,但這與擁有一個接受給它的任何工作並將其啟動到後台然後接受另一個工作的隊列並不完全相同。我並不完全了解 SGE 中的所有配置選項,但這似乎是可能的。誰能告訴我一些關於如何配置的資訊?

您可以定義每個隊列的槽數。因此,對於您的“同步”作業隊列,您可能希望將每台主機的插槽數設置為 1。這樣一次只有一個作業會被主機的隊列接受,一旦完成,另一個作業可能會執行。對於“非同步”隊列,只需將槽數設置為某個較大的數字,以便您需要的任何數量的作業都可以在主機上一次執行。

現在您有兩個隊列,您需要一些方法來將作業定位到它們。一種簡單的方法是使用-q切換到 qsub 來顯式選擇一個隊列,例如:qsub -q 'sync.q@*'.

但是,最好允許 gridengine 決定將作業放入哪個隊列。為此,您可以定義一個複雜的,比如說sync並將forced屬性設置為 true。然後將該複合體分配給隊列。現在送出的作業qsub -l sync只會被放入具有該屬性可用的隊列中。如果您決定重新組織隊列,這樣做的好處是一些額外的靈活性,以及​​稍微簡單的送出過程。

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