【发布时间】:2013-10-05 05:43:03
【问题描述】:
我有一个使用 MPI 的并行代码。使用此代码的正确方法是从 PC/Cluster 上的源代码编译,然后运行为:
mpiexec -n X ./application -options
不幸的是,有些使用此代码的人受到 *nix 挑战,他们发现从源代码构建有点令人生畏(不要问为什么)。这些用户只在自己的台式机/笔记本电脑上使用代码。
对于这样的用户,我只需编译一个静态二进制文件(在一个足够老的操作系统上使用足够老的 glibc,它可以在大多数运行 Linux 的 PC 上运行)。然后用户可以按如下方式运行代码:
./application -options
所以现在我的问题是如何将 mpiexec/mpirun 与我的静态二进制文件一起发布,以便用户可以执行以下操作:
./mpiexec -n 2 ./application -options
这样,他们还可以利用桌面上的多个内核。到目前为止,我一直在告诉他们做正确的事情,即安装 MPI 并从源代码编译我的代码。
通过一些测试,我发现如果我编译 hydra 并将 mpiexec.hydra 和 hydra_pmi_proxy 一起发送,那么我可以运行代码如下:
./mpiexec.hydra -n 2 ./application -options
但我不确定这是否是正确的方法?这会导致任何问题吗?我正在考虑对 Windoze 二进制文件(在 Cygwin 中运行)做同样的事情。
另一种选择是预先构建所有内容的 VBox 图像,但下载大文件会成为问题。
【问题讨论】:
标签: mpi binaryfiles openmpi mpich