我有一个使用MPI的并行代码。使用此代码正确的方法是从源代码编译在PC /群集,然后根据运行:将mpiexec/mpirun与静态二进制文件一起运输
mpiexec -n X ./application -options
遗憾的是有些人利用这个代码* nix的挑战,谁找到源代码构建一个有点令人生畏(不要问为什么)。这些用户只能在自己的台式机/笔记本电脑上使用该代码。
对于这样的用户,我只需编译一个静态二进制文件(在一个足够老的操作系统上运行一个足够老的glibc,它可以在运行Linux的大多数PC上运行)。然后,用户可以运行的代码如下:
./application -options
所以现在我的问题是,我如何才能发货程序mpiexec /的mpirun我的静态二进制文件一起,以便用户可以这样做:
./mpiexec -n 2 ./application -options
这样他们也可以利用桌面上的多个核心。直到现在,我一直告诉他们做正确的事情,即安装MPI并从源代码编译我的代码。
做一些测试中,我发现,如果我hydra_pmi_proxy
一起编译水螅和船舶mpiexec.hydra
然后我可以按以下方式运行代码:
./mpiexec.hydra -n 2 ./application -options
但我不知道这是正确的做法?这会造成任何问题吗?我正在考虑为Windoze二进制文件(在Cygwin中运行)做同样的事情。
另一种选择是VBox映像,其中包含所有预构建的内容,但是随后下载大文件成为问题。