From 7b9333b8bcdc6d704da9ad890882ed62c3489c84 Mon Sep 17 00:00:00 2001 From: ignis Date: Fri, 14 Jun 2019 22:40:56 +0900 Subject: [PATCH] reverted non-busy-waiting --- code/post.f90 | 41 ++++++++--------------------------------- 1 file changed, 8 insertions(+), 33 deletions(-) diff --git a/code/post.f90 b/code/post.f90 index bbbf9eb..9ee0d92 100644 --- a/code/post.f90 +++ b/code/post.f90 @@ -103,7 +103,6 @@ SUBROUTINE main_lb INTEGER :: fread,i INTEGER, PARAMETER :: eofread = -1 - LOGICAL :: received CALL READ_INTRO @@ -134,14 +133,8 @@ countnum=countnum+1 - CALL MPI_Irecv(id_to, 1, MPI_INTEGER, MPI_ANY_SOURCE, tag, MPI_COMM_TASK, mpi_request, mpi_err) - do - call MPI_Test(mpi_request, received, mpi_status, mpi_err) - if (received) exit - call SLEEP (1) - end do - - CALL MPI_SEND(fread, 1, MPI_INTEGER8, id_to, tag, MPI_COMM_TASK, mpi_err) + CALL MPI_RECV(id_to, 1, MPI_INTEGER, MPI_ANY_SOURCE, tag, MPI_COMM_TASK, mpi_status, mpi_err) + CALL MPI_SEND(fread, 1, MPI_INTEGER8, id_to, tag, MPI_COMM_TASK, mpi_err) ENDIF @@ -149,14 +142,8 @@ end_of_dispatch1: DO i=1,numprocs-1 - CALL MPI_Irecv (id_to, 1, MPI_INTEGER, MPI_ANY_SOURCE, tag, MPI_COMM_TASK, mpi_request, mpi_err) - do - call MPI_Test(mpi_request, received, mpi_status, mpi_err) - if (received) exit - call SLEEP (1) - end do - - CALL MPI_SEND(eofread, 1, MPI_INTEGER8, id_to, tag, MPI_COMM_TASK, mpi_err) + CALL MPI_RECV(id_to, 1, MPI_INTEGER, MPI_ANY_SOURCE, tag, MPI_COMM_TASK, mpi_status, mpi_err) + CALL MPI_SEND(eofread, 1, MPI_INTEGER8, id_to, tag, MPI_COMM_TASK, mpi_err) ENDDO end_of_dispatch1 @@ -204,14 +191,8 @@ ELSE - CALL MPI_Irecv(id_to, 1, MPI_INTEGER, MPI_ANY_SOURCE, tag, MPI_COMM_TASK, mpi_request, mpi_err) - do - call MPI_Test(mpi_request, received, mpi_status, mpi_err) - if (received) exit - call SLEEP (1) - end do - - CALL MPI_SEND(fread, 1, MPI_INTEGER8, id_to, tag, MPI_COMM_TASK, mpi_err) + CALL MPI_RECV(id_to, 1, MPI_INTEGER, MPI_ANY_SOURCE, tag, MPI_COMM_TASK, mpi_status, mpi_err) + CALL MPI_SEND(fread, 1, MPI_INTEGER8, id_to, tag, MPI_COMM_TASK, mpi_err) ENDIF @@ -219,14 +200,8 @@ end_of_dispatch2: DO i=1,numprocs-1 - CALL MPI_Irecv (id_to, 1, MPI_INTEGER, MPI_ANY_SOURCE, tag, MPI_COMM_TASK, mpi_request, mpi_err) - do - call MPI_Test(mpi_request, received, mpi_status, mpi_err) - if (received) exit - call SLEEP (1) - end do - - CALL MPI_SEND(eofread, 1, MPI_INTEGER8, id_to, tag, MPI_COMM_TASK, mpi_err) + CALL MPI_RECV(id_to, 1, MPI_INTEGER, MPI_ANY_SOURCE, tag, MPI_COMM_TASK, mpi_status, mpi_err) + CALL MPI_SEND(eofread, 1, MPI_INTEGER8, id_to, tag, MPI_COMM_TASK, mpi_err) ENDDO end_of_dispatch2