2012-01-15 156 views
1

我想创建派生数据类型由动态数组组成,其长度我不知道,我该怎么做?如果smb在这里发布一个简单的例子,那将会很棒。谢谢。MPI派生数据类型

+0

你可以进一步了解更多细节吗?你的数组在运行时改变大小吗?你需要在一条消息中发送所有的数组吗?你想创建什么类型地图? – suszterpatt 2012-01-15 23:18:15

+0

我有3个整数和两个未知大小的数组,这意味着我将在运行时知道它。是的,我需要在一条消息中发送所有这些东西。 – Michael 2012-01-15 23:26:14

回答

2

我发布了一个类似问题的答案here。总之:

  1. 你需要一个HIndexed数据类型。
  2. 您将不得不使用MPI_Address()函数来获得适当的位移。
  3. 您必须确保typemap保持有效(即数组不会更改大小或相对于其他数据成员的位置),如果它变得无效,请重新定义并重新提交数据类型。