# | Line 13 | Line 13 | |
---|---|---|
13 | ||
14 | #ifdef IS_MPI | |
15 | #include "mpiSimulation.hpp" | |
16 | + | |
17 | + | #define TAKE_THIS_TAG 0 |
18 | #endif // is_mpi | |
19 | ||
20 | InitializeFromFile :: InitializeFromFile( char *in_name ){ | |
# | Line 213 | Line 215 | void InitializeFromFile :: read_xyz( SimInfo* the_entr | |
215 | procIndex++){ | |
216 | if (worldRank == 0) { | |
217 | ||
218 | < | mpiErr = MPI_Recv(&nodeAtomsStart,1,MPI_INT,procIndex,MPI_ANY_TAG,MPI_COMM_WORLD, |
218 | > | mpiErr = MPI_Recv(&nodeAtomsStart,1,MPI_INT,procIndex,TAKE_THIS_TAG,MPI_COMM_WORLD, |
219 | istatus); | |
220 | ||
221 | < | mpiErr = MPI_Recv(&nodeAtomsEnd,1,MPI_INT,procIndex,MPI_ANY_TAG,MPI_COMM_WORLD, |
221 | > | mpiErr = MPI_Recv(&nodeAtomsEnd,1,MPI_INT,procIndex,TAKE_THIS_TAG,MPI_COMM_WORLD, |
222 | istatus); | |
223 | // Make sure where node 0 is reading from, matches where the receiving node | |
224 | // expects it to be. | |
225 | ||
226 | if (masterIndex != nodeAtomsStart){ | |
227 | sendError = 1; | |
228 | < | mpiErr = MPI_Send(&sendError,1,MPI_INT,procIndex,MPI_ANY_TAG,MPI_COMM_WORLD); |
228 | > | mpiErr = MPI_Send(&sendError,1,MPI_INT,procIndex,TAKE_THIS_TAG,MPI_COMM_WORLD); |
229 | sprintf(painCave.errMsg, | |
230 | "Initialize from file error: atoms start index (%d) for " | |
231 | "node %d not equal to master index (%d)",nodeAtomsStart,procIndex,masterIndex ); | |
# | Line 231 | Line 233 | void InitializeFromFile :: read_xyz( SimInfo* the_entr | |
233 | simError(); | |
234 | } | |
235 | sendError = 0; | |
236 | < | mpiErr = MPI_Send(&sendError,1,MPI_INT,procIndex,MPI_ANY_TAG,MPI_COMM_WORLD); |
236 | > | mpiErr = MPI_Send(&sendError,1,MPI_INT,procIndex,TAKE_THIS_TAG,MPI_COMM_WORLD); |
237 | ||
238 | for ( i = nodeAtomsStart; i <= nodeAtomsEnd; i++){ | |
239 | eof_test = fgets(read_buffer, sizeof(read_buffer), c_in_file); | |
240 | if(eof_test == NULL){ | |
241 | ||
242 | sprintf(read_buffer,"ERROR"); | |
243 | < | mpiErr = MPI_Send(read_buffer,BUFFERSIZE,MPI_CHAR,procIndex,MPI_ANY_TAG,MPI_COMM_WORLD); |
243 | > | mpiErr = MPI_Send(read_buffer,BUFFERSIZE,MPI_CHAR,procIndex,TAKE_THIS_TAG,MPI_COMM_WORLD); |
244 | ||
245 | sprintf(painCave.errMsg, | |
246 | "error in reading file %s\n" | |
# | Line 249 | Line 251 | void InitializeFromFile :: read_xyz( SimInfo* the_entr | |
251 | simError(); | |
252 | } | |
253 | ||
254 | < | mpiErr = MPI_Send(read_buffer,BUFFERSIZE,MPI_CHAR,procIndex,MPI_ANY_TAG,MPI_COMM_WORLD); |
255 | < | mpiErr = MPI_Recv(&sendError,1,MPI_INT,procIndex,MPI_ANY_TAG,MPI_COMM_WORLD, |
254 | > | mpiErr = MPI_Send(read_buffer,BUFFERSIZE,MPI_CHAR,procIndex,TAKE_THIS_TAG,MPI_COMM_WORLD); |
255 | > | mpiErr = MPI_Recv(&sendError,1,MPI_INT,procIndex,TAKE_THIS_TAG,MPI_COMM_WORLD, |
256 | istatus); | |
257 | if (sendError) MPIcheckPoint(); | |
258 | ||
# | Line 262 | Line 264 | void InitializeFromFile :: read_xyz( SimInfo* the_entr | |
264 | else if(worldRank == procIndex){ | |
265 | nodeAtomsStart = mpiSim->getMyAtomStart(); | |
266 | nodeAtomsEnd = mpiSim->getMyAtomEnd(); | |
267 | < | mpiErr = MPI_Send(&nodeAtomsStart,1,MPI_INT,0,MPI_ANY_TAG,MPI_COMM_WORLD); |
268 | < | mpiErr = MPI_Send(&nodeAtomsEnd,1,MPI_INT,0,MPI_ANY_TAG,MPI_COMM_WORLD); |
267 | > | mpiErr = MPI_Send(&nodeAtomsStart,1,MPI_INT,0,TAKE_THIS_TAG,MPI_COMM_WORLD); |
268 | > | mpiErr = MPI_Send(&nodeAtomsEnd,1,MPI_INT,0,TAKE_THIS_TAG,MPI_COMM_WORLD); |
269 | ||
270 | < | mpiErr = MPI_Recv(&sendError,1,MPI_INT,0,MPI_ANY_TAG,MPI_COMM_WORLD, |
270 | > | mpiErr = MPI_Recv(&sendError,1,MPI_INT,0,TAKE_THIS_TAG,MPI_COMM_WORLD, |
271 | istatus); | |
272 | if (sendError) MPIcheckPoint(); | |
273 | ||
274 | for ( i = 0; i < entry_plug->n_atoms; i++){ | |
275 | ||
276 | < | mpiErr = MPI_Recv(&read_buffer,BUFFERSIZE,MPI_CHAR,0,MPI_ANY_TAG,MPI_COMM_WORLD, |
276 | > | mpiErr = MPI_Recv(&read_buffer,BUFFERSIZE,MPI_CHAR,0,TAKE_THIS_TAG,MPI_COMM_WORLD, |
277 | istatus); | |
278 | ||
279 | if(!strcmp(read_buffer, "ERROR")) MPIcheckPoint(); | |
# | Line 279 | Line 281 | void InitializeFromFile :: read_xyz( SimInfo* the_entr | |
281 | parseErr = parseDumpLine( read_buffer, i ); | |
282 | if( parseErr != NULL ){ | |
283 | sendError = 1; | |
284 | < | mpiErr = MPI_Send(&sendError,1,MPI_INT,0,MPI_ANY_TAG,MPI_COMM_WORLD); |
284 | > | mpiErr = MPI_Send(&sendError,1,MPI_INT,0,TAKE_THIS_TAG,MPI_COMM_WORLD); |
285 | ||
286 | ||
287 | strcpy( painCave.errMsg, parseErr ); | |
# | Line 287 | Line 289 | void InitializeFromFile :: read_xyz( SimInfo* the_entr | |
289 | simError(); | |
290 | } | |
291 | sendError = 0; | |
292 | < | mpiErr = MPI_Send(&sendError,1,MPI_INT,0,MPI_ANY_TAG,MPI_COMM_WORLD); |
292 | > | mpiErr = MPI_Send(&sendError,1,MPI_INT,0,TAKE_THIS_TAG,MPI_COMM_WORLD); |
293 | } | |
294 | } | |
295 | sprintf(checkPointMsg,"Node %d received initial configuration.",procIndex); |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |