SLURM 节点、任务、核心和 CPU

Eoi*_*n S 22 parallel-processing multithreading multiprocessing slurm

有人能够澄清这些东西到底是什么吗?据我所知,节点是集群内的计算点,本质上是一台计算机。任务是可以在单个节点或多个节点上执行的进程。核心基本上是指您希望在单个节点上分配多少 CPU 来执行分配给该 CPU 的任务。它是否正确?我是否混淆了什么?

dam*_*ois 35

这些术语在不同的上下文中可能有不同的含义,但如果我们坚持 Slurm 上下文:

  • 计算节点是较大节点集(集群)的计算机部分。除了计算节点之外,集群还包括一个或多个登录节点、文件服务器节点、管理节点等。计算节点提供处理器、易失性存储器(RAM)、永久磁盘空间(例如SSD)、加速器(例如GPU)等资源ETC。

  • 核心是处理器执行计算的部分。处理器包括多个核心,以及存储器控制器、总线控制器和可能的许多其他组件。Slurm 上下文中的处理器被称为 插槽它实际上是托管处理器的主板上插槽的名称。单个核心可以有一个或两个硬件线程。这项技术实际上可以将操作系统感知的核心数量增加一倍,同时仅将部分核心组件(通常是与内存和 I/O 相关的组件,而不是计算组件)增加一倍。HPC 中经常禁用硬件多线程。

  • 一般上下文中的CPU指的是处理器,但在Slurm上下文中,CPU是节点提供的可消耗资源。根据 Slurm 配置,它可以指套接字、核心或硬件线程。

Slurm 的作用是将这些资源与工作相匹配。一项作业包含一个或多个(顺序)步骤,每个步骤都有一个或多个(并行)任务。任务是正在运行的程序的实例,即在进程中,可能还有子进程软件线程

多个任务可能会被分派到多个节点上,具体取决于每个任务需要多少个核心。任务所需的核心数量取决于正在运行的程序实例中的子进程或软件线程的数量。其想法是将每个硬件线程映射到一个核心,并确保每个任务都将所有分配的核心分配在同一节点上。