You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何MPI_Bsend()是阻塞函数?MPI阻塞/非阻塞术语意义探讨

关于MPI中阻塞/非阻塞术语的疑问

MPI_Bsend()是一种阻塞MPI函数,但这和我们对“阻塞”一词的常规理解相悖。由此引出以下问题:

  • 用“阻塞”和“非阻塞”这类形容词描述MPI函数是否有帮助?
  • 如果没有帮助,这类术语为何会存在?

MPI标准中的核心定义

阻塞与非阻塞MPI过程

若一个MPI过程是incomplete(不完全)且local(本地)的,则它是nonblocking(非阻塞)的。
若一个MPI过程不是nonblocking(非阻塞)的,则它是blocking(阻塞)的。

本地与非本地MPI过程

若一个MPI过程在执行期间返回可能需要另一MPI进程调用某些特定语义相关的MPI过程,则它是nonlocal(非本地)的。
若一个MPI过程不是nonlocal(非本地)的,则它是local(本地)的。

不完全与完成过程

若一个MPI过程不是completing(完成)过程,则它被称为incomplete(不完全)的。
若从一个MPI过程返回意味着至少一个关联操作已完成其完成阶段,用户可依赖输出数据缓冲区内容并修改该操作的输入输出数据缓冲区,则该过程被称为completing(完成)过程。若完成过程同时不是释放过程,则用户不得释放数据缓冲区或修改数组参数。


从这些定义可以看出,MPI中完整性和本地性的概念比阻塞/非阻塞更基础,但为什么后者会被保留并使用?

内容的提问来源于stack exchange,提问作者apadana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 07:07:02