为什么SGE中有插槽的概念?

为什么SGE中有插槽的概念?

根据 SGE 5.3 手册,

Slots - 该队列中可同时执行的作业数量

我对这些概念还很陌生,想先逐一理解一下。

假设 RAM 为 10G,并且有 10 个插槽,因此每个插槽 1G,那么是否只能运行小于 1G 的作业?如果作业只需要 0.5G,那么将浪费该插槽中剩余的 0.5G,对吗?如果是这样,那么如果没有优化资源,网格有什么用呢?

如果 2G 的作业由多个 slot 共享,这叫并行作业还是普通作业?

SGE v5.3 和 v6.0 及以上版本中的队列和插槽概念之间有什么区别吗?

答案1

CPU 核心(除超线程或类似功能外)一次只能运行一个进程。在桌面或常规 Web 服务器上,它会非常快速地在进程之间切换,从而产生多个进程同时运行的假象。然而,这会降低整体 CPU 性能,因为切换需要成本(交换、缓存失效、上下文切换)。当核心大部分时间都在等待 IO(如用户输入/网络连接)时,这并不重要,但在 HPC/HTC(网格引擎的主要用例)中,每个程序都编写为有效利用资源,因此如果您有一个批处理系统,可以安排程序一个接一个地运行,而不是在它们之间切换,那么您的工作就会更快完成。

在这种情况下,网格引擎通常配置为使用插槽来表示核心,以防止过度提交。

网格引擎可以配置为分别跟踪核心/插槽的内存。

相关内容