Sun Grid Engine 特性

计算科学 并行计算 高性能计算
2021-12-09 17:29:39

我不知道是否有人不再使用 SGE(现在 HPC 的世界是什么?),但我相信,从 11 年的某个时候开始,我需要在版本 6.2u3 上工作。我在一个有 64 个节点的集群上使用它,每个节点有 12 个核心。

问题是,我不确定请求 X 内核的真正含义。是纯粹的咨询吗?我尝试过同时使用 SMP 和 OpenMPI 环境,我得到的印象是在应用程序中产生更多线程总是可以提高性能,而不管您请求多少内核。即使您使用-pe smp 1or请求单核-pe openmpi 1,从 1 到 2 到 4 个线程,您的性能几乎翻倍。

那么,调度核心的目的是什么?

另一个问题是相关的:从 1 到 2 到 4 个线程,我的性能翻了一番。然而,在大约 8 或 10 个线程(即,假设为 8 或 10 个内核)时,线性关系就失效了,事实上,在 12 个线程时,计算所需的时间比在 8 个线程时要长。即使使用-pe smp 12. 我已经用一个简单的、令人尴尬的并行问题(生成一个数字数组)尝试了这个,所以应该没有争用。而且我认为不是线程开销,因为工作量很大,需要几秒钟。

查看计划的节点/核心,系统告诉我在同一个节点上有 12 个核心(通常,但并非总是如此),但在 12 个线程时性能仍然下降。我怀疑 SGE 不会阻止第三方工作在该节点上运行,即使我已请求足够的内核以使每个线程有 1 个内核,这会导致线程干扰。

我是在正确的轨道上还是我完全错过了这一点?

谢谢。

1个回答

SGE 已用于 Lonestar4 超级计算机(德克萨斯高级计算中心)。Lonestar4已于2015年退役;然而,一个非常广泛的Lonestar4 用户指南已保存在 TACC 网站档案中。

SGE:本指南的运行小节对变量和设置方法进行了非常详细的描述。

关于您的问题,您应该查看“方式”并且该命令将具有语法:

-pe <TpN>way <NoN x NumCoresPerNode>

在这里,NumCoresPerNode- 集群节点上的核心数,NoN- 节点数,TpN- 每个节点的任务。

假设您有一个计算集群,该集群由具有两个 6 核处理器的节点组成。然后,

-pe 12 way 48

请求 4 个节点,每个节点 12 个任务。

关于,如果你只请求它的部分核心,如果整个节点被阻塞,那可能取决于 SGE 的配置。在 Lonestar4 上,该节点被阻止并仅为您保留,即使您只请求了 12 个可用内核中的 1 个。