6 |
|
#include <mpi.h> |
7 |
|
#include <mpi++.h> |
8 |
|
#include "mpiSimulation.hpp" |
9 |
< |
#define TAKE_THIS_TAG 0 |
9 |
> |
#define TAKE_THIS_TAG 1 |
10 |
|
#endif //is_mpi |
11 |
|
|
12 |
|
#include "ReadWrite.hpp" |
132 |
|
<< entry_plug->box_x << "\t" |
133 |
|
<< entry_plug->box_y << "\t" |
134 |
|
<< entry_plug->box_z << "\n"; |
135 |
< |
|
135 |
> |
outFile.flush(); |
136 |
|
for (i = 0 ; i < mpiSim->getTotAtoms(); i++ ) { |
137 |
|
// Get the Node number which has this atom; |
138 |
|
|
139 |
|
which_node = AtomToProcMap[i]; |
140 |
|
|
141 |
|
if (which_node == mpiSim->getMyNode()) { |
142 |
< |
|
143 |
< |
sprintf( tempBuffer, |
142 |
> |
sprintf( tempBuffer, |
143 |
|
"%s\t%lf\t%lf\t%lf\t%lf\t%lf\t%lf\t", |
144 |
|
atoms[i]->getType(), |
145 |
|
atoms[i]->getX(), |
171 |
|
|
172 |
|
} else { |
173 |
|
|
174 |
+ |
std::cerr << "node 0: sending node " << which_node << " request for atom " << i << "\n"; |
175 |
|
MPI::COMM_WORLD.Send(&i, 1, MPI_INT, which_node, TAKE_THIS_TAG); |
176 |
+ |
std::cerr << "node 0: sent!\n"; |
177 |
|
MPI::COMM_WORLD.Recv(writeLine, BUFFERSIZE, MPI_CHAR, which_node, |
178 |
|
TAKE_THIS_TAG, istatus); |
179 |
+ |
std::cerr << "node 0: got this line: " << writeLine; |
180 |
|
} |
181 |
|
|
182 |
|
outFile << writeLine; |
183 |
+ |
outFile.flush(); |
184 |
|
} |
185 |
|
|
186 |
|
// kill everyone off: |
193 |
|
|
194 |
|
done = 0; |
195 |
|
while (!done) { |
196 |
+ |
std::cerr << "node: " << mpiSim->getMyNode() << " Waiting for receive \n"; |
197 |
|
MPI::COMM_WORLD.Recv(&which_atom, 1, MPI_INT, 0, |
198 |
|
TAKE_THIS_TAG, istatus); |
199 |
< |
|
199 |
> |
std::cerr << "node: " << mpiSim->getMyNode() << " got request for atom " << which_atom << "\n"; |
200 |
|
if (which_atom == -1) { |
201 |
|
done=1; |
202 |
|
continue; |
236 |
|
} |
237 |
|
else |
238 |
|
strcat( writeLine, "0.0\t0.0\t0.0\t0.0\t0.0\t0.0\t0.0\n" ); |
239 |
< |
|
239 |
> |
std::cerr << "node: " << mpiSim->getMyNode() << " sending this line" << writeLine; |
240 |
|
MPI::COMM_WORLD.Send(writeLine, BUFFERSIZE, MPI_CHAR, 0, |
241 |
|
TAKE_THIS_TAG); |
242 |
|
} else { |