这就是我们如何使用MPI_Init函数
int main(int argc, char **argv)
{
MPI_Init(&argc, &argv);
…
}
Run Code Online (Sandbox Code Playgroud)
为什么MPI_Init使用指向argc和argv的指针而不是argv的值?
小智 19
根据这里所说的答案:
大多数MPI实现将删除此函数中所有与mpirun相关的参数,以便在调用它之后,您可以解决命令行参数,就像它是正常(非mpirun)命令执行一样.
即之后
mpirun -np 10 myapp myparam1 myparam2
Run Code Online (Sandbox Code Playgroud)
argc = 7(?)因为mpirun参数(它似乎也添加了一些)并且myparam1和myparam2的索引是未知的
但是之后
MPI_Init(&argc, &argv)
Run Code Online (Sandbox Code Playgroud)
argc = 3,myparam1位于argv [1],myparam2位于argv [2]
显然这不符合标准,但我已经在linux mpich上进行了测试,看起来确实如此.没有这种行为,将应用参数与mpirun参数区分开来将是非常困难的(不可能的?).
我猜测可能允许从命令行删除 mpi 参数。通过指针传递参数计数允许从 main 点修改其值。
| 归档时间: |
|
| 查看次数: |
17724 次 |
| 最近记录: |