*已上传
我正在尝试使用MPI在SGE上提交工作。 R脚本使用Rmpi和snow。 在SGE脚本中,我有:
#!/bin/sh
#Run with current set of modules and in the current directory
#$ -V -cwd
#Request some time- min 15 mins - max 48 hours
#$ -l h_rt=1:00:00
# Request 4 CPU cores(processes)
#$ -pe ib 4
#Get email at start and end of the job
#$ -m abe
#$ -M bnldd@leeds.ac.uk
#Now run the job
mpirun -n 4 /apps/applications/R/3.5.0/1/default/bin/R --no-save -q <snowe.R> snowe.Rout
下面的R脚本snowe.R:
library(snow)
library(Rmpi)
p <- rnorm(123, m=33)
cl <- makeCluster(3, type="MPI")
### sends function to each system
clusterCall( cl, function() Sys.info()[c("nodename","machine")])
clusterCall( cl, function() rnorm(1, 33,1 ) )
myNorms <- matrix( rnorm(1000), ncol=10 )
## goes column by column
mypapply <- parApply(cl, myNorms, 2, print )
attributes(mypapply)
mypapply <- parApply(cl, myNorms, 2, mean )
mypapply
stopCluster(cl)
mpi.quit()
系统在snowe.Rout文件中产生以下错误:
图书馆(雪地)
库(Rmpi)
>
由于进程等级为2,且PID为0,mpirun已退出 节点dc1s0b1a不正确退出。发生这种情况的原因有三个:
此过程在退出前未调用“ init”,但其他进程在 工作做到了。这可能导致作业在等待期间无限期挂起 为所有进程调用“ init”。根据规则,如果一个进程调用“ init”, 那么所有进程都必须在终止之前调用“ init”。
此过程称为“ init”,但退出时未调用“ finalize”。 根据规则,所有调用“ init”的进程必须在调用“ finalize”之前 退出,否则将被视为“异常终止”
此过程称为“ MPI_Abort”或“ orte_abort”以及mca参数 orte_create_session_dirs设置为false。在这种情况下,运行时无法 检测中止调用是异常终止。因此,唯一的 您将收到的错误消息就是这个。
这可能导致应用程序中的其他进程被 被mpirun发送的信号终止(如此处报道)。
您可以通过在mpirun命令行上指定-quiet来避免出现此消息。
可能是哪个问题?