如何定义MPI_Type_struct结构中涉及泛型指针的位置

时间:2012-09-18 19:30:00

标签: c mpi

考虑以下结构

    typedef struct{
       void *data;
       int len;
    }item_t;

它允许我将 item_t 传递给名为 map_functions的函数(item_t dt,item_t(* f_ptr)(item_t)) 接受item_t和函数指针。

map_functions()然后通过将 item_t 传递给它来调用作为参数传递的函数。 请记住,有不同的功能会将 map_functions()调用 item_t 的不同内容,并传递他们想要调用的相应功能。

这一切对我来说都很好。

现在,我想用MPI做同样的事情。 我想到的第一件事就是:

如何定义用户定义的MPI_Datatype(特别是MPI_Type_struct) 结构中是否包含诸如 void * data 之类的通用指针?即将上述结构转换为用户定义的MPI数据类型等效。

感谢,

1 个答案:

答案 0 :(得分:2)

你不能在进程之间传递指针,它们不共享内存。

你必须传递真实的信息,或者什么都不传递。指针仅与该过程相关。