13 |
|
|
14 |
|
#ifdef IS_MPI |
15 |
|
#include <mpi.h> |
16 |
– |
#include <mpi++.h> |
16 |
|
#include "mpiSimulation.hpp" |
17 |
|
#define TAKE_THIS_TAG_CHAR 0 |
18 |
|
#define TAKE_THIS_TAG_INT 1 |
153 |
|
int myStatus; // 1 = wakeup & success; 0 = error; -1 = AllDone |
154 |
|
int haveError; |
155 |
|
|
156 |
< |
MPI::Status istatus; |
156 |
> |
MPI_Status istatus; |
157 |
|
int *AtomToProcMap = mpiSim->getAtomToProcMap(); |
158 |
|
|
159 |
|
|
227 |
|
else { |
228 |
|
|
229 |
|
myStatus = 1; |
230 |
< |
MPI::COMM_WORLD.Send(&myStatus, 1, MPI_INT, which_node, |
231 |
< |
TAKE_THIS_TAG_INT); |
232 |
< |
MPI::COMM_WORLD.Send(read_buffer, BUFFERSIZE, MPI_CHAR, which_node, |
233 |
< |
TAKE_THIS_TAG_CHAR); |
234 |
< |
MPI::COMM_WORLD.Send(&i, 1, MPI_INT, which_node, TAKE_THIS_TAG_INT); |
235 |
< |
MPI::COMM_WORLD.Recv(&myStatus, 1, MPI_INT, which_node, TAKE_THIS_TAG_INT, istatus); |
230 |
> |
MPI_Send(&myStatus, 1, MPI_INT, which_node, |
231 |
> |
TAKE_THIS_TAG_INT, MPI_COMM_WORLD); |
232 |
> |
MPI_Send(read_buffer, BUFFERSIZE, MPI_CHAR, which_node, |
233 |
> |
TAKE_THIS_TAG_CHAR, MPI_COMM_WORLD); |
234 |
> |
MPI_Send(&i, 1, MPI_INT, which_node, TAKE_THIS_TAG_INT, |
235 |
> |
MPI_COMM_WORLD); |
236 |
> |
MPI_Recv(&myStatus, 1, MPI_INT, which_node, TAKE_THIS_TAG_INT, |
237 |
> |
MPI_COMM_WORLD, &istatus); |
238 |
|
|
239 |
|
if(!myStatus) nodeZeroError(); |
240 |
|
} |
241 |
|
} |
242 |
|
myStatus = -1; |
243 |
|
for (j = 0; j < mpiSim->getNumberProcessors(); j++) { |
244 |
< |
MPI::COMM_WORLD.Send( &myStatus, 1, MPI_INT, j, |
245 |
< |
TAKE_THIS_TAG_INT); |
244 |
> |
MPI_Send( &myStatus, 1, MPI_INT, j, |
245 |
> |
TAKE_THIS_TAG_INT, MPI_COMM_WORLD); |
246 |
|
} |
247 |
|
|
248 |
|
} else { |
250 |
|
done = 0; |
251 |
|
while (!done) { |
252 |
|
|
253 |
< |
MPI::COMM_WORLD.Recv(&myStatus, 1, MPI_INT, 0, |
254 |
< |
TAKE_THIS_TAG_INT, istatus); |
253 |
> |
MPI_Recv(&myStatus, 1, MPI_INT, 0, |
254 |
> |
TAKE_THIS_TAG_INT, MPI_COMM_WORLD, &istatus); |
255 |
|
|
256 |
|
if(!myStatus) anonymousNodeDie(); |
257 |
|
|
258 |
|
if(myStatus < 0) break; |
259 |
|
|
260 |
< |
MPI::COMM_WORLD.Recv(read_buffer, BUFFERSIZE, MPI_CHAR, 0, |
261 |
< |
TAKE_THIS_TAG_CHAR, istatus); |
262 |
< |
MPI::COMM_WORLD.Recv(&which_atom, 1, MPI_INT, 0, |
263 |
< |
TAKE_THIS_TAG_INT, istatus); |
260 |
> |
MPI_Recv(read_buffer, BUFFERSIZE, MPI_CHAR, 0, |
261 |
> |
TAKE_THIS_TAG_CHAR, MPI_COMM_WORLD, &istatus); |
262 |
> |
MPI_Recv(&which_atom, 1, MPI_INT, 0, |
263 |
> |
TAKE_THIS_TAG_INT, MPI_COMM_WORLD, &istatus); |
264 |
|
|
265 |
|
myStatus = 1; |
266 |
|
parseErr = parseDumpLine( read_buffer, which_atom ); |
270 |
|
simError(); |
271 |
|
} |
272 |
|
|
273 |
< |
MPI::COMM_WORLD.Send( &myStatus, 1, MPI_INT, 0, |
274 |
< |
TAKE_THIS_TAG_INT); |
273 |
> |
MPI_Send( &myStatus, 1, MPI_INT, 0, |
274 |
> |
TAKE_THIS_TAG_INT, MPI_COMM_WORLD); |
275 |
|
|
276 |
|
} |
277 |
|
} |
516 |
|
|
517 |
|
myStatus = 0; |
518 |
|
for (j = 0; j < mpiSim->getNumberProcessors(); j++) { |
519 |
< |
MPI::COMM_WORLD.Send( &myStatus, 1, MPI_INT, j, |
520 |
< |
TAKE_THIS_TAG_INT); |
519 |
> |
MPI_Send( &myStatus, 1, MPI_INT, j, |
520 |
> |
TAKE_THIS_TAG_INT, MPI_COMM_WORLD); |
521 |
|
} |
522 |
|
|
523 |
|
|