我有四个数组,三个类型为float,另一个类型为long long,需要在循环的每次迭代中在节点之间进行通信。为了避免使用多个MPI_Send
并产生不必要的开销,最好将数据打包到缓冲区并发送。现在普遍的共识似乎是要实现这一点,应该使用MPI_Type_create_struct
并提交它来定义新的MPI数据类型。
但是,我有一个问题,即需要从这四个数组发送的连续数据量在每次循环迭代中都会有所不同。我应该重新定义MPI结构并在每次循环迭代中提交它,还是只使用MPI_Pack
?
我应该提到数组不是在普通的c结构中定义的,而是单独存在的。