问题标签 [supercomputers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
142 浏览

cluster-computing - 超级计算:更少的节点和更多的 cpu/node vs. 更多的节点和更少的每个节点的 cpu

在超级计算机上,您有一组节点,并且对于每个节点,您都有一定数量的 CPU。比如说,一个节点使用 20 个 CPU,而不是 2 个节点每个节点有 10 个 CPU,通常会更好吗?在这两种情况下,总共有 20 个 CPU。

一个节点上的 CPU 之间的通信时间是否比跨 2 个不同节点的 CPU 快很多?

0 投票
1 回答
43 浏览

cluster-computing - 有什么方法可以知道 qsub 中接下来会开始哪个工作

在我们学院 (IISc Bangalore) 超级计算机中,我们使用 qsub 提交作业。作业将根据以下开始运行 -

(1) 其挂壁时间(预计完成时间)

(2) 它在受尊重队列中的位置(小、中、大等)。

因此,在完成当前正在运行的一项作业后,很难知道哪个作业将开始。但是 qsub 可能有一个自己的列表,它在立即完成另一项工作后开始一项新工作。有什么方法可以知道接下来要开始哪个工作。有什么命令吗?谢谢你。

0 投票
0 回答
652 浏览

performance - 如何正确计算 CPU 和 GPU FLOPS 性能?

问题

我正在尝试计算 CPU / GPU FLOPS 性能,但我不确定我是否做得正确。

假设我们有:

  • Kaby Lake CPU(时钟:2.8 GHz,内核:4,线程:8)
  • Pascal GPU(时钟:1.3 GHz,内核:768)。

这个 Wiki 页面说 Kaby Lake CPU 计算 32 FLOPS(单精度 FP32)和 Pascal 卡计算 2 FLOPS(单精度 FP32),这意味着我们可以使用以下公式计算它们的总 FLOPS 性能:

中央处理器:

显卡:

问题

  1. [已解决]我见过的大多数指南(比如这个)在公式中都使用了物理内核。我不明白为什么不使用线程(逻辑核心)呢?线程不是专门为使浮点计算性能加倍而创建的吗?那我们为什么要忽视它们呢?

  2. 我做得对吗?我找不到一个可靠的来源来计算 FLOPS,互联网上的所有信息都是矛盾的。对于 i7 7700HQ Kaby Lake CPU,我发现 FLOPS 值低至29 GFLOPS,尽管上面的公式为我们提供了 358 GFLOPS。我不知道该相信什么。

  3. [编辑]Node.js / Python / C++ 中是否有一个跨平台(Win、Mac、Linux)库,可以获取所有 GPU 统计信息,如着色核心、时钟、FP32 和 FP64 FLOPS 值,以便我自己计算性能,或者一个库通过利用所有可用的 CPU / GPU 指令集(如 AVX、SSE 等)自动计算最大理论 FP32 和 FP64 FLOPS 性能?我们不能直接从 CPU / GPU 获取 FLOPS 统计数据,这非常荒谬,我们必须下载并解析一个 wiki 页面才能获取值。即使在使用 C++ 时,似乎(我实际上并不知道)我们必须下载 2 GB CUDA 工具包才能访问 Nvidia GPU 信息——这实际上不可能让其他人使用该应用程序,因为没有一个人会下载一个 2 GB 的应用程序。

0 投票
0 回答
46 浏览

mpi - 使用 MPI_Bsend 在多个等级之间进行数据交换

对于下面的代码,我想问几个问题(主要是问题 2),其目的是将数据发送到任意数量的“目标”等级,然后从所有目标接收其他数据(不同长度),即交换包含所有目标的数据。我不知道每个级别的数据发送和接收呼叫的顺序!每个消息的大小都很小(最多说 1MB),目标的数量可能多达 10 个。该应用程序是超级计算机上的高性能计算。

我的具体问题是为了确保我完全理解正在发生的事情(在网上任何地方都找不到特别提到的内容,这似乎很明显,但我想 100% 确定它总是有效的):

  1. 您能否确认 Bsend 和接收调用顺序永远不会导致任何死锁:我假设一旦所有要发送的消息都在缓冲区中,那么 MPI 可以轻松捕获任何目标接收调用并开始发送相关的缓冲发送数据,无论目标接收呼叫的顺序如何。那是对的吗?

2.如果每个等级有两个目标邻居(一个“左”和一个“右”),此代码是否会导致级联等待彼此的“左”邻居与自己的“左”邻居交换数据(这将导致性能非常差),或者即使排名正在等待接收调用,是否会发送要发送的缓冲数据?换句话说:一旦 Bsend 返回并缓冲了数据,实际的网络数据交换是否由 MPI 创建的另一个进程/线程执行?(可能是愚蠢的问题,这是我在 Bsend 返回后看到它发生的唯一方法)

  1. 有没有更好的方法来进行数据交换或者代码在速度方面看起来不错?在我的情况下,数据复制(即缓冲)本身不应导致可见的开销。

  2. 您会建议使用相同的代码与每个目标共享消息的大小(一个整数)还是有更快的方法?或者有什么办法可以避免发送消息大小的需要(在调用时是未知的)。

{

void slmpi::exchange(std::vector targetranks, std::vector sendlens, std::vector<int*> sendbuffers, std::vector receivelens, std::vector<int*> receivebuffers)

}

0 投票
1 回答
333 浏览

parallel-processing - 如何计算 3D 环面互连的直径?

3D 环面互连是具有p^3节点的网络拓扑,其中p > 2. 3D 环面基本上是一个 3D 网格,其链接连接相对面上的节点(我说的对吗?)。

我计算的二等分宽度是2p^2. 但是,我对如何为此进行直径计算一无所知。我什至不知道从哪里开始,因为我不明白连接对面节点的链接的目的是什么。对于那些想知道的人,直径是将消息从一个节点发送到另一个节点所需的最大跳数。

3d环

0 投票
2 回答
86 浏览

amazon-web-services - How to setup amazon to use Grid computing with maple software that is in existing EC2?

I have one maple license in EC2

How to setup amazon to use Grid computing with maple software that is in existing EC2?

I am not sure Grid computing whether is supercomputer.

I just have a for loop program to run grid computing that would like to run within 3 to 4 hours which originally takes 70 years to run in EC2

0 投票
0 回答
50 浏览

dask - 有没有办法使用 Dask 提交具有多个节点的单个 SLURM 作业

据我所知,Dask 能够扩展提交许多单节点作业的 python 模型。这对于 Slurm 可能会出现问题,因为每个用户可能提交的作业数量是有限制的。更清楚地说,在我的情况下,每个用户帐户的限制是 64 个正在运行的作业,每个 Slurm 作业的节点数量没有限制,Dask 无法利用。

请让我知道是否有解决此问题的解决方案。

0 投票
0 回答
48 浏览

python - 谷歌云平台上的python脚本仍然很慢

提前感谢您的耐心等待 - 我不是程序员,而是研究人员。我有一个在计算密集型的简短 python 脚本中处理的模型。在我的 2020 MacBook Pro 上,时间范围输入 3 大约需要 2 分钟,但我需要它运行 6 步的价值,并且输入大小需要时间指数。我的 2020 款 MacBook Pro 现在几乎 24 小时内都没有返回输入 6 的答案。

所以我终于想出了如何在谷歌云平台上使用免费试用时间,一路飞奔。我设置了一个虚拟实例,使用具有 8 个内核的“增强计算”虚拟机。我设法将我的脚本放在那里,安装所需的 python 模块,等等(这一切都花了我相当长的时间)。我终于让它工作了——但是对于输入 3,在我的笔记本电脑上需要 2 分 8 秒,VM 上的相同脚本/环境需要 4 分 36 秒!

所以我以为我基本上是在租一台超级计算机……但显然我完全不是?任何建议表示赞赏!我可以在 Google Cloud 上使用更快的机器吗?或者有没有更好的服务我可以尝试?如果我能帮上忙,我不想用我自己的钱来做这个项目,但我可以。

另一件事:监控 Google VM,它只使用了 12.5% 的 CPU。大概这是因为有 8 个内核并且它只使用一个(所以我应该设置更少的内核)。但是在我的家庭桌面(Ubuntu 18.04)上运行脚本,htop告诉我有 12 个 python 线程和所有 CPU 都在全速运转,所以我假设 Google VM(Debian 10)可以做同样的事情?

0 投票
0 回答
57 浏览

kubernetes - 将 HPC 集群节点添加到在本地 VM/主机上运行的 Kubernetes 环境中

我想在本地虚拟机/主机上运行 Kubernetes,并在远程超级计算机上添加通过 slurm 作业分配分配的计算节点。远程超级计算机上的计算节点可以在本地主机上访问,首先通过 ssh 登录到超级计算机,最终在超级计算机的登录节点上,然后 ssh 到计算节点。我的目标是运行由 Kubernetes 管理的 MPI 作业,该作业在本地节点上运行,但在 HPC 集群上执行。

是否已经有一些工具可以用于这种用途,或者是否有一些有关如何实现它的相关指导。

0 投票
0 回答
28 浏览

slurm - SLURM squeue 结果——解释用户如何使用节点

作为菜鸟,我可以使用 SLURM 访问 supercomp。该squeue命令给出了不同用户的各种作业使用的节点列表。下面给出一个小例子。

为什么有些用户,例如user1(实际上是我)只有一行(见下文),而几乎所有其他用户都有数百行(下面只是一小段摘录user2,他/她还有很多)?

我知道原因可能是所有这些实际上都是不同的工作(具有不同的JOBID),但我很好奇这个正确使用资源的例子吗?

谢谢!