根据 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 通常配置为使用插槽来表示核心,以防止过度使用。
可以将网格引擎配置为与内核/插槽分开跟踪内存。