Sto usando le chiamate MPI per eseguire una procedura su più processi usando C++. Le prime righe della mia funzione principale assomigliano:Passare argomenti via linea di comando 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]);
Ora, quando eseguo ed eseguire il mio programma utilizzando
mpiexec -n 1 program 10 10
voglio x e y da assegnare i valori di 10 e 10, come sono gli argomenti 4 e 5 passati. Ma questo non sta accadendo e assegna queste variabili a 0 e 0 di conseguenza. e il mio programma non funziona come desiderato.
Ho il mio codice seriale in esecuzione quando cambio questi numeri. È solo che sono nuovo di MPI.
Potete suggerire dove sto andando male?
Hai provato semplicemente a stampare il contenuto di 'argv'? Qual è il risultato? – suszterpatt
L'ho fatto. Quando ho stampato il contenuto nell'array, ha riconosciuto i due argomenti 10, 10 ma non nelle posizioni 4 e 5. – freshmaster
Sembra che li stia leggendo come argv [1] e argv [2]. Ho risolto il mio problema sì, ma volevo sapere perché sta succedendo. Non sto capendo esattamente MPI_Init. – freshmaster