如何在MPI中共享工作空间?

时间:2011-12-11 22:53:08

标签: c linux filesystems mpi workspace

我想知道两件事:

  • 当我在3台计算机上运行的mpi群集上运行我的应用程序时,它是从某个共享虚拟目录运行的,还是我对运行我的应用程序的每台计算机上的某个目录/某个文件夹进行行访问?
  • 是我的程序使用了很多共享库,当我在一台计算机上运行它时,我称之为export LD_LIBRARY_PATH=./:./libs_boost/如何使我的.so库与其他机器共享而不共享整个目录?是否可以说mpiexec -n24 -share_files_across_machines=./file1.so:./lib_boost/**:./some_other_not_lib_file.txt
  • 之类的话

1 个答案:

答案 0 :(得分:4)

MPI不会假设文件如何共享/分发给所有人 参与节点。这完全是本地配置的问题, 所以你无法得到一般答案:你必须看看你的集群如何 已配置(询问您的系统管理员?)。

更具体地说:

  • MPI进程仍然是常规的UNIX(或Windows)进程:因此您的应用程序可以使用任何操作系统调用来访问本地文件系统或共享网络文件系统(如果存在)。

  • 在不提供共享目录的群集上,您可以使用scp将所需的启动文件(例如,库)复制到其他节点,并类似地收集输出文件。 (最好使用shell脚本自动执行此操作。)

  • 某些应用程序允许您指定哪些节点可以执行I / O:所有其他节点将通过MPI通信通道从指定I / O节点上运行的进程接收输入数据。 (但这不适用于库,因为它们在启动MPI进程之前由操作系统加载。)