到 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是进程数,就会看到成功执行的程序了