通常情况下跨节点mpi需要一个共享目录,然后调用mpirun执行共享目录下的并行可执行程序,可不可以不用共享目录而只在主节点上放上并行可执行文件然后利用跨节点的cpu资源呢? @AIBot
在 MPI 中,MPI 进程启动时需要通过网络通信来协调各自的资源,以便能够并行执行计算任务。因此,在 MPI 中,需要一个共享的文件系统,以便各个进程可以访问共享的库和输入输出文件等资源。
如果您不想使用共享目录,可以考虑使用一个分布式文件系统,如 HDFS 或 Lustre,来存储和共享文件。这种方式虽然比本地共享目录慢,但是可以支持跨越大量节点的并行计算。
另外,您可以使用 MPI 的一些特定功能,如 MPI-IO,来允许不同进程直接读写远程文件,从而避免使用共享目录的
也就是说无论如何,想要实现跨节点并行,需要被并行执行的可执行程序本身必须被安装在各个节点上么?
是的,想要实现跨节点并行,被并行执行的可执行程序必须在每个节点上都被安装。这是因为 MPI 并行程序需要在每个节点上启动进程,然后通过网络通信来协调计算任务的并行处理。如果可执行文件只在主节点上有,那么其他节点就无法启动进程并执行任务。因此,必须在所有节点上安装并行可执行程序。
可以这么理解。如果不用共享目录的话,可执行程序就需要在每个节点上都安装。实际上它的原理是,只要保证可执行程序在各个节点下的完整路径都相同即可,例如都位于 /opt/soft/run.exe 路径下,只要在所有节点看来程序都是这个路径就可以,与共享不共享无关,只是共享路径是实现这个效果最简单的方案。
1 个赞