我注意到 pcolormesh 默认情况下会插值/平滑原始数据。我该如何关闭此功能?
mpirun(和mpiexec)似乎没有将命令行参数传递给我的c代码.
直接从命令行运行我的可执行"gecko"给出了预期:
$ ./gecko -np 2
main:There are 3 arguments:
arg=./gecko
arg=-np
arg=2
Run Code Online (Sandbox Code Playgroud)
但通过mpirun运行相同是不同的:
$ mpirun -np 2 ./gecko
main:There are 1 arguments:
arg=./gecko
Run Code Online (Sandbox Code Playgroud)
这意味着MPI_init(argc,argv)没有任何参数可供使用.我使用的是MPICH 2的Ubuntu 12.04.
任何人都可以看到为什么没有发生这种情况的原因?
谢谢.
---------------------------编辑---------------------- -----------
网上有很多例子说初始化MPI的方法是通过命令行参数,例如:
#include <stdio.h>
#include “mpi.h”
int main(int argc, char* argv[])
{
int size, rank;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
printf(“Greetings from process %i\n”, rank);
MPI_Finalize();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
并且执行mpi代码的方法是使用:
mpirun -np 2 ./code_name
Run Code Online (Sandbox Code Playgroud)
所以,如果mpirun没有将参数np和2传递给c代码,那么c代码如何知道应该运行多少个处理器呢?