天天看點

MPICH 3.2.1 & Boost 1.68.0編譯安裝

!!!參考了好多部落格自己嘗試了好多天程式終于跑通了特此總結,其他版本編譯安裝步驟應該一樣,僅供參考

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
           
MPICH 3.2.1 & Boost 1.68.0編譯安裝

參考部落格:

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
           
MPICH 3.2.1 & Boost 1.68.0編譯安裝
# 執行
$  ./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