到 http://www.open-mpi.org/ 下載openmpi並解壓,事先安裝gcc或g++。
我是openmpi-1.6.5,進入解壓文件夾,執行
./configure
這一步執行時間會較長若出現 configure: error: C++ preprocessor "/lib/cpp" fails sanity check 錯誤
這是缺少相應的庫所致,找到原文如下:
/lib/cpp fails sanity check的解決
在某些軟件的時候,運行./configure 會報錯,錯誤提示為:
configure: error: C++ preprocessor “/lib/cpp” fails sanity
check See `config.log’ for more details
解決辦法:出現該情況是由於c++編譯器的相關package沒有安裝,以root用戶登陸,在終端上執行:
# yum install glibc-headers
# yum install gcc-c++
這位同志使用的是紅帽子版本,對於ubuntu來說,只需把yum改成apt-get即可。
由於build-essential中包含許多基本庫,執行
sudo apt-get install build-essential
當再執行上一條命令時我的就沒有錯誤了,然后再執行
make all
這一步也會執行較長時間,然后再執行
make install
完成安裝,進入examples文件夾編譯hello_c.c示例程序
mpicc -o hello_c hello_c.c
若這步出現mpicc: error while loading shared libraries: libopen-pal.so.4: cannot open shared object file: No such file or directory錯誤可以找到libopen-pal.so.4添加到LD_LIBRARY_PATH中,可以在home下執行 apt-file search libopen-pal.so.4找到所在位置,沒安裝apt-file系統應該可以提示你安裝,安裝后在執行時並提示你進行update執行完后在查找應該就可以了。
若不想直接添加libopen-pal.so.4,一般找到你將openmpi裝到哪個文件夾下執行
$ export LD_LIBRARY_PATH+=:/dir/where/is/openmpi/lib即可,若是默認執行下面命令即可,但最新版本1.8.3為/usr/local/lib,所以執行export LD_LIBRARY_PATH+=:/usr/local/lib即可。
export LD_LIBRARY_PATH+=:/usr/lib/openmpi/lib
我就是執行這一條指令再執行mpicc完成編譯,最后執行
mpirun -n 4 ./hello_c
其中4是進程數,就會看到成功執行的程序了

