Parallel processing MPI,如果使用非阻塞i_send或i_recv,如果在最后有等待,哪一个先去重要吗?
如果我调用Parallel processing MPI,如果使用非阻塞i_send或i_recv,如果在最后有等待,哪一个先去重要吗?,parallel-processing,mpi,nonblocking,Parallel Processing,Mpi,Nonblocking,如果我调用MPI\u isend然后调用MPI\u irecv或者先执行irecv,然后执行isend,最后等待?什么顺序重要吗 如果我先MPI_isend,然后MPI_irecv,或者先执行irecv,然后执行isend,使用 等最后?什么顺序重要吗 和是非阻塞通信例程,因此需要使用(或用于测试请求的完成情况),以确保消息已完成,并且发送/接收缓冲区中的数据可以再次安全地操作 这里的非阻塞意味着不等待数据被读取和发送;相反,数据会立即被读取和发送。但这并不意味着数据会立即被发送。如果是,就不需
MPI\u isend
然后调用MPI\u irecv
或者先执行irecv,然后执行isend,最后等待?什么顺序重要吗
如果我先MPI_isend,然后MPI_irecv,或者先执行irecv,然后执行isend,使用
等最后?什么顺序重要吗
和是非阻塞通信例程,因此需要使用(或用于测试请求的完成情况),以确保消息已完成,并且发送/接收缓冲区中的数据可以再次安全地操作
这里的非阻塞意味着不等待数据被读取和发送;相反,数据会立即被读取和发送。但这并不意味着数据会立即被发送。如果是,就不需要调用MPI_Wait
引用
如果愿意,您必须始终等待或测试非阻塞操作
您的程序必须符合标准,因此是可移植的最新版本
标准允许实现延迟实际数据
等待/测试呼叫前的传输。某些MPI操作(除
等待/测试)进行非阻塞操作,但不应依赖
这种行为
及
MPI_Isend不一定在后台进行,而只是
当MPI实现有机会进行时。
MPI_Wait将推进操作并保证其完成。一些
MPI实现可以使用
进程线程。有些人不能。它依赖于实现,并且
一个人永远不应该依赖于一种或另一种特定的行为