据我了解MPI
的C实现,MPI_Init
函数不使用传递给它的参数&argc
和&argv
。 mpiexec
或mpirun
可能会运行多个程序,并通过外部的某个数据流将MPI_COMM_WORLD
对象传递给每个进程(这样每个程序都可以提取大小,等级等信息 - 请在这里纠正我。)
当我检查argv []字符串时,它只包含程序路径。
所以我认为MPI_Init的签名必须是MPI_Init(void)
而不是MPI_Init(int* argc, char*** argv)
。是否有任何理由将参数传递给MPI_Init?或者它是否以这种方式定义以供将来使用?