(1)下载和解压
wget https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.3.tar.gz
tar -zxvf openmpi-1.10.3.tar.gz
(2)配置,编译和安装
./configure --prefix=/usr/local/openmpi
make
make install
说明:如果不指定--prefix,那么默认的安装路径是/usr/local/lib。
(3)配置环境变量(~/.bashrc)
export PATH=$PATH:/usr/local/openmpi/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openmpi/lib/
source ~/.bashrc
sudo ldconfig
(4)进行测试
cd openmpi-1.10.3/examples
make
mpirun -np 4 hello_c
但是,在make的时候,却报错误,如下所示:
mpicc -g hello_c.c -o hello_c
hello_c.c: In function ‘main’:
hello_c.c:16:18: error: ‘MPI_MAX_LIBRARY_VERSION_STRING’ undeclared (first use in this function)
char version[MPI_MAX_LIBRARY_VERSION_STRING];
^
hello_c.c:16:18: note: each undeclared identifier is reported only once for each function it appears in
make: *** [hello_c] Error 1
说明:
暂时还没有找到解决方案,换成openmpi-1.8.4后,便可以正常使用了。需要说明的是如果是以root账户运行程序,那么mpirun --allow-run-as-root -np 8 hello_c即可。
2. mpic++命令
解析:
(1)mpic++ -showme:version
eg: mpic++: Open MPI 1.8.4 (Language: C++)
(2)mpic++ -showme
eg: g++ -I/usr/local/openmpi/include -pthread -Wl,-rpath -Wl,/usr/local/openmpi/lib -Wl,--enable-new-dtags -L/usr/local/openmpi/lib -lmpi_cxx -lmpi
(3)mpic++ -showme:libdirs
eg: /usr/local/openmpi/lib
(4)mpic++ -showme:libs
eg: mpi_cxx mpi
3. Nsight Eclipse Edition开发OpenMPI应用程序
主要是配置GCC C Linker中的Libraries。如下所示:
编译和链接程序的时候没有报错,但是执行程序的时候却报错error while loading shared libraries: libmpi_cxx.so.1: cannot open shared object file: No such file or directory。解决的方案是将/usr/local/openmpi/lib添加到/usr/local/openmpi/lib中,然后执行命令ldconfig,最后重新执行程序正常运行。
参考文献:
[1] ubuntu下安装openMPI:http://blog.csdn.net/swuteresa/article/details/9405383