MPI_Scatter:为什么我必须在所有进程中分配内存?

2023-12-25

我正在使用 MPI(在 c++ 中)并行化 Conways 的生命游戏。我必须从输入中读取一个(非常大的)矩阵,然后将其按行分散到切片中,然后并行处理每个切片。我遵循的想法是只让一个进程处理 I/O 内容。特别是,进程 0 从文件中读取并将初始数据保存到 RxC 矩阵中,以便分散在 (R/P)xC“切片矩阵”中的进程中。 现在,当我执行例程 MPI_Scatter 时,编译器会抱怨,因为“大矩阵”仅在第一个进程中分配。为了使事情顺利进行,我必须在所有过程中分配大矩阵,即使这些矩阵仍然是空白的。这是正常现象,还是我做错了什么?有没有办法避免为每个进程分配一个空白的、无用的矩阵? 感谢你们!


你不需要到处分配“大矩阵”,但是MPI_SCATTER确实需要您在所有队列上分配一些内存。

如果您要像这样分散数据:

分散前:

rank 0 - 1 2 3 4

分散后:

rank 0 - 1
rank 1 - 2
rank 2 - 3
rank 3 - 4

您需要为一个人分配空间int每个等级(而不是所有 4 个等级)。

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

MPI_Scatter:为什么我必须在所有进程中分配内存? 的相关文章

随机推荐

  • 在 Haxe 中传递任意函数参数列表

    在 ActionScript 中我可以使用 在函数声明中 因此它接受任意参数 function foo args void trace args length 然后我可以调用传递数组的函数 foo apply this argsArray
  • JS 中的动态 import() 文件

    我需要导入标记文件动态切片文件的一部分并将结果添加到变量并在我的 React 应用程序中渲染结果 import changelog md then 我试图这样做render 具有所有逻辑的方法 但我有问题 我需要在哪里导入它 在类中或外部
  • Excel 数据透视表 - 计算总和的平均值

    我确信这很简单 但是如何获得数据透视表来显示计算出的字段总和的平均值 在简化的示例中 我过滤掉了资金 x1 数据透视表显示了每人剩余资金的总和 现在我如何获得平均值按人 所以 手动计算 3300 3 我尝试使用计算字段 但无法弄清楚它是如何
  • Python xpath 不工作?

    好吧 这开始让我有点抓狂了 我已经尝试了几个 Python 的 xml xpath 库 但无法找到一种简单的方法来获取臭味十足的 标题 元素 最新的尝试如下所示 使用 Amara def view req url req content t
  • 该方法必须返回 boolean(Java) 类型的结果

    这是我的代码 boolean checkHit2 if cx lt 0 cx gt 640 return true if cy lt ground int cx return false if cx lt blue 15 cx gt blu
  • 如何在 C 中的 3d 数组中使用 memcpy

    我有一个 3 维数组int32 t x 1024 4 256 我需要将数组的所有元素复制到相同类型和大小的另一个数组int32 t y 1024 4 256 我可以用吗memcpy y x sizeof x 之后我可以访问数组的元素y与x
  • 将文件保存到 MyDocuments + 应用程序文件夹

    我正在尝试将 NET 应用程序设置文件保存到用户的 MyDocument MyApplication 文件夹 但我不知道如何检查现有文件夹 文件 并在保存时创建或附加文件夹 文件 我不想打开 saveFileDialog 因为我需要该文件位
  • SSE 错误 - 使用 m128i_i32 定义 __m128i 变量的字段

    定义一个 m128i变量以这种方式 m128i a a m128i i32 0 65000 我收到以下错误 错误 请求 a 中的非类成员 m128i i32 类型 m128i 又名 vector 2 long long int a m128
  • XPath 查找具有特定子节点的所有元素

    您能帮我找到下面示例中具有子元素 c 的所有元素 b 吗 a b b b b a
  • spring 拦截器从未被调用

    我有以下拦截器 Component public class ExternalLinkInterceptor extends HandlerInterceptorAdapter private static final Logger log
  • 使用 sse 指令进行复杂的 Mul 和 Div

    通过 SSE 指令执行复杂的乘法和除法是否有益 我知道使用 SSE 时加法和减法表现更好 有人可以告诉我如何使用 SSE 执行复杂的乘法以获得更好的性能吗 为了完整起见 可以下载 英特尔 64 和 IA 32 架构优化参考手册 here h
  • 我是否必须取消订阅ActivatedRoute(例如参数)可观察量?

    我发现很多例子ActivatedRoute可观察到的像params or url已订阅但未取消订阅 constructor private route ActivatedRoute ngOnInit this route params co
  • Amazon S3 - 如何下载匿名用户拥有的对象?

    我有一个示例网页 允许匿名用户上传对象并在我的 S3 存储桶中创建文件夹 不幸的是 在执行此操作之前 我没有设置任何特定的存储桶策略或 ACL 现在我遇到一个问题 匿名用户创建了一个文件夹并上传了我 作为根用户 无法下载或访问的对象 我计划
  • 基于referer的nginx条件路由

    我需要根据 http 请求来源路由流量 我有两个环境 我们需要使用 http referer 将 us en 的每个 http 请求重定向到环境 1 将其他请求重定向到环境 2 基于位置的重定向有效 location us en proxy
  • 如何使用 R 登录并从 aspx 网页下载文件

    我正在尝试自动下载收入动态面板研究文件可在这个网页 http simba isr umich edu Zips ZipMain aspx使用 R 单击这些文件中的任何一个都会使用户进入此登录 认证页面 http simba isr umic
  • 第一个confluence servlet插件,ClassCastException问题

    我正在尝试为 Confluence 制作一个 hello world servlet 插件 在 atlassian plugin xml 中 我有
  • 如何使用 ASP.NET 授权但允许访问 .css 文件?

  • 通过变量访问类静态函数

    因此 我有一个名为 router 的 PHP 类 它获取 URL 并将其分解以查找请求的组件 操作和任何给定值 然后它加载负责的类 运行操作等等 我现在通过用户类将用户访问集成到类中 对于每个组件 它是一个类 我有一个名为 perms 的静
  • 无法在反应中设置状态

    所以 我只是想在我的反应应用程序中设置状态 只需从axios获取数据 然后设置状态即可 但无论我做什么 状态都不会设置 我尝试将其放入回调中 因为它是异步的 并将其放入我的组件确实安装了并且组件没有更新 唉什么也没有 有什么指示吗 clas
  • MPI_Scatter:为什么我必须在所有进程中分配内存?

    我正在使用 MPI 在 c 中 并行化 Conways 的生命游戏 我必须从输入中读取一个 非常大的 矩阵 然后将其按行分散到切片中 然后并行处理每个切片 我遵循的想法是只让一个进程处理 I O 内容 特别是 进程 0 从文件中读取并将初始