将 MPI 进程映射到特定节点

2023-11-29

我认为这个问题在这里问是无关紧要的。却无法自拔。 假设我有一个包含 100 个节点的集群,每个节点有 16 个核心。 我有一个 mpi 应用程序,其通信模式已知,并且我也知道集群拓扑(即节点之间的跳跃距离)。 现在我知道了减少网络争用的节点映射过程。例如:进程到节点的映射是10->20,30->90。 如何将排名 10 的进程映射到节点 20? 请帮助我。


如果您不受任何类型的排队系统的限制,您可以通过创建自己的队列来控制排名到节点的映射machinefile.

例如如果文件my_machine_file有以下1600行

   node001
   node002
   node003
   ....
   node100
   node001
   node002
   node003
   ....
   node100
   ...
   [repeat 13 more times]
   ...
   node001
   node002
   node003
   ....
   node100

它将对应于映射

  0-> node001, 1 -> node002, ... 99 -> node100, 100 -> node001, ...

你应该运行你的应用程序

  mpirun -machinefile my_machine_file -n 1600 my_app

当您的应用程序需要少于 1600 个进程时,您可以相应地编辑机器文件。

请记住,集群管理员可能已经根据互连拓扑对节点进行了编号。然而,有报告称,通过仔细利用集群拓扑,性能会显着提高(10%-20%)。 (参考文献如下)。

Note:启动 MPI 程序mpirun既不标准化也不可移植。然而,这里的问题显然与特定的计算集群和特定的实现(OpenMPI)相关,并且不需要便携式解决方案。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 MPI 进程映射到特定节点 的相关文章

  • sizeof(MPI_INT) 与 sizeof(int) 不同

    我注意到 int 和 double 的大小与使用函数 MPI Type size MPI INT MPI INT SIZE 计算的大小不同 这是否意味着 sizeof MPI INT 返回错误值 8 通常应该是 4 感谢您的回复 MPI I
  • 使用 MPI 和 openMP 并行运行代码时扩展性较差

    我有以下实现 int main int argc char argv int n runs 100 Number of runs int seed 1 int arraySize 400 initialise the random numb
  • C/C++ MPI 加速未达到预期

    我正在尝试编写一个 MPI 应用程序来通过计算机集群加速数学算法 但在此之前我正在做某种基准测试 但最初的结果并不像预期的那么好 测试应用程序在 4 核时具有线性加速 但 5 6 核并未加速应用程序 我正在使用 Odroid N2 平台进行
  • 在 C++ 中使用 MPI 对数组进行排序

    我想使用 MPI 库对随机数数组进行排序 这个想法是使用 MPI Scatterv 切割数组并将其发送到进程 每个进程都应该在本地对其数据量进行排序并将其发送回主进程 MPI Gatherv 主进程应该对部分排序的表进行排序 合并 如果最后
  • MPI - Bsend 用法

    当我想在异步发送之后释放资源时 MPI Bsend 好吗 这会吗 MPI Bsend array 0 delete array 阻止我删除我想要发送的内存 问题是 当适当的recv打开时 数组可能已经被删除 UPD void RectMPI
  • mpi4py 中的共享内存

    I use a MPI mpi4py 脚本 在单个节点上 适用于非常大的对象 为了让所有进程都能访问该对象 我通过comm bcast 这会将对象复制到所有进程并消耗大量内存 尤其是在复制过程中 因此 我想分享一些像指针这样的东西 而不是对
  • MPI - 异步广播/收集

    我有一个项目 需要 n 个进程才能工作 直到问题得到解决 每个从属进程执行相同的代码 当某种情况出现时 该进程需要以非阻塞的方式通知所有其他进程 其他进程也需要以非阻塞的方式接收这个消息 有没有办法不用线程单独的循环 我已经有一段时间没有使
  • 如何将 ltrace 用于 mpi 程序?

    我想知道如何使用 ltrace 获取 mpi 应用程序的库函数调用 但 ltrace 不起作用 我的 mpirun 无法成功 任何想法 您应该能够简单地使用 mpiexec n 4 other mpiexec options ltrace
  • 在 C 中执行简单 MPI 程序时集群挂起/显示错误

    我正在尝试运行一个简单的 MPI 程序 多个数组加法 它在我的 PC 中完美运行 但只是挂起或在集群中显示以下错误 我正在使用 open mpi 和以下命令来执行 集群网络配置 主节点1 MASTER eth0 Link encap Eth
  • MPI中如何获取物理机的数量

    我可以用MPI Comm size获取处理器总数 但是如何获取真实物理机的数量呢 If by 物理机你的意思是一组处理元素 共享公共内存地址空间 然后是 MPI 3 按类型分割操作MPI COMM SPLIT TYPE可用于便携式获取此类机
  • 如何在python中将MPI信息传递给ctypes

    我的动机是将 MPI 信息有效地从 python 传递到通过 ctypes 调用的 C 函数 我在 python 中使用 mpi4py 进行 MPI 绑定 我想通过一个用 C 编写并通过 python 中的 ctypes 调用的简单示例 M
  • SLURM:如何在同一计算节点或不同节点上并行运行不同的可执行文件?

    Goal 了解如何通过 sbatch 作业提交来运行 共同调度或执行可执行文件 应用程序 使用 srun 或 mpirun 研究 代码片段 bin bash SBATCH job name LEBT SBATCH partition ang
  • 是否可以在本地计算机和远程集群上运行 OpenMPI?

    我有一组需要在集群中执行的计算操作 可能像 512 个 MPI 进程 现在 我让集群上的根节点打开一个套接字 并在计算操作之间将数据传输到我的本地计算机 但我想知道是否可以只创建两个 MPI 组 其中一个组是我的本地组机和另一个远程集群 并
  • MPI 中的相同发送和接收缓冲区

    在我的代码中 每个进程都作用于数组的特定部分 我希望每个进程将其处理的部分发送到其他进程 并从其他进程接收其他部分 为此我使用了MPI Allgatherv但我保持发送和接收缓冲区相同 MPI Allgatherv vel 0 localS
  • 使用 MPJ Express 发送对象

    我是并行编程的新手 我想用 java 来完成它 我想知道是否可以通过 MPI 发送和接收更复杂的对象 我用的是 MPJ Express 然而 每当我想发送一个对象时 我都会收到 ClassCastException MPI Init arg
  • mpi.h:使用未定义的类型?

    我正在尝试将 OpenMPI 的 mpi h 的重要部分翻译为 D 编程语言 以便我可以从 D 调用它 HTOD 根本不起作用 我无法理解以下代码段 typedef struct ompi communicator t MPI Comm O
  • Boost MPI 在监听列表时不会释放资源?

    这是一个后续问题如何释放 boost mpi request https stackoverflow com questions 44078901 how do i free a boostmpirequest 我在监听列表而不是单个项目时
  • 了解多个进程的并发文件写入

    从这里 UNIX 中文件追加是原子的吗 https stackoverflow com questions 1154446 is file append atomic in unix 考虑多个进程打开同一个文件并向其追加内容的情况 O AP
  • 使用 MPI 的 Allreduce 对 Python 对象求和

    我正在使用使用 Python 中的字典和计数器构建的稀疏张量数组操作 我想让并行使用这个数组操作成为可能 最重要的是 我最终在每个节点上都有计数器 我想使用 MPI Allreduce 或另一个不错的解决方案 将其添加在一起 例如 使用计数
  • 通过 mpi 发送 c++ std::vector

    我知道存储一个std vector

随机推荐

  • 如何使用saxon内置目录功能

    我下载了 SaxonHE9 4 0 6J 并希望在 CLI 上处理 XHTML 然而 Saxon 尝试从 W3C 加载 DTD 并且每个简单命令都需要花费太多时间 我有 xml 目录 我通过设置指向目录文件的 env 变量成功地将其与 xm
  • vec_sld 字节序敏感吗?

    我正在开发具有核心加密功能的 PowerPC 机器 我在使用内置函数将 AES 密钥扩展从大端移植到小端时遇到问题 大端有效 但小端无效 下面的算法是一个片段中呈现的IBM 博客文章 我认为我已将问题隔离到下面的第 2 行 typedef
  • 防止Oracle中重复插入数据

    我有表 COBA 有 3 个字段 它们是 NOMER NAMA KETERANGAN 表中存在这样的数据 我想向该表插入另一个值 但是如何防止在 Oracle 中重复插入查询数据 我尝试使用 WHERE NOT EXIST 这是我的查询 I
  • 将鞋子集成到 Aptana Studio RadRails 中

    我怎样才能运行我的Carpet直接从 Aptana Studio 与 RadRails 应用程序 将 Shoes exe 设置为 VM 解释器将不起作用 如果 Ruby 项目中有该文件 则可以执行以下操作 转到运行 gt 外部工具 gt 外
  • 如何同时打开 Pygame 窗口和 Tkinter 窗口?

    我正在使用 Pygame 模块制作一个简单的游戏 我需要在 Pygame 窗口旁边打开 Tkinter 窗口 每当我尝试打开两个窗口时 第二个窗口只有在我杀死第一个窗口后才会打开 现在 我能想到的唯一解决方案是使用多线程 但是 我无法实施它
  • ld:在 MacOS / nasm 上找不到架构 x86_64 的符号

    我是汇编编程新手 所以我提前道歉 我在链接第一个时遇到问题Hello world汇编程序在MacOS and nasm section data text db Hello World 10 section text global star
  • 在django中删除带有表单的对象

    我正在显示一张桌子 每行都应该有一个删除按钮 用于从表中删除元素 我的问题是 我不确定如何将元素的 id 传递给视图 html for post in posts div h3 Zuletzt ausgew hlt h3 p publish
  • Rails Asset Pipeline - 错误的指纹

    我的 Rails 4 应用程序有new html erb其中引用了form html erb app assets templates jobs new html erb
  • c 中对“getline”的未定义引用

    我正在学习在 C 编程中使用 getline 并尝试了以下代码http crasseux com books ctutorial getline html include
  • 为什么 Python 3 不向后兼容? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我了解到 Python 3
  • 使用特殊的复制赋值运算符而不是简单的析构函数和就地构造函数的原因

    我有一个有自己的资源管理的课程 class Lol private This is data which this class allocates char mName nullptr public Lol std string str I
  • Jqgrid 上的外部工具提示插件

    目前 我没有使用任何其他插件作为鼠标悬停在网格行上的工具提示 我在用 list setCell rowid Name title my custom tooltip on cell 哪里的Name是要设置工具提示的列名称 rowid识别行
  • 以编程方式确定某人是否拥有网站?

    我需要找出确定某人是否是网站的实际所有者的最佳方法 我不仅仅指域 尽管在很多情况下可能是这样 我的第一个想法是让他们在 HTML 中添加一个我的程序可以抓取的特殊注释 例如 这种方法的一个可能的问题是 理论上有人可以将其添加到其页面的评论中
  • CSS 网格:分数中的分数

    我正在构建一个仪表板并想使用 CSS 网格 我设置了 4 列网格 在第 3 行中 我需要其中 2 个项目跨越 1 5 列 如何使 D 和 E 的宽度相等 以便它们各自占据可用空间的一半 并且它们加起来等于 C 的宽度 我需要创建不同的列结构
  • 使用 AsyncDisplayKit 添加自定义按钮

    我正在开发一个IOS应用程序 我使用 Facebook AsyncDisplayKit 库 我想要 ASNodeCell Bu 中的一个按钮 我得到了 变量 节点 在被块捕获时未初始化 如何在 ASNodeCell 中添加 UIButton
  • Spark DataFrame/RDD 中的前 N ​​个项目

    我的要求是从数据框中获取前 N 个项目 我有这个数据框 val df List MA USA MA USA OH USA OH USA OH USA OH USA NY USA NY USA NY USA NY USA NY USA NY
  • 如果父级不存在,则 spring 数据保存仅创建级联子级

    我有以下实体 Question有一对一Config And Config有很多Options 全部配置为CASCADE ALL 见附录 基于一个RequestDTO requestConfig 我创建新的Option实体与id null对于
  • R 中 x 轴刻度以月年格式显示的时间序列图

    我无法让 x 轴以 Jan 99 格式显示刻度 纽约数据如下 head rates 10 Month Repo Rate 1 Apr 01 9 00 2 May 01 8 75 3 Jun 01 8 50 4 Jul 01 8 50 5 A
  • 使用 angularjs $http 将内容类型设置为 utf-8

    我正在将包含文件 文本等的表单上传到 appengine blobstore http method POST url the url transformRequest formDataObject data event headers C
  • 将 MPI 进程映射到特定节点

    我认为这个问题在这里问是无关紧要的 却无法自拔 假设我有一个包含 100 个节点的集群 每个节点有 16 个核心 我有一个 mpi 应用程序 其通信模式已知 并且我也知道集群拓扑 即节点之间的跳跃距离 现在我知道了减少网络争用的节点映射过程