问题是在 20gb 的文件中搜索最大长度为 10 字节的字符串。文件包含一行中的一个字符串。我正在编写并行编程来做到这一点。我只是将文件分成大约(文件中的字节数/P)字节的 p 个进程,并由所有进程并行读取这么多 block 。在此之后,我同时在所有进程中搜索了一个字符串。
所以我只想停止在所有其他进程中搜索,同时我在任何一个进程中获得字符串匹配,以获得并行编程的好处。
我们如何停止其他进程的执行?
最佳答案
不确定这是否是最优雅的方式,但是一旦一个进程找到匹配的字符串,它就可以 MPI_Isend()不需要做更多工作的所有流程。
每个进程都会使用 MPI_Iprobe() 偶尔检查一次如果有消息等待,如果有:使用 MPI_Rccv() 接受它该进程现在可以优雅地自行终止。
关于algorithm - 如何生成信号以停止分布式模型中其他进程的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8951737/