在Ubuntu上安裝和配置MPI環(huán)境的詳細步驟
1. 安裝 OpenMPI
首先,確保系統(tǒng)是最新的,并安裝 OpenMPI。
- 更新軟件包索引:
sudo apt update
- 安裝 OpenMPI: 使用 Ubuntu 的包管理器安裝 OpenMPI:
sudo apt install openmpi-bin openmpi-common libopenmpi-dev
這個命令會安裝 OpenMPI 的二進制文件、公共文件和開發(fā)庫(
libopenmpi-dev
提供了編譯 MPI 程序所需的頭文件和庫文件)。檢查安裝是否成功: 安裝完成后,檢查 OpenMPI 是否安裝成功:
mpirun --version
- 你應(yīng)該會看到類似下面的輸出,顯示 OpenMPI 的版本信息:
mpirun (Open MPI) 4.1.1 Report bugs to http://www.open-mpi.org/community/help/
2. 配置 OpenMPI 環(huán)境
環(huán)境變量設(shè)置(可選): 通常,MPI 二進制文件會自動添加到
PATH
中,如果你安裝了多個 MPI 版本或者想確保正確的路徑配置,可以手動設(shè)置環(huán)境變量。編輯你的
~/.bashrc
文件,添加以下幾行:
export PATH=/usr/lib/openmpi/bin:$PATH export LD_LIBRARY_PATH=/usr/lib/openmpi/lib:$LD_LIBRARY_PATH
- 使更改生效: 保存并關(guān)閉文件,然后執(zhí)行以下命令使其生效:
source ~/.bashrc
3. 編寫 MPI 程序
接下來,我們來編寫一個簡單的 MPI 程序,以確保安裝和配置正確。
創(chuàng)建一個名為
hello_mpi.c
的文件:
// hello_mpi.c #include <mpi.h> #include <stdio.h> int main(int argc, char** argv) { MPI_Init(&argc, &argv); // 初始化MPI環(huán)境 int world_rank; MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); // 獲取當前進程的Rank int world_size; MPI_Comm_size(MPI_COMM_WORLD, &world_size); // 獲取總進程數(shù) printf("Hello world from processor %d out of %d processors\n", world_rank, world_size); MPI_Finalize(); // 結(jié)束MPI環(huán)境 return 0; }
- 編譯 MPI 程序: 使用
mpicc
(OpenMPI 的 C 編譯器封裝器)來編譯 MPI 程序:
mpicc hello_mpi.c -o hello_mpi
- 運行 MPI 程序: 使用
mpirun
或mpiexec
來運行 MPI 程序。指定使用的進程數(shù)量,例如:
mpirun -np 4 ./hello_mpi
該命令使用 4 個進程運行程序。你應(yīng)該會看到類似以下的輸出:
Hello world from processor 0 out of 4 processors Hello world from processor 1 out of 4 processors Hello world from processor 2 out of 4 processors Hello world from processor 3 out of 4 processors
4. 運行多節(jié)點的 MPI 程序(可選)
如果你有多臺機器并希望在集群上運行 MPI 程序,步驟會稍微復(fù)雜一些。
4.1 配置免密 SSH 登錄
生成 SSH 密鑰(如果沒有):
ssh-keygen -t rsa -b 2048
按
Enter
以默認設(shè)置生成密鑰。復(fù)制 SSH 密鑰到遠程節(jié)點: 使用
ssh-copy-id
將密鑰復(fù)制到其他機器上:
ssh-copy-id user@remote_host
現(xiàn)在你可以從主機通過 SSH 無需密碼登錄遠程主機了。
4.2 運行多節(jié)點 MPI 程序
創(chuàng)建主機文件: 創(chuàng)建一個包含節(jié)點 IP 地址或主機名的主機文件,例如
hosts
文件:
192.168.1.1 slots=2 192.168.1.2 slots=2
其中
slots=2
表示每個節(jié)點上運行 2 個進程。運行 MPI 程序: 使用
mpirun
,指定主機文件和進程數(shù):
mpirun --hostfile hosts -np 4 ./hello_mpi
這會在多個節(jié)點上啟動 4 個 MPI 進程。
5. MPI 編譯器封裝器
MPI 提供了編譯器封裝器,使編譯 MPI 程序更簡單:
- C 編譯器封裝器:
mpicc
- C++ 編譯器封裝器:
mpicxx
- Fortran 編譯器封裝器:
mpifort
這些封裝器自動處理 MPI 頭文件和庫的鏈接,可以直接用它們來編譯 MPI 程序。
6. 常用 MPI 命令
mpicc
:用于編譯 MPI C 程序。mpirun
:用于運行 MPI 程序,支持多節(jié)點、多進程執(zhí)行。mpiexec
:與mpirun
類似,是 MPI 標準中指定的命令。ompi_info
:查看 OpenMPI 的配置信息。
7. 驗證 MPI 環(huán)境
你可以使用 OpenMPI 自帶的測試工具來確認 MPI 環(huán)境是否配置正確:
mpirun --host localhost -np 4 hostname
該命令將在本地機器上運行 4 個 MPI 進程,并輸出機器名稱。如果環(huán)境配置正確,應(yīng)該會輸出本地主機名 4 次。
總結(jié)
- 安裝 OpenMPI:使用 Ubuntu 的包管理器安裝 OpenMPI 工具和庫。
- 配置環(huán)境:確保 MPI 的二進制文件在 PATH 中,并設(shè)置相關(guān)環(huán)境變量。
- 編寫和編譯 MPI 程序:通過 mpicc 編譯,并使用 mpirun 運行 MPI 程序。
- 多節(jié)點運行(可選):配置免密 SSH 登錄,使用主機文件在多臺機器上運行 MPI 程序。
以上就是在Ubuntu上安裝和配置MPI環(huán)境的詳細步驟的詳細內(nèi)容,更多關(guān)于Ubuntu安裝和配置MPI的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
CentOS7 安裝 zabbix 4.0 教程(圖文詳解)
這篇文章主要介紹了CentOS7 安裝 zabbix 4.0 教程,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10Linux關(guān)機時執(zhí)行指定腳本功能實現(xiàn)
本篇文章給大家分享了Linux關(guān)機時執(zhí)行指定腳本功能的實現(xiàn)詳解,對此有需要的朋友跟著小編一起學習下。2018-03-03Linux如何使用ntp自動聯(lián)網(wǎng)校準時間
電腦用戶經(jīng)常需要查看當前時間、安裝網(wǎng)絡(luò)時間協(xié)議(NTP)服務(wù)和校準時間,確保系統(tǒng)時間的準確性,首先,用戶可通過系統(tǒng)自帶功能查看當前時間,其次,通過安裝NTP服務(wù)可以自動同步網(wǎng)絡(luò)時間,用戶需要選擇合適的NTP服務(wù)器,這些服務(wù)器地址可以在互聯(lián)網(wǎng)上查到2024-10-10Linux環(huán)境部署DNF倉庫以及配置NFS共享服務(wù)
本文詳細介紹了如何在Linux環(huán)境下部署DNF倉庫和配置NFS共享服務(wù),DNF倉庫主要用于集中管理軟件包,而NFS共享服務(wù)則用于多系統(tǒng)間的文件共享,文章涵蓋了從倉庫部署、軟件包同步到NFS配置和客戶端訪問的全過程,為系統(tǒng)管理員提供了全面的指導(dǎo)2025-04-04PHP程序員玩轉(zhuǎn)Linux系列 lnmp環(huán)境搭建
這篇文章主要為大家詳細介紹了PHP程序員玩轉(zhuǎn)Linux系列文章,lnmp環(huán)境搭建教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04