制作mpiexec参数的打印,而不是正在执行的程序的参数

时间:2017-11-07 12:52:20

标签: c mpi argv argc

为什么使用mpicc编译并使用mpiexec -n 4 prg执行的以下代码打印 prg 而不是 mpiexec 。如何让我的程序打印 mpiexec

#include <stdio.h>
#include <mpi.h>
int main(int argc, char *argv[])
{
  printf("Command executed : %s\n",argv[0]);
  MPI_Init(NULL, NULL);
  /* some code */
  MPI_Finalize();
}

1 个答案:

答案 0 :(得分:0)

无法告诉你的二进制文件是如何被调用的(以一般的,可移植的方式)。 MPI无法确定这一点。即使mpiexec本身也只是松散地指定。

即使没有MPI和涉及多个系统,通常也是不可能的。可以通过多种方式调用prg,例如:

/bin/env prg
bash -c 'prg'
./my_prg_wrapper.sh
x='() { :;}; prg'