【问题标题】:How workspace is shared in MPI?MPI 中如何共享工作空间?
【发布时间】:2012-01-18 02:02:16
【问题描述】:
我想知道两件事:
- 当我在由 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之类的吗?
【问题讨论】:
标签:
c
linux
filesystems
mpi
workspace
【解决方案1】:
MPI 不对文件如何共享/分发给所有人做出任何假设
参与节点。这完全是本地配置的问题,
所以你无法得到一个普遍的答案:你必须看看你的集群如何
已配置(询问您的系统管理员?)。
更具体地说:
-
MPI 进程仍然是常规的 UNIX(或 Windows)进程:因此您的应用程序可以使用任何操作系统调用来访问本地文件系统或共享网络文件系统(如果存在)。
李>
在不提供共享目录的集群上,您可以使用 scp 将所需的启动文件(例如库)复制到其他节点,并类似地收集回输出文件。
(最好使用 shell 脚本自动执行此操作。)
某些应用程序允许您指定哪些节点可以执行 I/O:所有其他节点将通过 MPI 通信通道从指定 I/O 节点上运行的进程接收输入数据。 (不过,这不适用于库,因为它们是在启动 MPI 进程之前由操作系统加载的。)