其中视口数据的表示方法共有三种:native、internal和external32,定义数据表示是为了高效解决MPI的一致性问题,因为不同类型的计算机,其数据的表示方法是不同的。 其中native数据表示的含义是数据在文件中的存储方式和在内存中的完全一样,这样在进行文件存取时,就没有数据转换的开销,对文件访问的效率和精度没有损失。显然这种方式在由不同类型的计算机组成的异构环境是行不通的,使用native数据表示虽然效率高,但存在移植性的问题。 internal数据表示是由具体的实现来定义的,比如相同的MPI实现可以在不同类型的机器上实现数据转换,它是为了解决native数据表示的不可移植问题,通过在某一个具体的实现上提供特定的手段,来实现一定程度的移植性,它解决可移植问题并不彻底。 external32数据表示是为了彻底解决任何不同类型机器之间的数据移植问题,用external32数据表示产生的文件,可以被任何MPI实现,在任何计算机上进行访问。但是external32数据表示的一个缺点就是效率的问题,对每次不同的文件的读写,都必须进行一次同一格式的数据转换。 MPI_FILE_GET_VIEW(fh, disp,etype,filetype,datarep) MPI_FILE_GET_VIEW是一个查询调用,它返回文件视口的各种参数,fh是给定的文件视口句柄,disp是该视口在文件中的起始偏移位置,etype是文件视口的基本数据单位类型,filetype是文件视口的文件类型,datarep是文件视口的数据表示方法。以上各个参数对应于MPI_FILE_SET_VIEW调用时所给出的各种参数。 MPI_FILE_SEEK(fh, offset, whence) MPI_FILE_SEEK将文件的指针移动到给定的位置。其中fh是文件句柄,offset是相对于whence的偏移位置,它的数据可正可负。其中whence的取值可以为MPI_SEEK_SET、MPI_SEEK_CUR和MPI_SEEK_END。不同参数取值的含义如下所示。
|
||||||||||||