具有大尺寸的MPI_Type_vector

时间:2014-09-01 01:55:49

标签: mpi

我正在使用动态矩阵,并使用MPI_Type_vector将每列传递给进程。我正在定义像这样的类型

MPI_Type_vector(m,1,n,MPI_INT,&column_mpi_t);
MPI_Type_commit(&column_mpi_t);

m是行数,n是列数。当n和m很小时,这种方法很好,分别为4和8。但是当m和n太大时,程序会因分段错误而崩溃,称m为40和n 80。

有人知道为什么会这样吗?或者使用大小如此大的type_vector?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

完全同意您应该发布代码的评论。

通常,您可能没有分配正确类型的缓冲区。 MPI_Type_vector将描述一个记忆区域。该区域为MPI_Type_size个字节,但它将分散在MPI_Type_get_extent的lb和范围值给定的范围内。