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(本篇)
相关推荐
ERIC-ZI1 小时前
[ IDE ] SEGGER Embedded Studio for RISC-V
risc-v
码尔泰6 天前
CISC 和 RISC 架构的对比
架构·risc-v·cisc·risc
RT-Thread物联网操作系统12 天前
睿赛德科技携手先楫共创RISC-V生态|RT-Thread EtherCAT主从站方案大放异彩
大数据·人工智能·科技·物联网·risc-v
亦安的数字小站13 天前
RISC-V最先进CPU微架构分析
架构·risc-v
安全有理17 天前
OpenSBI的Domain支持
risc-v
TARDIS_202023 天前
尝试给OpenHarmony4.0增加可以在动态库中使用的日志模块
harmonyos·risc-v
nn_3024 天前
deepin(深度)社区亮相2024 RISC-V中国峰会,全力推动RISC-V生态发展
开发语言·人工智能·安全·系统架构·开源·risc-v
问界前讯24 天前
委托发布 | 进迭时空联合移动云能力中心实现业界首个RISC-V IO虚拟化方案
运维·服务器·risc-v
韦东山24 天前
RISC-V全志D1sCVBS套件
risc-v
百里杨1 个月前
QEMU中GDB远程串行协议
qemu·gdb·risc-v·riscv·difftest