Hri*_*iev 26
简短的回答是否定的 - 请求句柄参数不能NULL.
MPI_Isend()启动异步发送操作.所有异步操作都有一个请求句柄,必须在以下某种方式之后执行:
MPI_Wait()与朋友一起完成MPI_Test()与朋友一起测试完成操作,直到测试结果为正MPI_Request_free()等待和测试功能一旦完成,就会释放请求.您也可以在退回后立即释放它MPI_Isend().这不会取消操作,而是在完成后立即标记删除请求.但是,您将无法获得发送操作的状态.
如果您不关心异步操作的结果(例如完成状态,消息接收状态,错误代码等),正确的做法如下:
MPI_Request req;
...
MPI_Isend(..., &req);
MPI_Request_free(&req);
...
Run Code Online (Sandbox Code Playgroud)
警告:这适用于异步发送,因为可以设计另一种方法来验证发送操作是否已完成,例如目标进程可能在收到消息后响应.但是,永远不应该释放异步接收请求,并且应该等待或测试完成,因为无法知道操作何时完成.