MPI TESTANY MPI_TESTANY(count,array_of_requests,index,flag,status) OUT 参数 flag操作是否完成标志 (其它参数含义同MPI WAITANY) int MPI_Testany(int count, MPI_Request *array_of_requests, int *index,int *flag,MPI_Status *status) MPI_TESTANY(COUNT,ARRAY_OF_REQUESTS, F77 INDEX,FLAG,STATUS,IERR) INTEGER COUNT,ARRAY_OF_REQUESTS(*),INDEX, FLAG,IERR,STATUS(MPI_STATUS_SIZE) ●功能同MPI WAITANY,非阻塞型函数 http://math.ecnu.edu.cn/~jypan 11
http://math.ecnu.edu.cn/~jypan 11 MPI_TESTANY MPI_TESTANY(count,array_of_requests,index,flag,status) 参数 OUT flag 操作是否完成标志 (其它参数含义同 MPI_WAITANY) C int MPI_Testany(int count, MPI_Request *array_of_requests, int *index,int *flag,MPI_Status *status) F77 MPI_TESTANY(COUNT, ARRAY_OF_REQUESTS, INDEX, FLAG, STATUS, IERR) INTEGER COUNT, ARRAY_OF_REQUESTS(*), INDEX, FLAG, IERR, STATUS(MPI_STATUS_SIZE) 功能同 MPI_WAITANY,非阻塞型函数
MPI WAITALL MPI WAITALL(count,array_of requests,array_of_statuses) IN count 请求句柄的个数 参数 INOUT array._of_requests请求句柄数组 OUT array_.of_statuses所有消息的状态数组 int MPI Waitall(int count, MPI_Request *array_of_requests, MPI_Status *array_of_statuses) MPI_WAITALL(COUNT,ARRAY_OF REQUESTS, F77 ARRAY_OF_STATUSES,IERR) INTEGER COUNT,ARRAY_OF_REQUESTS(*),IERR, ARRAY OF STATUSES(MPI STATUS SIZE,* ● 当所有的通信操作全部完成后才返回,否则将一直等待 ●阻塞型函数 http://math.ecnu.edu.cn/-jypan 12
http://math.ecnu.edu.cn/~jypan 12 MPI_WAITALL MPI_WAITALL(count,array_of_requests,array_of_statuses) 参数 IN count 请求句柄的个数 INOUT array_of_requests 请求句柄数组 OUT array_of_statuses 所有消息的状态数组 C int MPI_Waitall(int count, MPI_Request *array_of_requests, MPI_Status *array_of_statuses) F77 MPI_WAITALL(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERR) INTEGER COUNT, ARRAY_OF_REQUESTS(*), IERR, ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*) 当所有的通信操作全部完成后才返回,否则将一直等待 阻塞型函数
MPI TESTALL MPI TESTALL(count,array_of requests,flag,array_of_statuses) OUT 参数 f1ag操作是否完成标志 (其它参数含义同MPI WAITALL) int MPI Testall(int count, MPI_Request *array_of_requests, MPI_Status *array_of_statuses) MPI TESTALL(COUNT,ARRAY OF REQUESTS, F77 ARRAY_OF_STATUSES,IERR) INTEGER COUNT,ARRAY_OF_REQUESTS(*),IERR, ARRAY_OF_STATUSES(MPI_STATUS_SIZE,* 非阻塞型, 无论所有的通信操作是否全部完成都将立即返回 ●若有一个通信操作没有完成,则flag为0(假) http://math.ecnu.edu.cn/~jypan 13
http://math.ecnu.edu.cn/~jypan 13 MPI_TESTALL MPI_TESTALL(count,array_of_requests,flag,array_of_statuses) 参数 OUT flag 操作是否完成标志 (其它参数含义同 MPI_WAITALL) C int MPI_Testall(int count, MPI_Request *array_of_requests, MPI_Status *array_of_statuses) F77 MPI_TESTALL(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERR) INTEGER COUNT, ARRAY_OF_REQUESTS(*), IERR, ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*) 非阻塞型,无论所有的通信操作是否全部完成都将立即返回 若有一个通信操作没有完成,则 flag 为 0(假)
MPI WAITSOME MPI WAITSOME(incount,array_of_requests,outcount, array_of indices,array_of statuses) IN incount 请求句柄的个数 INOUT array_.of_requests请求句柄数组 参数 OUT outcount 已完成通信请求个数 OUT array_of_indices 已完成请求的下标数组 OUT array_of_statuses所有消息的状态数组 int MPI Waitsome(int incount, MPI_Request *array_of_requests, int *outcount,int *array_of_indices, MPI_Status *array_of_statuses) MPI WAITSOME(INCOUNT,ARRAY_OF_REQUESTS, OUTCOUNT,ARRAY_OF_INDICES, F77 ARRAY_OF_STATUSES,IERR) INTEGER INCOUNT,OUTCOUNT,IERR, ARRAY_OF_REQUESTS(*),ARRAY_OF_INDICES(*), ARRAY_OF_STATUSES(MPI_STATUS_SIZE,* ·阻塞型,返回所有已经完成的通信,至少有一个通信操作完成才返回 http://math.ecnu.edu.cn/-jypan 14
http://math.ecnu.edu.cn/~jypan 14 MPI_WAITSOME MPI_WAITSOME(incount, array_of_requests, outcount, array_of_indices, array_of_statuses) 参数 IN incount 请求句柄的个数 INOUT array_of_requests 请求句柄数组 OUT outcount 已完成通信请求个数 OUT array_of_indices 已完成请求的下标数组 OUT array_of_statuses 所有消息的状态数组 C int MPI_Waitsome(int incount, MPI_Request *array_of_requests, int *outcount, int *array_of_indices, MPI_Status *array_of_statuses) F77 MPI_WAITSOME( INCOUNT,ARRAY_OF_REQUESTS, OUTCOUNT, ARRAY_OF_INDICES, ARRAY_OF_STATUSES, IERR) INTEGER INCOUNT, OUTCOUNT, IERR, ARRAY_OF_REQUESTS(*), ARRAY_OF_INDICES(*), ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*) 阻塞型,返回所有已经完成的通信,至少有一个通信操作完成才返回
MPI TESTSOME MPI TESTSOME(incount,array_of requests,outcount, array_of indices,array_of statuses) 参数 参数含义同MPI_WAITSOME int MPI Testsome(int incount, MPI_Request *array_of_requests, int *outcount,int *array_of_indices, MPI_Status *array_of_statuses) MPI TESTSOME(INCOUNT,ARRAY_OF_REQUESTS, OUTCOUNT,ARRAY OF INDICES, F77 ARRAY_OF_STATUSES,IERR) INTEGER INCOUNT,OUTCOUNT,IERR, ARRAY_OF_REQUESTS(*),ARRAY_OF_INDICES(*), ARRAY_OF_STATUSES(MPI STATUS SIZE,* ●非阻塞型,若一个通信操作都没完成,则outcount==0 http://math.ecnu.edu.cn/~jypan 15
http://math.ecnu.edu.cn/~jypan 15 MPI_TESTSOME MPI_TESTSOME(incount, array_of_requests, outcount, array_of_indices, array_of_statuses) 参数 参数含义同 MPI_WAITSOME C int MPI_Testsome(int incount, MPI_Request *array_of_requests, int *outcount, int *array_of_indices, MPI_Status *array_of_statuses) F77 MPI_TESTSOME( INCOUNT,ARRAY_OF_REQUESTS, OUTCOUNT, ARRAY_OF_INDICES, ARRAY_OF_STATUSES, IERR) INTEGER INCOUNT, OUTCOUNT, IERR, ARRAY_OF_REQUESTS(*), ARRAY_OF_INDICES(*), ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*) 非阻塞型,若一个通信操作都没完成,则 outcount=0