Cluster

在啟動將在完整節點上執行的作業之前,為 SGE 創建一個假作業以填充所有節點

  • May 20, 2018

在 SGE 上送出作業以在完整節點上執行的問題在本論壇之前已解決。已經提出了幾種解決方案,其中之一是將 SGE 配置為允許使用選項 -l excl=TRUE,另一種解決方案是向 SGE 詢問硬記憶體或負載限制。

我的碩士論文使用的是我大學的集群,並行環境openmpi配置了填充策略。通常集群的節點每個包含 16 或 20 個核心,問題是一些使用者不是使用 16(或 20)的倍數的核心啟動計算,而是使用任意數量的核心啟動他們的作業. 結果,當我使用 -pe openmpi 16 啟動作業時,有時 SGE 會在 3 個節點(例如 6 + 1 + 10)上保留處理器,這使得計算非常慢。

我要求管理員配置集群以允許 -l excl=TRUE 但他拒絕在進行測試之前更改配置(我不知道多久)。

現在我有了一個新想法,可以讓我得到與 (-l excl=TRUE) 類似的結果,但無需更改集群:

  1. 編寫一個腳本,將掃描隊列並估計必須向 SGE 詢問的核心數量,以便他填充所有正在執行的節點並只讓完全空閒的節點。
  2. 使用計算出的核心數啟動一個假作業,該作業將等待一定的時間。
  3. 啟動我真正的工作(例如 -pe openmpi 2*16=32)。
  4. 刪除虛假作業以允許其他使用者使用其核心

有人可以為我提供此類程式碼的範例嗎?

qsub -l cpu=0使用(或)啟動工作cpu=0.1對我來說非常有效。

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