| 751 |
|
|
| 752 |
|
int nproc; |
| 753 |
|
MPI_Comm_size( MPI_COMM_WORLD, &nproc); |
| 754 |
– |
// int nproc = MPI::COMM_WORLD.Get_size(); |
| 754 |
|
|
| 755 |
|
// we need arrays to hold the counts and displacement vectors for |
| 756 |
|
// all processors |
| 760 |
|
// fill the counts array |
| 761 |
|
MPI_Allgather(&count_local, 1, MPI_INT, &counts[0], |
| 762 |
|
1, MPI_INT, MPI_COMM_WORLD); |
| 764 |
– |
// MPI::COMM_WORLD.Allgather(&count_local, 1, MPI::INT, &counts[0], |
| 765 |
– |
// 1, MPI::INT); |
| 763 |
|
|
| 764 |
|
// use the processor counts to compute the displacement array |
| 765 |
|
disps[0] = 0; |
| 776 |
|
MPI_Allgatherv(&foundTypes[0], count_local, MPI_INT, |
| 777 |
|
&ftGlobal[0], &counts[0], &disps[0], |
| 778 |
|
MPI_INT, MPI_COMM_WORLD); |
| 782 |
– |
// MPI::COMM_WORLD.Allgatherv(&foundTypes[0], count_local, MPI::INT, |
| 783 |
– |
// &ftGlobal[0], &counts[0], &disps[0], |
| 784 |
– |
// MPI::INT); |
| 779 |
|
|
| 780 |
|
vector<int>::iterator j; |
| 781 |
|
|