38 # define MPI_SCALAR MPI_FLOAT
40 # define MPI_SCALAR MPI_DOUBLE
64 validParOptions.
insert(
"np",
"");
65 validParOptions.
insert(
"p4pg",
"PI file");
66 validParOptions.
insert(
"p4wd",
"directory");
67 validParOptions.
insert(
"p4amslave",
"");
68 validParOptions.
insert(
"p4yourname",
"hostname");
69 validParOptions.
insert(
"GAMMANP",
"number of instances");
70 validParOptions.
insert(
"machinefile",
"machine file");
76 MPI_Init(&argc, &argv);
79 MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
80 MPI_Comm_rank(MPI_COMM_WORLD, &myProcNo);
84 FatalErrorIn(
"mpiPstreamImpl::init(int& argc, char**& argv)")
85 <<
"bool mpiPstreamImpl::init(int& argc, char**& argv) : "
86 "attempt to run parallel on 1 processor"
94 procIDs[procNo] = procNo;
97 setParRun(isParallel);
103 int bufferSize = 20000000;
105 string bufferSizeName =
getEnv(
"MPI_BUFFER_SIZE");
107 if (bufferSizeName.size())
109 int tmpBufferSize = atoi(bufferSizeName.c_str());
113 bufferSize = tmpBufferSize;
116 MPI_Buffer_attach(
new char[bufferSize], bufferSize);
119 int processorNameLen;
120 char processorName[MPI_MAX_PROCESSOR_NAME];
122 MPI_Get_processor_name(processorName, &processorNameLen);
138 MPI_Buffer_detach(&buff, &size);
149 MPI_Abort(MPI_COMM_WORLD, errnum);
156 MPI_Abort(MPI_COMM_WORLD, 1);
195 "reduce(scalar& Value, const sumOp<scalar>& sumOp)"
196 ) <<
"MPI_Recv failed"
200 Value = bop(Value, value);
220 "reduce(scalar& Value, const sumOp<scalar>& sumOp)"
221 ) <<
"MPI_Send failed"
251 "reduce(scalar& Value, const sumOp<scalar>& sumOp)"
252 ) <<
"MPI_Send failed"
275 "reduce(scalar& Value, const sumOp<scalar>& sumOp)"
276 ) <<
"MPI_Recv failed"
284 MPI_Allreduce(&Value, &sum, 1, MPI_SCALAR, MPI_SUM, MPI_COMM_WORLD);