共享文件的非阻塞组读写,也是分成两步来进行的,第一步是启动非阻塞的组读写,然后立即返回;第二步是完成非阻塞的组读写。 MPI_FILE_READ_ORDERED_BEGIN(fh, buf, count, datatype) INOUTfh文件句柄 OUTbuf 读取数据存放的缓冲区 IN count 读取数据的个数 IN datatype读取数据的数据类型 int MPI_File_read_ordered_begin(MPI_File fh, void * buf, int count, MPI_Datatype datatype, MPI_Status * status) MPI_FILE_READ_ORDERED_BEGIN(FH, BUF, COUNT, DATATYPE, IERROR) <type> BUF(*) INTEGER FH, COUNT, DATATYPE, IERROR MPI_FILE_READ_ORDERED_BEGIN开始一个非阻塞的共享文件组读写,它的作用是让与fh相联系的进程组内的每一个进程按照其进程编号rank的大小,从小到大,依次从共享文件中读取count个数据类型为datatype的数据,存放在各自的缓冲区buf中,但是该调用不必读取操作完成就可以立即返回,而该读取操作的完成是通过调用MPI_FILE_READ_ORDERED_END实现的。 MPI_FILE_READ_ORDERED_END(fh, buf, status) MPI_FILE_READ_ORDERED_END完成前面启动的非阻塞共享文件组读取调用,其中fh是文件句柄,buf是读取数据存放的缓冲区,status是返回的状态信息。当这一调用结束后,各进程才可以使用从文件中读取的缓冲区buf中的数据。 MPI_FILE_WRITE_ORDERED_BEGIN(fh, buf, count, datatype) MPI_FILE_WRITE_ORDERED_BEGIN开始一个非阻塞的共享文件组写入,它的作用是让与fh相联系的进程组内的每一个进程按照其进程编号rank的大小,从小到大,依次将各自缓冲区buf中count个数据类型为datatype的数据,写入到共享文件中,但是该调用不必写入操作完成就可以立即返回,而该写入操作的完成是通过调用MPI_FILE_WRITE_ORDERED_END实现的。 |
||