MPI_FILE_WRITE_ALL_BEGIN(fh, buf,count,datatype)
INOUTfh 视口文件句柄
IN buf读取数据存放的缓冲区
IN count读取数据的个数
IN datatype 读取数据的数据类型
int MPI_File_write_all_begin(MPI_File fh, void * buf, int count,
MPI_Datatype datatype)
MPI_FILE_WRITE_ALL_BEGIN(FH, BUF, COUNT, DATATYPE, IERROR)
<type> BUF(*)
INTEGER FH, COUNT, DATATYPE, IERROR

MPI_FILE_WRITE_ALL_BEGIN和MPI_FILE_READ_ALL_BEGIN类似,它启动一个非阻塞的组写入操作,视口文件句柄fh对应的进程组中的所有进程都需要执行该调用,它将数据缓冲区buf中的count个数据类型为datatype的数据,写入到句柄fh对应的视口文件中。该调用不必等到写入操作的完成就可以立即返回,写操作的完成是通过调用另一个组调用语句MPI_FILE_WRITE_ALL_END实现的。
MPI_FILE_WRITE_ALL_END(fh, buf,status)
INOUTfh视口文件句柄
IN buf 写入数据存放的缓冲区
OUTstatus返回的状态信息
int MPI_File_write_all_end(MPI_File fh, void * buf, MPI_Status * status)
MPI_FILE_WRITE_ALL_END(FH, BUF, STATUS, IERROR)
<type> BUF(*)
INTEGER FH, STATUS(MPI_STATUS_SIZE) , IERROR

MPI_FILE_WRITE_ALL_END也是一个组调用,它和MPI_FILE_WRITE_ALL_BEGIN结合起来,实现非阻塞视口文件的组写入。当MPI_FILE_WRITE_ALL_END调用完成后,前面启动的非阻塞组文件写入操作才真正完成,数据缓冲区才可以被释放或更新。