Relative Content

Tag Archive for cparallel-processingmpihpc

Why does MPI_Sendrecv scale so much better than a separated MPI_Ssend/MPI_Recv call in my parallel C code?

I have written some very basic MPI code in C for image processing which iterates over N iterations and, in every iteration, completes a halo swap between processes using an MPI send/receive routine. I initially completed this halo swap using MPI_Ssend/MPI_Recv one after another separately, which resulted in a runtime of ~8 seconds on 64 processes over 100,000 iterations of the numerical routine. I then changed the messaging routine to MPI_Sendrecv in a combined call which resulted in a runtime of ~0.5 seconds, all other factors equal.

Why does MPI_Sendrecv scale so much better than a separated MPI_Ssend/MPI_Recv call in my parallel C code?

I have written some very basic MPI code in C for image processing which iterates over N iterations and, in every iteration, completes a halo swap between processes using an MPI send/receive routine. I initially completed this halo swap using MPI_Ssend/MPI_Recv one after another separately, which resulted in a runtime of ~8 seconds on 64 processes over 100,000 iterations of the numerical routine. I then changed the messaging routine to MPI_Sendrecv in a combined call which resulted in a runtime of ~0.5 seconds, all other factors equal.

Why does MPI_Sendrecv scale so much better than a separated MPI_Ssend/MPI_Recv call in my parallel C code?

I have written some very basic MPI code in C for image processing which iterates over N iterations and, in every iteration, completes a halo swap between processes using an MPI send/receive routine. I initially completed this halo swap using MPI_Ssend/MPI_Recv one after another separately, which resulted in a runtime of ~8 seconds on 64 processes over 100,000 iterations of the numerical routine. I then changed the messaging routine to MPI_Sendrecv in a combined call which resulted in a runtime of ~0.5 seconds, all other factors equal.

Why does MPI_Sendrecv scale so much better than a separated MPI_Ssend/MPI_Recv call in my parallel C code?

I have written some very basic MPI code in C for image processing which iterates over N iterations and, in every iteration, completes a halo swap between processes using an MPI send/receive routine. I initially completed this halo swap using MPI_Ssend/MPI_Recv one after another separately, which resulted in a runtime of ~8 seconds on 64 processes over 100,000 iterations of the numerical routine. I then changed the messaging routine to MPI_Sendrecv in a combined call which resulted in a runtime of ~0.5 seconds, all other factors equal.

Why does MPI_Sendrecv scale so much better than a separated MPI_Ssend/MPI_Recv call in my parallel C code?

I have written some very basic MPI code in C for image processing which iterates over N iterations and, in every iteration, completes a halo swap between processes using an MPI send/receive routine. I initially completed this halo swap using MPI_Ssend/MPI_Recv one after another separately, which resulted in a runtime of ~8 seconds on 64 processes over 100,000 iterations of the numerical routine. I then changed the messaging routine to MPI_Sendrecv in a combined call which resulted in a runtime of ~0.5 seconds, all other factors equal.

Why does MPI_Sendrecv scale so much better than a separated MPI_Ssend/MPI_Recv call in my parallel C code?

I have written some very basic MPI code in C for image processing which iterates over N iterations and, in every iteration, completes a halo swap between processes using an MPI send/receive routine. I initially completed this halo swap using MPI_Ssend/MPI_Recv one after another separately, which resulted in a runtime of ~8 seconds on 64 processes over 100,000 iterations of the numerical routine. I then changed the messaging routine to MPI_Sendrecv in a combined call which resulted in a runtime of ~0.5 seconds, all other factors equal.