From a6abe960c227d9b7e374bfaa32987167bfbb2c70 Mon Sep 17 00:00:00 2001 From: Antoine Cyril David Hoffmann <ahoffman@spcpc606.epfl.ch> Date: Tue, 15 Jun 2021 14:06:02 +0200 Subject: [PATCH] manual bcast is a routine now --- src/poisson.F90 | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/src/poisson.F90 b/src/poisson.F90 index 25a51f9e..8a1178c6 100644 --- a/src/poisson.F90 +++ b/src/poisson.F90 @@ -67,34 +67,9 @@ SUBROUTINE poisson ENDIF - root_bcast = 0 ! Proc zero computes phi for every p - - IF (num_procs_p .GT. 1) THEN - !! Broadcast phi to the other processes on the same k range (communicator along p) - IF (rank_p .EQ. root_bcast) THEN - ! Fill the buffer - DO ikr = ikrs,ikre - DO ikz = ikzs,ikze - buffer(ikr,ikz) = phi(ikr,ikz) - ENDDO - ENDDO - ! Send it to all the other processes - DO i_ = 0,num_procs_p-1 - IF (i_ .NE. rank_p) & - CALL MPI_SEND(buffer, local_nkr * nkz , MPI_DOUBLE_COMPLEX, i_, 0, comm_p, ierr) - ENDDO - ELSE - ! Recieve buffer from root - CALL MPI_RECV(buffer, local_nkr * nkz , MPI_DOUBLE_COMPLEX, root_bcast, 0, comm_p, MPI_STATUS_IGNORE, ierr) - ! Write it in phi - DO ikr = ikrs,ikre - DO ikz = ikzs,ikze - phi(ikr,ikz) = buffer(ikr,ikz) - ENDDO - ENDDO - ENDIF - ENDIF - + ! Transfer phi to all the others process along p + CALL manual_2D_bcast(phi(ikrs:ikre,ikzs:ikze)) + ! Execution time end CALL cpu_time(t1_poisson) tc_poisson = tc_poisson + (t1_poisson - t0_poisson) -- GitLab