xiaolai7 2024-05-01 14:10 采纳率: 0%
浏览 13
已结题

Centos7 / PETGEM

img

以上是我在PETGEM网站上找到的运行PETGEM的方式。

然后我在运行PETGEM的时候出现了以下问题:

img

我在网上找到 MPI_Recv_init_c是关于fortran的一个函数,这意思是装的fortran出现问题了吗,然后这种问题应该怎么解决呢

  • 写回答

25条回答 默认 最新

  • 专家-皆知 2024-05-01 14:10
    关注
    获得0.15元问题酬金

    参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。

    遇到这个问题,看起来是与PETSc库(特别是其内部的MPI实现)和你的系统上的Fortran编译器或MPI库之间存在不兼容性。MPI_Recv_init_c这个未定义的符号错误提示可能是因为PETSc在编译时使用了特定版本的MPI接口,而你的运行环境中可能没有正确匹配这个接口的库。

    解决步骤

    1. 检查PETSc版本与系统MPI库一致性

    首先,确保你的PETSc库是与系统中的MPI安装相匹配的。可以查看PETSc是如何配置和编译的,通常在PETSc源码目录下的configure.log文件里有相关信息。检查它使用的MPI库路径是否与你系统当前使用的MPI库一致。

    2. 确认Fortran编译器设置

    确认你的系统中Fortran编译器的版本,并且检查PETSc构建时是否正确指定了Fortran编译器。有时候,不同的Fortran编译器(如gfortran、ifort等)对MPI的支持细节有差异,可能导致此类问题。

    3. 重新编译PETSc

    如果发现版本不匹配或编译选项不正确,考虑重新编译PETSc。在重新编译之前,确保已经安装了正确的MPI库(如OpenMPI或MPICH),并且环境变量(如LD_LIBRARY_PATH)已正确设置指向这些库。

    编译PETSc的一般命令示例:

    # 先清理旧的构建文件
    make clean
    
    # 配置PETSc,这里以OpenMPI为例,替换为你的MPI安装路径
    ./configure \
    --with-cc=mpicc \
    --with-cxx=mpicxx \
    --with-fc=mpif90 \
    --with-clanguage=C \
    --download-fblaslapack \
    --prefix=/your/install/path/petsc
    
    # 编译并安装
    make all
    make test
    make install
    

    确保替换/your/install/path/petsc为你的目标安装路径。

    4. 更新环境变量

    重新编译安装后,确保更新你的环境变量,特别是LD_LIBRARY_PATH,使其包含新编译的PETSc库路径,以及正确的MPI库路径。

    5. 调整PETGEM配置

    如果你的PETSc已经正确安装且版本匹配,那么可能需要调整PETGEM的配置文件或构建过程,确保它指向正确的PETSc安装位置。这可能涉及修改PETGEM的构建脚本或Makefile,确保它们引用了新编译的PETSc库。

    总结

    • 确认MPI库与PETSc版本的兼容性。
    • 检查和配置正确的Fortran编译器。
    • 重新编译PETSc,确保所有依赖正确无误。
    • 更新环境变量,指向正确的库路径。
    • 调整PETGEM配置以使用新编译的PETSc。

    如果以上步骤都不能解决问题,建议查阅PETSc和PETGEM的官方文档或社区论坛,可能有其他用户遇到过类似的问题并分享了解决方案。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月9日
  • 创建了问题 5月1日

悬赏问题

  • ¥15 问题遇到的现象和发生背景 360导航页面千次ip是20元,但是我们是刷量的 超过100ip就不算量了,假量超过100就不算了 这是什么逻辑呢 有没有人能懂的 1000元红包感谢费
  • ¥30 计算机硬件实验报告寻代
  • ¥15 51单片机写代码,要求是图片上的要求,请大家积极参与,设计一个时钟,时间从12:00开始计时,液晶屏第一行显示time,第二行显示时间
  • ¥15 用C语言判断命题逻辑关系
  • ¥15 原子操作+O3编译,程序挂住
  • ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
  • ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?
  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘