我有一個使用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映像,其中包含所有預構建的內容,但是隨後下載大文件成爲問題。