Estoy usando llamadas MPI para ejecutar un procedimiento en múltiples procesos usando C++. Las primeras líneas de mi función principal aspecto:Pasando argumentos a través de la línea de comandos con MPI
int main(int argc, char *argv[]){
int comm_sz;
int my_rank;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &comm_sz);
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
x = atoi(argv[4]);
y = atoi(argv[5]);
Ahora cuando yo haga y ejecutar mi programa usando
mpiexec -n 1 program 10 10
Quiero x e y que se asignará a los valores 10 y 10, como se son los argumentos 4 y 5 pasados. Pero esto no está sucediendo y asigna estas variables a 0 y 0 en consecuencia. y mi programa no se ejecuta como se desea.
Tengo mi código de serie ejecutándose cuando cambio estos números. Es solo que soy nuevo en MPI.
¿Puede sugerirme dónde me estoy equivocando?
¿Ha intentado simplemente imprimir el contenido de 'argv'? ¿Cuál es el resultado? – suszterpatt
Lo hice. Cuando imprimí el contenido en la matriz, reconoció los dos argumentos 10, 10 pero no en las posiciones 4 y 5. – freshmaster
Parece estar leyéndolos como argv [1] y argv [2]. Resolví mi problema, sí, pero quería saber por qué sucede esto. No estoy exactamente entendiendo MPI_Init. – freshmaster