mpirun未将标准输入传递给fortran

mpirun未将标准输入传递给fortran,fortran,mpi,stdin,lsf,Fortran,Mpi,Stdin,Lsf,试图在一个新集群上运行一些代码,但是我在通过mpirun将一些数据传递到fortran代码中时遇到了一些问题。请注意,这段代码已经在以前的集群上运行过,但是这个集群似乎有所不同 集群正在通过BSUB/LSF运行作业提交,我已经尝试使用mpif90的ifort和gfortran版本编译fortran代码 具体来说,我有一份工作需要知道它的名字。我通过作业提交脚本中的一个HEREDOC语句传递它,如下所示(注意,在实际代码中,它是一个数组作业,每个个体都需要传递其唯一标识符): 但是,标准输出中没有

试图在一个新集群上运行一些代码,但是我在通过mpirun将一些数据传递到fortran代码中时遇到了一些问题。请注意,这段代码已经在以前的集群上运行过,但是这个集群似乎有所不同

集群正在通过BSUB/LSF运行作业提交,我已经尝试使用mpif90的ifort和gfortran版本编译fortran代码

具体来说,我有一份工作需要知道它的名字。我通过作业提交脚本中的一个HEREDOC语句传递它,如下所示(注意,在实际代码中,它是一个数组作业,每个个体都需要传递其唯一标识符):

但是,标准输出中没有任何结果,代码无限期挂起(直到墙时间结束)

请注意,我还尝试将输入输入输入到文件中,并通过BSUB中的-I标记传递它:

#!/bin/bash
#BSUB -q queuename
#BSUB -n 2
#BSUB -i jobname.i
#BSUB -o jobname.job.o%J
#BSUB -J jobname.job
#BSUB -e jobname.job.e%J
#BSUB -W 1:00
cd /workingdirectory/
mpirun -lsf /workingdirectory/jobname.exe 
其中jobname.i是:

jobname
还是没有快乐。计算当然可以访问存储,就像我将fortran代码更改为:

      include 'mpif.h'
      integer num_procs,n_ranks,ierr
      character name*7
      call MPI_Init (ierr)
      call MPI_Comm_rank (MPI_COMM_WORLD,n_ranks,ierr)
      call MPI_Comm_size (MPI_COMM_WORLD,num_procs,ierr)
      if (n_ranks == 0) then
          open (5,file='jobname.i',status='unknown')
          read (5,'(a7)') name
          write(*,2000) name
      end if
 2000 format(a7)

那么它工作得很好。有什么建议吗?

您使用哪个MPI库?为什么要使用它?这是一个集中管理的系统,所以在很大程度上我使用的是他们给我的,但它看起来像:IBM平台MPI社区编辑关于第二个问题,我想传递文本“jobname”,而不是传递一个内有文本“jobname”的文件。我相信如果我使用<,它将需要一个文件,而我会在这里的某个地方查找,但尝试用谷歌搜索更多,这只是第一次快速查找。但是命令行参数对我来说似乎要好得多。
jobname
      include 'mpif.h'
      integer num_procs,n_ranks,ierr
      character name*7
      call MPI_Init (ierr)
      call MPI_Comm_rank (MPI_COMM_WORLD,n_ranks,ierr)
      call MPI_Comm_size (MPI_COMM_WORLD,num_procs,ierr)
      if (n_ranks == 0) then
          open (5,file='jobname.i',status='unknown')
          read (5,'(a7)') name
          write(*,2000) name
      end if
 2000 format(a7)