天天看點

CentOs7 安裝MPI和ssh免密登入配置mpi安裝SSH免密登入

mpi安裝

首先将yum源改為阿裡源,可以參考如下部落格:

CentOS7修改yum源為阿裡源

修改阿裡源的作用是提升yum的下載下傳速度,預設源在國外,下載下傳比較慢。

安裝

yum list mpich*
           

檢視MPI可安裝的版本, 選擇mpich 3.2版本,如果你的是64位下載下傳 x86_64 devel

sudo yum -y mpich-version #選擇你要安裝的版本
           

配置環境變量

sudo find / -name "mpicc",應該可以檢視到安裝路徑
vim ~/.bashrc
           
#在檔案中添加,具體路徑要根據系統和具體環境,一般隻需加上以下代碼:
export PATH=$PATH:/usr/lib64/mpich/bin/
           
source .bashrc #生效環境變量設定
           

測試

#include <stdio.h>
#include "mpi.h"
int main(int argc,char** argv)
{
    int rank,size;
    MPI_Init(&argc,&argv);
    MPI_Comm_rank(MPI_COMM_WORLD,&rank);
    MPI_Comm_size(MPI_COMM_WORLD,&size);
    printf("hello rank is %d, size is %d\n", rank, size);
    MPI_Finalize();

    return 0;
}
           
  • 編譯

mpicc -o hello hello.c

  • 運作

mpirun -np 4 ./hello

SSH免密登入

環境

兩台或三台主機,需要在同一個區域網路下,在此以兩台為例:

假設機器A(192.168.100.0)和機器B(192.168.100.1),若期望在A機器上免密登陸到B機器,則需要A機器有公鑰和私鑰,B機器上有A機器的公鑰。

配置

1)在A機器上生成公鑰/私鑰對

A:~$ ssh-keygen -t rsa

根據提示,回車即可,提示輸入密碼時回車即表示空密碼。在使用者根目錄下生成.ssh檔案夾,裡面包括id_rsa(私鑰)和id_rsa.pub(公鑰)。

注意,SSH還是普通使用者配置比較容易,root使用者配置可能出現權限問題。

2)将A機器的id_rsa.pub複制到B機器下

A:~$scp /home/A/.ssh/id_rsa.pub 192.168.100.1:/home/B/.ssh/

這一步還需要輸入B機器的密碼。

3)在B機器上将A機器的id_rsa.pub添加到B機器的.ssh/authorized_keys,并将authorized_keys的權限改成600

B:~$ cat id_rsa.pub >> .ssh/authorized_keys

B:~$ chmod 600 .ssh/authorized_keys

現在A機器可免密登陸到B機器上了。

4)利用A的如下指令登入B:

A:SSH 192.168.100.1

第一次需要輸入B的密碼,下一次就不需要了。

繼續閱讀