Parallel processing MPI在FORTRAN代码中未并行运行
我正试图在我的Ubuntu(14.04)机器上安装OpenMPI,我认为我已经成功了,因为我可以运行带有Parallel processing MPI在FORTRAN代码中未并行运行,parallel-processing,mpi,openmpi,Parallel Processing,Mpi,Openmpi,我正试图在我的Ubuntu(14.04)机器上安装OpenMPI,我认为我已经成功了,因为我可以运行带有mpirun的代码,但最近我注意到它并没有真正并行运行 我使用以下选项安装了openmpi: ./configure CXX=g++ CC=gcc F77=gfortran \ F90=gfortran \ FC=gfortran \ --enable-mpi-
mpirun
的代码,但最近我注意到它并没有真正并行运行
我使用以下选项安装了openmpi
:
./configure CXX=g++ CC=gcc F77=gfortran \
F90=gfortran \
FC=gfortran \
--enable-mpi-f77 \
--enable-mpi-f90 \
--prefix=/opt/openmpi-1.6.5
make all
sudo make install
正如我所说的,我运行了一个代码(不是我自己编写的),它似乎是并行工作的,因为我使用top
进行了检查,它在几个节点中运行
但现在我已经编写了一个简单的FORTRAN代码:
PROGRAM hello_MPI
INCLUDE "mpif.h"
INTEGER :: err, size, rank
CALL MPI_INIT(err)
IF (err /= MPI_SUCCESS) STOP 'Init failed'
CALL MPI_COMM_RANK(MPI_COMM_WORLD, rank, err)
CALL MPI_COMM_SIZE(MPI_COMM_WORLD, size, err)
PRINT*, "Hello world from process ", rank, " of ", size, " processes"
CALL MPI_FINALIZE(err)
END PROGRAM
但是当我用
mpirun -n 4 ./hello_MPI
我得到了4次相同的输出,表明它只是在4个不同的处理器中运行同一个进程
Hello world from process 0 of 1 processes
Hello world from process 0 of 1 processes
Hello world from process 0 of 1 processes
Hello world from process 0 of 1 processes
我在不同的机器上运行了相同的代码,得到了预期的输出:
Hello world from process 0 of 4 processes
Hello world from process 1 of 4 processes
Hello world from process 2 of 4 processes
Hello world from process 3 of 4 processes
我设法解决了它。老实说,这很愚蠢。出于某种原因,我没有使用正确的OpenMPI安装(我不知道它使用的是哪种)。我使用正确的
mpif90
重新编译,并使用正确的mpirun
运行它,现在我得到了预期的结果。
很抱歉搞混了,但我对这一点还不熟悉。谢谢你的帮助 我设法解决了它。老实说,这很愚蠢。出于某种原因,我没有使用正确的OpenMPI安装(我不知道它使用的是哪种)。我使用正确的
mpif90
重新编译,并使用正确的mpirun
运行它,现在我得到了预期的结果。
很抱歉搞混了,但我对这一点还不熟悉。谢谢你的帮助 您可能已经认识到,所报告的v1.6.x版本是一个退役版本。检查打开的MPI是否有更新的版本(发布此版本时为V3.0.0+),并使用所有可用的诊断工具,如
man mpirun
中所述(--报告绑定
等)为了更好地诊断问题,请仔细检查并更新您的实际代码执行环境详细信息,包括socket/core映射以及本文原始文章中的其他内容,以便更好地记录使用环境。好的,Juan?这通常发生在mpirun
和libmpi时。因此
不匹配。例如,如果您使用Open MPI中的mpirun
,但您的应用程序链接了MPICH或其他版本的Open MPI。您可能已经意识到,报告的版本1.6.x是一个已失效的版本。检查打开的MPI是否有更新的版本(发布此版本时为V3.0.0+),并使用所有可用的诊断工具,如man mpirun
中所述(--报告绑定
等)为了更好地诊断问题,请仔细检查并更新您的实际代码执行环境详细信息,包括socket/core映射以及本文原始文章中的其他内容,以便更好地记录使用环境。好的,Juan?这通常发生在mpirun
和libmpi时。因此
不匹配。例如,如果您使用Open MPI中的mpirun
,但您的应用程序链接了MPICH或其他版本的Open MPI。