在上一篇中我们介绍了 mpi4py 中的栅障同步操作方法,至此我们介绍了 mpi4py 中的各种集合通信,下面我们将进入到对数据类型的介绍。
在前面的介绍和例程中,我们使用的都是 mpi4py 中预定义的数据类型,如 MPI.CHAR,MPI.INT,MPI.FLOAT,MPI.DOUBLE 等,这些预定义数据类型给我们编写基于 MPI 的并行计算程序提供了很大的方便,但是却不能满足一些特殊的消息传递任务。对此类情况,MPI 允许用户自定义数据类型进行通信。自定义的数据类型用类型图描述。
类型图
类型图用来描述用户自定义数据类型,其定义为:
typemap={ <basetype0, displs0>, <basetype1, displs1>, … , <basetypen-1, displsn-1> }
假定某类型的类型图定义为:
typemap={ <type0, disp0>, <type1, disp1>, … , <typen-1, dispn-1> }
则有如下定义:
- 类型图的下界:
lb(typemap)