reverted non-busy-waiting

This commit is contained in:
ignis 2019-06-14 22:40:56 +09:00
parent 30effd53fe
commit 7b9333b8bc

View file

@ -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