RISC-V公测平台发布:如何在SG2042上玩转OpenMPI

About HS-2

HS-2 RISC-V通用主板是澎峰科技与合作伙伴共同研发的一款专为开发者设计的标准mATX主板,它预装了澎峰科技为RISC-V高性能服务器定制开发的软件包,包括各种标准bencmark、支持V扩展的GCC编译器、计算库、中间件以及多种典型服务器应用程序。

HS-2 RISC-V通用主板搭载了一颗国产RISC-V 64核处理器(SG2042)。SG2042是目前已量产的性能最高的RISC-V处理器,主要针对高性能计算领域需求设计,适用于科学计算、工程计算、AI计算、融合计算等大算力应用场景。

About OpenMPI

OpenMPI是一个免费、开源、高性能的MPI实现,兼容MPI-1和MPI-2标准,并且还拥有完整的MPI-3.1标准。OpenMPI由开源社区开发维护,支持大多数类型的HPC平台。

官方网站:

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
  1. 执行./configure,如果配置时没有报错的话那就说明配置检查通过,可以编译。
  1. 然后编译源代码并安装:

    make -j[根据个人喜好或实际情况来决定编译时用的线程数]
    sudo make install

注意:make install记得要带sudo,否则会提示没有权限!

  1. 接下来尝试运行mpicc并查看版本号,结果提示libopen-pal出现错误:

安装libopenblas-dev即可解决该问题(如果出现选项配置界面,保持默认即可)

sudo apt install libopenblas-dev

再次运行mpicc --version和mpirun --version,如果显示版本号那就说明运行成功。

  1. OpenMPI提供了不少的示例代码供我们测试,涵盖了C、C++,甚至还有Java语言(是的,你没看错,还有Java语言,比如Hello.java文件等),不过在本教程中我们暂时不用Java,我们只用到C和C++代码。

编译所有例子(把example下的所有例子全部编译一遍):

make -j[看你自己喜好,只要不超过最大核心数就行]

执行mpirun -np 16 ring_usempi,如果出现以下内容就说明编译成功。

  1. 当然你也可以单独编译一个用C语言写的例子

    mpicc ring_c.c -o ring_cmpirun -np 16 ring_c

接下来尝试使用mpicxx单独编译C++程序,结果无法编译。经过排查发现当时configure的时候没带上--enable-mpi-cxx参数。因此,只要带上该参数重新配置并编译安装即可修复该问题。

实验总结

  1. 如果在configure时提示缺少库,那么应该先安装相应的库,然后再重新编译。

  2. 如果提示libopen-pal或者其他相关错误,请安装libopenblas-dev后重试。

  3. 如果./configure不带上--enable-mpi-cxx参数,后续将无法编译C++ MPI程序。

  4. 在RISC-V平台上跑OpenMPI对于RISC-V进入HPC世界来说只是一个开始,再加上SG2042的64核心的加持,能够让你在跑高性能计算应用的时候更加从容。

参考资料

OpenMPI官网下载页:

https://www.open-mpi.org/software/ompi/v4.1/
OpenMPI------上海交大超算平台用户手册

https://docs.hpc.sjtu.edu.cn/app/compilers_and_languages/open_mpi.html

正文完


《RISC-V公测平台发布》系列文章会持续跟大家分享澎峰RISC-V生态圈的开发者朋友们在RISC-V平台的移植测试成果,目前已发布:

  1. RISC-V公测平台发布 ·Stream带宽完整测试

  2. RISC-V公测平台发布 · 我的世界MohistMC

  3. RISC-V公测平台发布 · 第一个WEB Server"Hello RISC-V world!"

  4. RISC-V公测平台发布 ·如何在SG2042上玩转k3s

5."RISC-V成长日记" blog发布,第一个运行在RISC-V服务器上的blog?

  1. RISC-V公测平台发布:如何在SG2042上玩转OpenMPI(本篇)
相关推荐
CV金科12 小时前
freertos的基础(二)内存管理:堆和栈
stm32·开源·arm·freertos·risc-v
BroccoliKing2 天前
An FPGA-based SoC System——RISC-V On PYNQ项目复现
arm开发·单片机·mcu·fpga开发·dsp开发·risc-v
百里杨5 天前
X86(Local APIC+I/O APIC)与RISC-V(IMSIC+APLIC)对比
risc-v·x86·local apic·ioapic·imsic·aplic
嵌入式Linux,5 天前
一块钱的RISC-V 32位芯片
risc-v
世事如云有卷舒10 天前
RISC-V学习笔记
笔记·学习·risc-v
oahrzvq12 天前
【CPU】RISC-V 与 x86 操作数字段的区别
系统架构·risc-v
MounRiver_Studio13 天前
基于VSCode软件框架的RISC-V IDE MRS2正式上线发布
ide·vscode·mcu·risc-v
东辰芯力1 个月前
探索未来物联网开发——HiSpark平台与海思IDE安装指南
人工智能·单片机·嵌入式硬件·算法·risc-v
杭州_燕十三1 个月前
从零开始学习 sg200x 多核开发之 sophpi 编译生成 fip.bin 流程梳理
risc-v·sg2002
luoganttcc1 个月前
优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V
fpga开发·开源·risc-v