MPI 基本数据类型对应宿主语言的数据类型,但 MPI_BYTE 和 MPI_PACKED 除外。我的问题是使用这些 MPI 基本数据类型有什么好处?或者等效地,为什么只使用宿主语言数据类型是不好的?
我阅读了 William Gropp 等人的教程。在幻灯片 31“为什么使用数据类型”中,它说:
- 由于所有数据都按类型标记,因此 MPI 实现可以支持具有非常不同的内存表示和基本数据类型长度的机器上的进程之间的通信(异构通信)。
- 在内存中指定面向应用程序的数据布局
- 减少实现中的内存到内存副本
- 允许在可用时使用特殊硬件(分散/聚集)
( http://www.mcs.anl.gov/research/projects/mpi/tutorial/mpiintro/ppframe.htm )
我不明白解释。首先,如果基本数据类型不同,我不明白为什么使用 MPI 数据类型可以解决差异,因为基本 MPI 数据类型对应于宿主语言的基本数据类型(基本数据类型)。第二,为什么这种面向应用的内存数据布局有上面提到的两个好处?
任何解决我原始问题的答案都将被接受。任何能解决我对 William Gropp 解释的问题的答案也将被接受。