如何解决MPI 进程能否同时传输数据和计算其他数据?
假设我有一个矩阵表示我需要在集群上并行计算的任务。 我将矩阵划分为子矩阵,每个可用过程一个。 但是子矩阵仍然太大。执行 MPI_Send() 操作需要花费大量时间。
所以我的想法是将子矩阵细分为更小的块。并异步发送块,并以某种方式异步接收块,对它们进行计算并将它们发回。这个想法是接收过程将花费更少的时间等待数据到达,而可以将这些时间专用于计算。
这可能吗? 这有意义吗? 我将在接收端使用哪些 MPI 调用来检测已接收到一大块数据并调用函数来计算该数据?我想我可以用一个循环和 MPI_Test() 来检查接收到的数据并对其进行计算。
但主要是我想知道这是否有意义,它是否会比仅仅一次 MPI_Send() 调用更高效、更快,并且让接收进程等到所有数据都被接收后再执行。
这是假设接收进程没有其他方法可以获取数据。它是系统的约束之一。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。