Я просто думаю о причине использования MPI_Bcast
, потому что, когда я не передаю целое число N всем рангам, они могут видеть N. Посмотрите на код и его результат. Как до, так и после трансляции целое число N видно всем рангам. так какой тут смысл? Кроме того, имеет ли смысл использование MPI_Bcast
изменения порядка вызова каждого ранга?
#include <iostream>
#include "mpi.h"
using namespace std;
int main()
{
MPI_Init(NULL, NULL);
int rank, size;
int N=9 ;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
cout << " Hello from rank : " << rank << " N is: " << N << endl;
MPI_Bcast(&N, 1, MPI_INT, 0, MPI_COMM_WORLD);
cout << " Hello from rank : " << rank << " N is: " <<N<<endl;
MPI_Finalize();
}
Результат:
Hello from rank : 1 N is: 9
Hello from rank : 3 N is: 9
Hello from rank : 0 N is: 9
Hello from rank : 2 N is: 9
Hello from rank : 0 N is: 9
Hello from rank : 1 N is: 9
Hello from rank : 2 N is: 9
Hello from rank : 3 N is: 9