【发布时间】:2021-07-23 03:39:15
【问题描述】:
我想就我在项目中发现自己的情况发表意见。我基本上有一个由一个 int、一个 int 数组和一个 chars 数组组成的结构。我需要将此结构发送到另一个进程。问题是结构中的这两个数组是动态分配的(实际上它们是指针)。最好的方法是什么?
我有两个主要想法:
- 使用打包和解包,但这很重(这经常重复发送)。
- 将所有三个数据连接到一个数组中,然后通过简单的发送进行发送。
- 使用 MPI_Type_struct 但我不知道这个数组的具体大小(它在所有发送中经常变化)。
请有人可以帮助我。我不上传代码,因为很复杂很长。
【问题讨论】:
-
如果性能问题很严重并且适用,请使用单个
malloc()分配您的数据,并让struct的第二个和第三个成员指向它。