changed: replace C99 VLAs with std::vector in the benchmark application

This commit is contained in:
Arne Morten Kvarving
2015-07-01 09:31:20 +02:00
parent 69e4b5833b
commit 060bbd73d2
+8 -8
View File
@@ -1450,8 +1450,8 @@ int main(int varnum, char** vararg)
if (node_vs_pressurepoint[idx] != 0) {
// Receive data
if (upscaleBothPhases) {
double recvbuffer[2+2*tensorElementCount];
MPI_Recv(recvbuffer, 2+2*tensorElementCount, MPI_DOUBLE,
std::vector<double> recvbuffer(2+2*tensorElementCount);
MPI_Recv(recvbuffer.data(), recvbuffer.size(), MPI_DOUBLE,
node_vs_pressurepoint[idx], 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
// Put received data into correct place.
WaterSaturation[(int)recvbuffer[0]] = recvbuffer[1];
@@ -1463,8 +1463,8 @@ int main(int varnum, char** vararg)
}
}
else {
double recvbuffer[2+tensorElementCount];
MPI_Recv(recvbuffer, 2+tensorElementCount, MPI_DOUBLE,
std::vector<double> recvbuffer(2+tensorElementCount);
MPI_Recv(recvbuffer.data(), recvbuffer.size(), MPI_DOUBLE,
node_vs_pressurepoint[idx], 0, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
// Put received data into correct place.
WaterSaturation[(int)recvbuffer[0]] = recvbuffer[1];
@@ -1480,7 +1480,7 @@ int main(int varnum, char** vararg)
if (node_vs_pressurepoint[idx] == mpi_rank) {
// Pack and send data. C-style.
if (upscaleBothPhases) {
double sendbuffer[2+2*tensorElementCount];
std::vector<double> sendbuffer(2+2*tensorElementCount);
sendbuffer[0] = (double)idx;
sendbuffer[1] = WaterSaturation[idx];
for (int voigtIdx=0; voigtIdx < tensorElementCount; ++voigtIdx) {
@@ -1489,16 +1489,16 @@ int main(int varnum, char** vararg)
for (int voigtIdx=0; voigtIdx < tensorElementCount; ++voigtIdx) {
sendbuffer[2+tensorElementCount+voigtIdx] = Phase2Perm[idx][voigtIdx];
}
MPI_Send(sendbuffer, 2+tensorElementCount, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD);
MPI_Send(sendbuffer.data(), sendbuffer.size(), MPI_DOUBLE, 0, 0, MPI_COMM_WORLD);
}
else {
double sendbuffer[2+tensorElementCount];
std::vector<double> sendbuffer(2+tensorElementCount);
sendbuffer[0] = (double)idx;
sendbuffer[1] = WaterSaturation[idx];
for (int voigtIdx=0; voigtIdx < tensorElementCount; ++voigtIdx) {
sendbuffer[2+voigtIdx] = PhasePerm[idx][voigtIdx];
}
MPI_Send(sendbuffer, 2+tensorElementCount, MPI_DOUBLE, 0, 0, MPI_COMM_WORLD);
MPI_Send(sendbuffer.data(), sendbuffer.size(), MPI_DOUBLE, 0, 0, MPI_COMM_WORLD);
}
}
}