克林壁虎 2023-03-10 18:51 采纳率: 84.6%
浏览 36

Linux系统加载mpi

您好!
我正在linux系统下编译一个fortran代码包。其中用到了:
use mpi
过去曾经成功过。因为系统更新,需要重新打包,现在它找不到mpi了。
但我检查了一下,找到了gfortran,找到了mpirun(Open MPI),mpif90,mpirun.openmpi,……
但它们都是浅蓝色的(我查了一下,这似乎是链接文件)
其中mpirun的路径是/usr/bin/mpirun,于是我尝试使用module load /usr/bin/mpirun加载MPI环境,但这不起作用(Module ERROR: Magic cookie '#%Module' missing)。
不知道为什么,我可以用mpirun的命令运行已经编译好的代码包,可是修改这个代码后再打包时,它就找不到mpi了(Fatal Error: Cannot open module file ‘mpi.mod’ for reading at (1): No such file or directory)
您可以帮我吗?


在师兄的帮助下我找到了mpi.mod,并把它复制到了代码所在的路径下。然后,我运行./make.sh,结果依旧在use mpi的语句上报错,报错原因如下:
Fatal Error: Mismatch in components of derived type ‘mpi_status’ from ‘mpi_constants’ at (1): expecting ‘mpi_source’, but got ‘count_lo’
我第一次遇见这样的报错原因……该怎么解决呢……?

  • 写回答

2条回答 默认 最新

  • I am not people 2023-03-10 19:46
    关注

    你可以尝试使用系统软件包安装MPI。 大多数Linux发行版都包含MPI,你可以使用软件包管理器(如yum或apt-get)安装它。例如:

    yum install openmpi
    要确保你有正确的版本安装,例如,你可以安装特定的版本:

    yum install openmpi-1.6.4
    如果你安装了多个版本的MPI,请确保编译应用时使用的是正确的版本。 例如,你可以使用mpicc编译和链接C代码:

    mpicc -o myprogram myprogram.c
    要确保你使用的是MPI 1.6.4,你可以运行:

    mpicc-1.6.4 -o myprogram myprogram.c
    或者,在某些发行版本中,你可以使用模块来加载正确的版本:

    module load openmpi-1.6.4 mpicc -o myprogram myprogram.c

    评论

报告相同问题?

问题事件

  • 修改了问题 3月10日
  • 创建了问题 3月10日

悬赏问题

  • ¥15 STM32标准库IIS协议读取INMP441并通过DMA与串口传到上位机
  • ¥15 爬虫爬取网站的一些信息
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥100 栈回溯相关,模块加载后KiExceptionDispatch无法正常回溯了
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding