首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Slurm计算模型

Slurm计算模型
EN

Stack Overflow用户
提问于 2017-02-28 00:08:46
回答 1查看 210关注 0票数 1

我一直在想,在某个地方是否存在某种图表,确切地解释了slurm背后的“计算模型”(如果这有意义的话)。基本上,我想知道“节点”、“任务”、"CPU“、”核心“和”线程“(相对于彼此的含义)以及与机器/系统的关系之间的联系。

我读过S批和srun的手册页,但我不能百分之百地肯定它。到目前为止,我的理解如下

  • Node是一台物理机器(非常简单和清晰:D),机器通常是通过网络连接的。上面是一个分布式内存模型,下面是一个共享内存模型(?)
  • 任务通常是一个进程。这就是MPI的级别(对吗?)
  • CPU ==处理器(?)是实际的物理CPU。
  • 核心是多核CPU的一部分
  • 线程是在给定的核心上运行的东西。这只对超线程有用吗?

是这样吗?

然后,假设我混合了MPI和OpenMP。我基本上使用了OpenMP部件的核心、cpu和线程的概念,然后使用了用于MPI的任务和节点。

对吗?

谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-03 14:25:39

Node是一台物理机器(非常简单和清晰:D),机器通常是通过网络连接的。

事实上,节点是一台物理机器,有一个带有一个或多个套接字的主板,每个主机承载一个CPU包,每个CPU包由多个核心组成。

上面是一个分布式内存模型,下面是一个共享内存模型(?)

这是一种自然的思维方式,但是编程模型和硬件结构是两种不同的东西。您可以在单个节点内运行分布式内存模型(例如MPI)程序,并且可以使用Coarray Fortran施梅姆等PGAS框架在多个节点上运行共享内存程序。

任务通常是一个进程。这就是MPI的级别(对吗?)

是。

CPU ==处理器(?)是实际的物理CPU。

在Slurm上下文中,CPU被理解为禁用硬件超线程的系统的核心,或者在启用超线程时禁用(硬件)线程的核心。

但是一般来说,当你购买一个CPU时,你会得到一个芯片,上面有几个核心(CPU包),可以放进一个插座里。

核心是多核CPU的一部分

核心是CPU包中的一个独立的计算单元。它有自己的算法和逻辑单元,但共享一些高速缓存存储器。

线程是在给定的核心上运行的东西。这只对超线程有用吗?

硬件线程是一种技术,它允许单个物理核显示为两个不同的计算核,因为某些寄存器和缓存是重复的。但是两个硬件线程共享相同的算法和逻辑单元。当工作负载由许多I/O组成时,它们非常有用,这些I/O使得算术和逻辑单元在进行数据传输时处于空闲状态。在计算集群中,硬件超线程通常被禁用。

软件线程是进程的轻量级版本。一个进程可以由多个线程组成,可以使用库/工具(如p线程)或OpenMP。

然后,假设我混合了MPI和OpenMP。我基本上使用了OpenMP部件的核心、cpu和线程的概念,然后使用了用于MPI的任务和节点。

您可以简单地将--ntasks设置为所需的MPI进程数,并将--cpus-per-task设置为所需的OpenMP线程数,假设Slurm配置了内核作为可消耗资源。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42498079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档