对界修正量举例 例:假设MPI_DOUBLE和MPI_INT的对界量均为4,MPI_BYTE的对界 量为1,考虑下面的数据类型 {(MPI_DOUBLE,0),(MPI_BYTE,12),(MPI_INT,8)} INT DOUBLE BYTE 问:大小为,对界量为,上界为一,下界为 长度为, 地址对界修正量为 13,4,16,0,16,3 http://math.ecnu.edu.cn/~jypan 11
http://math.ecnu.edu.cn/~jypan 11 对界修正量举例 例:假设 MPI_DOUBLE 和 MPI_INT 的对界量均为 4,MPI_BYTE 的对界 量为 1,考虑下面的数据类型 {(MPI_DOUBLE,0), (MPI_BYTE,12), (MPI_INT,8)} 问:大小为 ,对界量为 ,上界为 ,下界为 , 长度为 ,地址对界修正量为 。 13,4,16,0,16,3
两个概念上的数据类型 Ib marker、ub marker ●概念上数据类型(conceptual datatypes) 大小为0,它们的作用仅仅是用来人工指定新建数据类型的上下界, 除此之外,对数据没有任何影响。 >若数据类型中含1b marker,则下界为lb_marker的位移的最小值; >若数据类型中含ub marker,则上界为ub marker的位移的最大值; Example 例:下面的数据类型的下界为-4 {(MPI_REAL,4),(1b_marker,12),(MPI_REAL,0),(1b_marker,-4)} http://math.ecnu.edu.cn/~jypan 12
http://math.ecnu.edu.cn/~jypan 12 两个概念上的数据类型 lb_marker、ub_marker 概念上数据类型(conceptual datatypes) 大小为 0,它们的作用仅仅是用来人工指定新建数据类型的上下界, 除此之外,对数据没有任何影响。 若数据类型中含 lb_marker,则下界为 lb_marker 的位移的最小值; 若数据类型中含 ub_marker,则上界为 ub_marker 的位移的最大值; 例:下面的数据类型的下界为 -4 {(MPI_REAL,4), (lb_marker,12), (MPI_REAL,0), (lb_marker,-4)} Example
相关查询函数 MPI TYPE SIZE(datatype,size) ●返回指定数据类型的大小(即字节数) MPI TYPE GET EXTENT(datatype,Ib,extent) ●返回指定数据类型的下界和长度 http://math.ecnu.edu.cn/-jypan 13
http://math.ecnu.edu.cn/~jypan 13 相关查询函数 MPI_TYPE_GET_EXTENT(datatype, lb, extent) MPI_TYPE_SIZE(datatype, size) 返回指定数据类型的大小(即字节数) 返回指定数据类型的下界和长度