MPI_型大维向量

MPI_型大维向量,mpi,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 有人知道为什么会这样吗??或者不建议使用大小如此大的类型_向量 感谢您的帮助。完全同

我正在处理一个动态矩阵,并使用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

有人知道为什么会这样吗??或者不建议使用大小如此大的类型_向量


感谢您的帮助。

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


通常,您可能没有分配正确类型的缓冲区<代码>MPI类型向量将描述内存区域。这个区域是
MPI_Type_size
字节,但它将分散在
MPI_Type_get_extent

的lb和extent值给定的范围内,当m=40和n=80时,它到底在哪里崩溃?您必须显示更多的代码,并尝试生成回溯以识别崩溃的源行。