【发布时间】:2015-11-15 08:17:25
【问题描述】:
我想使用 MPI 发送和接收超过 2 GB 的数据,我遇到了很多类似下面引用的文章: http://blogs.cisco.com/performance/can-we-count-on-mpi-to-handle-large-datasets, http://blogs.cisco.com/performance/new-things-in-mpi-3-mpi_count 谈论从 MPI 3.0 开始进行的更改,允许发送和接收更大的数据块。
现在大多数函数都接收 MPI_Count 对象而不是 int 作为参数,但不是全部。
如何替换
int MPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm,
int *size)
为了获得更大的缓冲区大小? (因为这里的大小最多只能是2GB)
【问题讨论】:
-
你真的需要 MPI_Pack_size 吗?不能使用更大尺寸的派生类型吗?
-
为什么需要>2GB的包?这严格在带宽限制的范围内,所以打包应该没有任何价值。
-
@Vladimir F 假设我真的需要超过 2GB,如果我使用更大尺寸的派生类型,它没有帮助,因为 MPI_Pack_size 的 size 参数返回字节数..
-
但是为什么你需要这个包呢?请参阅 Jeff 的评论。
标签: mpi buffer-overflow