1

我能够编译,这是文件夹psndrv1.f中的一个示例。ARPACK/PARPACK/EXAMPLE/MPI但是,当我使用命令运行程序时mpirun -np 4 a.out,出现以下错误。

[.th:9951] *** An error occurred in MPI_Allreduce
[.th:9951] *** on communicator MPI_COMM_WORLD
[.th:9951] *** MPI_ERR_OP: invalid reduce operation
[.th:9951] *** MPI_ERRORS_ARE_FATAL: your MPI job will now abort
--------------------------------------------------------------------------
mpirun has exited due to process rank 0 with PID 9951 on
node superinfra.ku.ac.th exiting improperly. There are two reasons this could oc
cur:

1. this process did not call "init" before exiting, but others in
the job did. This can cause a job to hang indefinitely while it waits
for all processes to call "init". By rule, if one process calls "init",
then ALL processes must call "init" prior to termination.

2. this process called "init", but exited without calling "finalize".
By rule, all processes that call "init" MUST call "finalize" prior to
exiting or it will be considered an "abnormal termination"

This may have caused other processes in the application to be
terminated by signals sent by mpirun (as reported here).
--------------------------------------------------------------------------
[.th:09950] 3 more processes have sent help message help-mpi-err
ors.txt / mpi_errors_are_fatal
[.th:09950] Set MCA parameter "orte_base_help_aggregate" to 0 to
 see all help / error messages

我正在使用岩石簇。请帮忙。

4

1 回答 1

0

我今天实际上遇到了完全相同的问题并设法解决了它。我想分享困扰我的事情,以防有人陷入同一个陷阱。这是我用来编译的 mpi 库和 PARPACK 包包含的“mpif.h”文件之间的不匹配。

根据我的观察,PARPACK 包有 3 个 mpif.h 文件。我的解决方案是用我的 mpi 库的“mpif.h”填充替换 PARPACK 目录树中的所有“mpif.h”文件。

于 2019-01-17T12:23:49.470 回答