- About HS-2
HS-2 RISC-V通用主板是澎峰科技與合作伙伴共同研發(fā)的一款專為開發(fā)者設計的標準mATX主板,它預裝了澎峰科技為RISC-V高性能服務器定制開發(fā)的軟件包,包括各種標準bencmark、支持V擴展的GCC編譯器、計算庫、中間件以及多種典型服務器應用程序。
HS-2 RISC-V通用主板搭載了一顆國產(chǎn)RISC-V 64核處理器(SG2042)。SG2042是目前已量產(chǎn)的性能最高的RISC-V處理器,主要針對高性能計算領域需求設計,適用于科學計算、工程計算、AI計算、融合計算等大算力應用場景。
- About OpenMPI
OpenMPI是一個免費、開源、高性能的MPI實現(xiàn),兼容MPI-1和MPI-2標準,并且還擁有完整的MPI-3.1標準。OpenMPI由開源社區(qū)開發(fā)維護,支持大多數(shù)類型的HPC平臺。
官方網(wǎng)站:
https://www.open-mpi.org
實驗方法
1. 下載OpenMPI源碼包并解壓,然后進入存放OpenMPI源碼的文件夾
wget
https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.5.tar.gz
tar -xzvf openmpi-4.1.5.tar.gz
2. 執(zhí)行./configure,如果配置時沒有報錯的話那就說明配置檢查通過,可以編譯。
3. 然后編譯源代碼并安裝:
make -j[根據(jù)個人喜好或?qū)嶋H情況來決定編譯時用的線程數(shù)]
sudo make install
注意:make install記得要帶sudo,否則會提示沒有權限!
4. 接下來嘗試運行mpicc并查看版本號,結果提示libopen-pal出現(xiàn)錯誤:
安裝libopenblas-dev即可解決該問題(如果出現(xiàn)選項配置界面,保持默認即可)
sudo apt install libopenblas-dev
再次運行mpicc --version和mpirun --version,如果顯示版本號那就說明運行成功。
5. OpenMPI提供了不少的示例代碼供我們測試,涵蓋了C、C++,甚至還有Java語言(是的,你沒看錯,還有Java語言,比如Hello.java文件等),不過在本教程中我們暫時不用Java,我們只用到C和C++代碼。
編譯所有例子(把example下的所有例子全部編譯一遍):
make -j[看你自己喜好,只要不超過最大核心數(shù)就行]
執(zhí)行mpirun -np 16 ring_usempi,如果出現(xiàn)以下內(nèi)容就說明編譯成功。
6. 當然你也可以單獨編譯一個用C語言寫的例子
mpicc ring_c.c -o ring_c
mpirun -np 16 ring_c
接下來嘗試使用mpicxx單獨編譯C++程序,結果無法編譯。經(jīng)過排查發(fā)現(xiàn)當時configure的時候沒帶上--enable-mpi-cxx參數(shù)。因此,只要帶上該參數(shù)重新配置并編譯安裝即可修復該問題。
實驗總結
1. 如果在configure時提示缺少庫,那么應該先安裝相應的庫,然后再重新編譯。
2. 如果提示libopen-pal或者其他相關錯誤,請安裝libopenblas-dev后重試。
3. 如果./configure不帶上--enable-mpi-cxx參數(shù),后續(xù)將無法編譯C++ MPI程序。
4. 在RISC-V平臺上跑OpenMPI對于RISC-V進入HPC世界來說只是一個開始,再加上SG2042的64核心的加持,能夠讓你在跑高性能計算應用的時候更加從容。
參考資料
OpenMPI官網(wǎng)下載頁:
https://www.open-mpi.org/software/ompi/v4.1/
OpenMPI——上海交大超算平臺用戶手冊
https://docs.hpc.sjtu.edu.cn/app/compilers_and_languages/open_mpi.html