From 060bbd73d292e8d71c873e7bbc3bc8c06b2798c8 Mon Sep 17 00:00:00 2001 From: Arne Morten Kvarving Date: Wed, 1 Jul 2015 09:31:20 +0200 Subject: [PATCH] changed: replace C99 VLAs with std::vector in the benchmark application --- benchmarks/upscale_relperm_benchmark.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/benchmarks/upscale_relperm_benchmark.cpp b/benchmarks/upscale_relperm_benchmark.cpp index f70551b..b9e89d3 100644 --- a/benchmarks/upscale_relperm_benchmark.cpp +++ b/benchmarks/upscale_relperm_benchmark.cpp @@ -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 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 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 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 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); } } }