Gridengine

SGE為什麼會有槽的概念?

  • February 26, 2016

根據 SGE 5.3 手冊,

Slots - 可以在該隊列中同時執行的作業數

我對這些概念很陌生,想從一一理解開始。

假設,如果 RAM 為 10G,如果有 10 個插槽,因此每個插槽 1G,那麼是否只能執行小於 1G 的作業?如果這項工作只需要一些 0.5G,那將浪費該插槽中剩餘的 0.5G 對嗎?如果是這樣,那麼如果沒有資源優化,那麼網格有什麼用呢?

而如果一個2G的job在多個slot之間共享,這叫parallel job還是normal job呢?

SGE v5.3 和 v6.0 及更高版本中的隊列和插槽概念有什麼區別嗎?

一個 CPU 核心(除了超執行緒或類似的)一次只能執行一個程序。在桌面或正常 Web 伺服器上,它非常快速地在程序之間切換,以創建多個程序同時執行的錯覺。然而,這會降低整體 CPU 性能,因為切換會產生成本(交換、記憶體失效、上下文切換)。當核心花費大部分時間等待 IO(如使用者輸入/網路連接)時,這並不重要,但在 HPC/HTC(網格引擎的主要案例)中,每個程序都是為了有效利用資源而編寫的,因此您如果您有一個批處理系統來安排程序一個接一個地執行而不是在它們之間切換,那麼您可以更快地完成工作。

在這種情況下,Grid Engine 通常配置為使用插槽來表示核心,以防止過度使用。

可以將網格引擎配置為與核心/插槽分開跟踪記憶體。

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