计算化学公社

 找回密码 Forget password
 注册 Register
Views: 14096|回复 Reply: 20
打印 Print 上一主题 Last thread 下一主题 Next thread

[并行运算] openmpi安装运行问题

[复制链接 Copy URL]

26

帖子

0

威望

349

eV
积分
375

Level 3 能力者

跳转到指定楼层 Go to specific reply
#
我刚刚装了openmpi-1.10.2版本,按照网上的方法安装的,设置好环境变量之后运行了下,mpirun -np 4 hello_c,但是结果并没有4个进程,只有一个进程,却重复了4次;但在运行mpirun -np 4 hello_usempi.f90时,出现提示:mpirun noticed that the job aborted, but has no info as to the process that caused that situation。
请问这是什么原因?                              

2

帖子

0

威望

8

eV
积分
10

Level 1 能力者

20#
发表于 Post on 2017-4-16 17:51:39 | 只看该作者 Only view this author
西乡新丰客 发表于 2017-1-7 21:30
还有一点,就是,我把/usr/local/openmpi/example下的*.f90的并行例子cp到主目录~/下用mpifort编译,然 ...

虽然不知道具体问题,我觉得可能是权限问题

26

帖子

0

威望

349

eV
积分
375

Level 3 能力者

19#
 楼主 Author| 发表于 Post on 2017-1-8 20:59:00 | 只看该作者 Only view this author
本帖最后由 西乡新丰客 于 2017-1-8 21:03 编辑
卡开发发 发表于 2017-1-8 11:54
实在不行私下联系,我远程看下好了,实在搞不定再说。

麻烦您在看下:我将openmpi的路径写入~/.bashrc内source后,把/usr/local/openmpi/example下的*.f90的并行例子cp到主目录~/下用mpifort编译,然后用mpirun运行, 是可以正常运行得出正确的进程数的,但是当我在根目录下编译时,是不能用mpifort来编译的,只能用mpif90来编译,而且编译后再用mpirun运行后会出现一个进程重复np次的情况。我又修改了根目录 下/etc/profile内openmpi的路径,仍然会出现只有一个进程重复np次的情况。
我并没有在.bashrc或者profile内写入过其他的mpi的环境变量。(只有ifort和openmpi的路径。)
我觉得问题是不是在于在根目录下编译fortran程序时,只能用gfortran,而我的gfortran又并没有安装好,所以只有一个进程,重复了np次,而在主目录~/下,由于我在bashrc中写入来openmpi以及ifort的路径,所以可以用ifort来编译。而现在在根目录下仍然是只能用gfortran来编译串行的fortran程序,而不能用ifort来编译,会提示sudo:ifort找不到命令。我想,是不是只要我在根目录下能用ifort编译串行的fortran程序,就可以正确安装openmpi了。这之前出想的./configure --prefix=/***/ F77=ifort FC=ifort所出现的错误也就会没有了。我已經用root下source了/.bashrc以及/etc/profile还是没有用处。
另外有帖子说:“openmpi设置fortran编译器,通过 man mpif90查到在/usr/share/openmpi/mpif90-wrapper-data.txt里面修改配置,内容的话一看就知道了。”我也试过将mpifort-wrapper-data.txtcompiler中compiler参数修改为ifort也没有效果。

26

帖子

0

威望

349

eV
积分
375

Level 3 能力者

18#
 楼主 Author| 发表于 Post on 2017-1-8 17:03:45 | 只看该作者 Only view this author
卡开发发 发表于 2017-1-8 11:54
实在不行私下联系,我远程看下好了,实在搞不定再说。

好的,谢谢,我自己先试试

3621

帖子

3

威望

1万

eV
积分
18426

Level 6 (一方通行)

第一原理惨品小作坊

17#
发表于 Post on 2017-1-8 11:54:24 | 只看该作者 Only view this author
西乡新丰客 发表于 2017-1-8 11:06
我不是太明白您的意思,因为我并没有在.bashrc或者profile内写入过其他的mpi的环境变量。
我现在觉得问 ...

实在不行私下联系,我远程看下好了,实在搞不定再说。
日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。
本周忙

26

帖子

0

威望

349

eV
积分
375

Level 3 能力者

16#
 楼主 Author| 发表于 Post on 2017-1-8 11:06:17 | 只看该作者 Only view this author
卡开发发 发表于 2017-1-8 06:19
哦,你有mpiifort,那看来环境变量有冲突,看看能否在bashrc或profile先注释掉intel的mpi的环境变量,然 ...

我不是太明白您的意思,因为我并没有在.bashrc或者profile内写入过其他的mpi的环境变量。
我现在觉得问题可能是出在了在根目录下编译fortran程序时,只能用gfortran,只有在主目录~/下才可以用ifort来编译,但是以前我装gfortran时并没有写入过其路径,现在在.bashrc或者profile内也没有其路径,所以我想知道如何使得在根目录下可以用ifort来编译,而不用gfortran来编译。
谢谢

26

帖子

0

威望

349

eV
积分
375

Level 3 能力者

15#
 楼主 Author| 发表于 Post on 2017-1-8 10:36:51 | 只看该作者 Only view this author
卡开发发 发表于 2017-1-8 06:19
哦,你有mpiifort,那看来环境变量有冲突,看看能否在bashrc或profile先注释掉intel的mpi的环境变量,然 ...

抱歉,我没了解您的意思,man mpifort中说是openmpi中带的fortran编译器,我只在.bashrc和profile内设置了intel的ifort的路径,和openmpi的路径,我以前装过mpich但并没有设置环境变量,所以也没有用过mpich。我如果直接./configure  --prefix=/*****/不加F77,FC参数,是可以成功配置的。
您让我注释掉inter的mpi环境变量,可我本来就没有写到bashrc和profile里去,这应该怎么办?谢谢

3621

帖子

3

威望

1万

eV
积分
18426

Level 6 (一方通行)

第一原理惨品小作坊

14#
发表于 Post on 2017-1-8 06:19:45 | 只看该作者 Only view this author
本帖最后由 卡开发发 于 2017-1-8 06:23 编辑
西乡新丰客 发表于 2017-1-7 21:30
还有一点,就是,我把/usr/local/openmpi/example下的*.f90的并行例子cp到主目录~/下用mpifort编译,然 ...

哦,你有mpiifort,那看来环境变量有冲突,看看能否在bashrc或profile先注释掉intel的mpi的环境变量,然后再试试。
日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。
本周忙

26

帖子

0

威望

349

eV
积分
375

Level 3 能力者

13#
 楼主 Author| 发表于 Post on 2017-1-7 21:30:58 | 只看该作者 Only view this author
卡开发发 发表于 2017-1-7 11:52
1、configure的过程只是生成编译过程的用到的一些本机的信息。同样检查ifort的所有环境变量是否正确设置 ...

还有一点,就是,我把/usr/local/openmpi/example下的*.f90的并行例子cp到主目录~/下用mpifort编译,然后用mpirun运行,是可以正常运行得出正确的进程数的。这和mpicc那个编译出现的问题一样,都是在根目录下没法正常运行,但到了主目录下就可以了,即使我也改变了根目录下/etc/profile内的路径,仍然会出现只有一个进程重复np次的情况。请问,这是为什么?谢谢

26

帖子

0

威望

349

eV
积分
375

Level 3 能力者

12#
 楼主 Author| 发表于 Post on 2017-1-7 16:06:23 | 只看该作者 Only view this author
本帖最后由 西乡新丰客 于 2017-1-7 21:04 编辑
卡开发发 发表于 2017-1-7 11:52
1、configure的过程只是生成编译过程的用到的一些本机的信息。同样检查ifort的所有环境变量是否正确设置 ...

而且,现在我把openmpi的example中的hello_c.c文件cp到我的主目录~/下,再编译运行,就能得到正确的进程数了,但如果还在openmpi的目录下运行,还是会出现一个进程重复np次的情况。(说明下,我的openmpi装在了/usr/local/下,例子也就在/usr/local/openmpi/example下)而且我在修改路径时只修改了~/.bashrc,中的PATH和LIB,我想,问题是不是出在了只修改了用户主目录下的.bashrc而没有修改根目录下的环境变量,所以我又修改了/etc/profile中的PATH和LIB,但在openmpi目录下编译运行的结果还是同上面一样,这是为什么?

26

帖子

0

威望

349

eV
积分
375

Level 3 能力者

11#
 楼主 Author| 发表于 Post on 2017-1-7 15:56:52 | 只看该作者 Only view this author
本帖最后由 西乡新丰客 于 2017-1-7 21:21 编辑
卡开发发 发表于 2017-1-7 11:52
1、configure的过程只是生成编译过程的用到的一些本机的信息。同样检查ifort的所有环境变量是否正确设置 ...

*** Fortran compiler
checking whether we are using the GNU Fortran compiler... no
checking whether ifort accepts -g... no
configure: WARNING: Open MPI now ignores the F77 and FFLAGS environment variables; only the FC and FCFLAGS environment variables are used.
checking whether ln -s works... yes
checking if Fortran compiler works... no
**********************************************************************
* It appears that your Fortran compiler is unable to produce working
* executables.  A simple test application failed to properly
* execute.  Note that this is likely not a problem with Open MPI,
* but a problem with the local compiler installation.  More
* information (including exactly what command was given to the
* compiler and what error resulted when the command was executed) is
* available in the config.log file in the Open MPI build directory.
**********************************************************************
configure: error: Could not run a simple Fortran program.  Aborting.
这就是在用./configure  --prefix=/***/  F77=ifort   FC=ifort出现的提示,但我已經检查了一遍环境配置which ifort是我安装的目录。而且我的ifort可以编译*.f90的fortran文件,为什么还说我的ifort安装有问题?

3621

帖子

3

威望

1万

eV
积分
18426

Level 6 (一方通行)

第一原理惨品小作坊

10#
发表于 Post on 2017-1-7 11:52:53 | 只看该作者 Only view this author
西乡新丰客 发表于 2017-1-7 10:17
谢谢,which后不是我的安装目录,我的mpicc应该在/usr/local/openmpi/bin下,但which的路径是usr/bin/下 ...

1、configure的过程只是生成编译过程的用到的一些本机的信息。同样检查ifort的所有环境变量是否正确设置,把你的错误信息发来看看;
2、ifort不正常的话icc也够呛工作正常,尚不清楚原因。
日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。
本周忙

26

帖子

0

威望

349

eV
积分
375

Level 3 能力者

9#
 楼主 Author| 发表于 Post on 2017-1-7 10:17:21 | 只看该作者 Only view this author
本帖最后由 西乡新丰客 于 2017-1-7 11:20 编辑
卡开发发 发表于 2017-1-7 03:22
一次跳出来n个相同的有可能是环境变量的问题,你该检查一下which mpicc看看路径的指向是不是你安装的目录。

谢谢,which后不是我的安装目录,我的mpicc应该在/usr/local/openmpi/bin下,但which的路径是usr/bin/下,我重新安装了下,可以用了,但是还有两个问题:
1,我在重新安装时,config  --prefix=/×××/×××/   后面加上的F77=ifort  以及FC=ifort是在确定用的编译器么?但是,我的fortran编译器有gfortran以及ifort,但是当我加上这个F77=ifort FC=ifort参数后,会出现错误提示:是fortran编译器问题而不是openmpi的问题。然后就终止了。可是我的ifort -v是可以显示出版本号的,为什么还会说我的fortran编译器有问题?
2,我在网上下载的一个hello_c.c的程序mpicc 编译后mpirun执行可以显示出正确的进程结果。但是我用openmpi的example中的hello_c.c编译后还是错误的结果,就是一个进程显示np次。这又是为什么?(现在我which mpicc后的路径和我的安装路径是一样的了)。
谢谢

3621

帖子

3

威望

1万

eV
积分
18426

Level 6 (一方通行)

第一原理惨品小作坊

8#
发表于 Post on 2017-1-7 03:22:32 | 只看该作者 Only view this author
一次跳出来n个相同的有可能是环境变量的问题,你该检查一下which mpicc看看路径的指向是不是你安装的目录。
日常打哑谜&&探寻更多可能。
原理问题不公开讨论,非商业性质讨论欢迎私聊。
本周忙

26

帖子

0

威望

349

eV
积分
375

Level 3 能力者

7#
 楼主 Author| 发表于 Post on 2017-1-6 21:00:17 | 只看该作者 Only view this author
archer 发表于 2017-1-6 18:47
你的配置没有设置正确,按照教程再检查一遍看看,不行的话,我也没有办法,抱歉

嗯,我再试试,谢谢

300

帖子

0

威望

4190

eV
积分
4490

Level 6 (一方通行)

6#
发表于 Post on 2017-1-6 18:47:51 | 只看该作者 Only view this author
你的配置没有设置正确,按照教程再检查一遍看看,不行的话,我也没有办法,抱歉

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 15:29 , Processed in 0.405149 second(s), 28 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list