!!!參考了好多部落格自己嘗試了好多天程式終于跑通了特此總結,其他版本編譯安裝步驟應該一樣,僅供參考
0 準備工作
安裝前輸入下面代碼确認是否安裝gcc,g++,gfotran,python 2.x(python 2.2 以上的版本都可以)
$ sudo apt-get install gcc
$ sudo apt-get install g++
$ sudo apt-get install gfortran
$ sudo apt-get install python
1 編譯安裝MPICH
# 下載下傳安裝包
$ wget http://www.mpich.org/static/downloads/3.2.1/mpich-3.2.1.tar.gz
# 解壓
$ tar zxvf mpich-3.2.1.tar.gz
# 進入檔案夾
$ cd mpich-3.2.1
# 編譯 安裝
$ mkdir /home/liu/mpich
$ ./configure --prefix=/home/liu/mpich( = 後面是檔案安裝路徑)
$ make
$ make install
# 環境變量配置
$ sudo gedit ~/.bashrc
# 在檔案末尾補上下面這句話
export PATH=/home/liu/mpich/bin:$PATH
# 儲存退出後,再更新配置檔案使其生效
$ source ~/.bashrc
# 檢驗是否安裝成功
$ cd /home/liu/mpich-3.2.1/examples
$ mpirun -np 2 ./cpi
參考部落格:
https://blog.csdn.net/sinat_30967935/article/details/82988659
http://blog.chinaunix.net/uid-29530577-id-4141020.html
2 編譯 安裝 Boost
解除安裝之前的安裝
$ sudo apt --purge remove libboost-dev
$ sudo apt --purge remove libboost-all-dev
$ sudo apt --purge autoremove libboost-all-dev
$ sudo rm -rf /usr/lib/libboost_*
$ sudo rm -rf /usr/include/boost
下載下傳安裝依賴檔案
$ apt-get install mpi-default-dev #安裝mpi庫
$ apt-get install libicu-dev #支援正規表達式的UNICODE字元集
$ apt-get install python-dev #需要python的話
$ apt-get install libbz2-dev
# 下載下傳
$ wget https://dl.bintray.com/boostorg/release/1.68.0/source/boost_1_68_0.tar.gz
# 解壓
$ tar -xzvf boost_1_68_0.tar.gz
$ cd boost_1_68_0
$ ./bootstrap.sh
# 重點!!!!修改 project-config.jam 檔案,在第22行後添加一句: using mpi ; 如下圖所示,注意添加位置,以及 mpi 和 ; 之間需要一個空格。
$ sudo gedit project-config.jam
# 執行
$ ./b2
$ sudo ./b2 install
# 添加boost lib路徑到預設搜尋路徑
$ sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/boost.conf'
# 更新搜尋路徑
$ sudo ldconfig
測試
// test.cpp
#include <iostream>
#include <boost/array.hpp>
#include <boost/version.hpp>
using namespace std;
int main(){
boost::array<int, 4> arr = {{1,2,3,4}};
cout << "hi" << arr[0] << endl;
cout << "BOOST VERSION: " << BOOST_LIB_VERSION << endl;
return 0;
}
$ g++ test.cpp -o test
$ ./test
再在自己的程式上測試就可以啦
我的項目測試
$ cd /home/liu/MPIK-Means/test
$ mpic++ -o mpitest mpitest.cpp -L/usr/local/lib -lboost_mpi -lboost_serialization
$ mpirun -np 3 ./mpitest
若結果如下,有三個Process則證明安裝成功!
Process 1: a msg from master
Process 2: a msg from master
Process 2:
Process 1:
Process 0: zero one two
Process 0: zero one two
Process 1: zero one two
Process 2: zero one two
參考部落格:
https://blog.csdn.net/huigougou/article/details/84351578
https://blog.csdn.net/hzrandd/article/details/22989187