gpt4 book ai didi

c - 具有长位移的 mpi scatterv 错误

转载 作者:行者123 更新时间:2023-12-04 05:46:54 24 4
gpt4 key购买 nike

我正在使用 MPI_Scatterv 分散一个非常大的数组:

MPI_Scatterv(list, counts, displacements, MPI_LONG, pSubList, counts[rank], MPI_LONG, MASTER, MPI_COMM_WORLD);

我已经声明了变量 计数 位移但是,只要(int 类型不够),MPI_Scatterv 只接受用于计数和位移的 int 变量。

关于如何以某种方式解决这个问题的任何想法?

最佳答案

您不能用 long 代替 int,至少在大多数 MPI 2.2 实现中是这样。即使您按照 Greg 的建议创建用户定义的数据类型,您也可能(并且大多数情况下)会遇到实现限制,例如使用整数在内部表示偏移量。 MPI 3.0 草案专门解决了这个问题,并要求在 C 和 Fortran 绑定(bind)中偏移和计数参数都是长(64 位)类型。

在 MPI 3.0 成为标准并且符合标准的实现出来之前,我会坚持使用一些子通信方案,例如将数据分布在几轮中,并将多个分散到等级子集。

关于c - 具有长位移的 mpi scatterv 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10568662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com