algorithm - 如何生成信号以停止分布式模型中其他进程的执行

标签 algorithm mpi parallel-processing distributed-computing

问题是在 20gb 的文件中搜索最大长度为 10 字节的字符串。文件包含一行中的一个字符串。我正在编写并行编程来做到这一点。我只是将文件分成大约(文件中的字节数/P)字节的 p 个进程,并由所有进程并行读取这么多 block 。在此之后,我同时在所有进程中搜索了一个字符串。

所以我只想停止在所有其他进程中搜索,同时我在任何一个进程中获得字符串匹配,以获得并行编程的好处。

我们如何停止其他进程的执行?

最佳答案

不确定这是否是最优雅的方式,但是一旦一个进程找到匹配的字符串,它就可以 MPI_Isend()不需要做更多工作的所有流程。

每个进程都会使用 MPI_Iprobe() 偶尔检查一次如果有消息等待,如果有:使用 MPI_Rccv() 接受它该进程现在可以优雅地自行终止。

关于algorithm - 如何生成信号以停止分布式模型中其他进程的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8951737/

相关文章:

c++ - 在巴比伦算法中为 C++ 中的平方根获取无限循环

algorithm - 使用 Kruskal 算法查找图的最小生成树

c - 打开 MPI 发送结构 C

bash - 并行 grep 模式多个文件

exception - Java 8 并行流如何处理抛出的异常?

algorithm - 如何根据某些条件合并两个大文件?

r - 向量对之间的最小绝对差(贪心算法)

c - MPI 中的矩阵乘法 : Column-wise partitioning of second matrix

c++ - 如何向多个进程(但不是所有进程)广播或发送单个值?

unix - 为什么一些 GNU 并行输入包含引号?