调用MPI_Bcast时如何传递自定义数据类型?

How to pass custom datatype while calling MPI_Bcast?

提问人:ZeroTwo 提问时间:12/19/2022 更新时间:12/19/2022 访问量:68

问:

我使用的是定义为 的“自定义”精度。然后用于声明缓冲区。integer, parameter :: dp = selected_real_kind(15,307)Real(dp)

使用会给我 dp 带来错误。call MPI_Bcast(buffername,int count,dp,0,MPI_COMM_WORLD,ierr)Invalid datatype

有没有办法传递这个自定义的数据类型?

Fortran MPI 精度

评论

2赞 High Performance Mark 12/19/2022
您是否精确地使用了短语自定义数据类型?如果是,请向我们展示您用于定义和提交它的语句。
3赞 K. Shores 12/19/2022
是否需要创建数据类型?open-mpi.org/doc/v3.1/man3/MPI_Type_create_f90_integer.3.php
3赞 Vladimir F Героям слава 12/20/2022
我认为这里混淆了种类数字和 MPI 数据类型。它们非常不同。正如 Mark 所提到的,必须单独创建和提交 MPI 数据类型。
1赞 Victor Eijkhout 12/20/2022
theartofhpc.com/pcse/mpi-data.html#Fortran90kind-definedtypes
1赞 Ross 12/20/2022
看起来您只需要(也许手动)为您的双精度实数定义相应的 MPI 数据类型。你真的遇到不一样的系统吗?DPMPI_DOUBLE_PRECISION

答: 暂无答案