From a08d0ad22045192a0edf8159c75d5aa01198cf60 Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Wed, 10 May 2017 22:09:53 +0200 Subject: [PATCH] Debug in push/pull --- plugins/Full_CI_ZMQ/run_selection_slave.irp.f | 69 +++++++++++++++---- plugins/Full_CI_ZMQ/selection_buffer.irp.f | 3 +- 2 files changed, 56 insertions(+), 16 deletions(-) diff --git a/plugins/Full_CI_ZMQ/run_selection_slave.irp.f b/plugins/Full_CI_ZMQ/run_selection_slave.irp.f index 9997ff71..fa40f1aa 100644 --- a/plugins/Full_CI_ZMQ/run_selection_slave.irp.f +++ b/plugins/Full_CI_ZMQ/run_selection_slave.irp.f @@ -91,23 +91,44 @@ subroutine push_selection_results(zmq_socket_push, pt2, b, task_id, ntask) type(selection_buffer), intent(inout) :: b integer, intent(in) :: ntask, task_id(*) integer :: rc + integer :: bcur + bcur = max(b%cur,1) + + rc = f77_zmq_send( zmq_socket_push, bcur, 4, ZMQ_SNDMORE) + if(rc /= 4) then + print *, b%cur, bcur + print *, 'f77_zmq_send( zmq_socket_push, bcur, 4, ZMQ_SNDMORE)' + endif - rc = f77_zmq_send( zmq_socket_push, b%cur, 4, ZMQ_SNDMORE) - if(rc /= 4) stop "push1" rc = f77_zmq_send( zmq_socket_push, pt2, 8*N_states, ZMQ_SNDMORE) - if(rc /= 8*N_states) stop "push2" + if(rc /= 8*N_states) then + print *, b%cur, bcur + print *, 'f77_zmq_send( zmq_socket_push, pt2, 8*N_states, ZMQ_SNDMORE)' + endif - rc = f77_zmq_send( zmq_socket_push, b%val(1), 8*b%cur, ZMQ_SNDMORE) - if(rc /= 8*b%cur) stop "push3" + rc = f77_zmq_send( zmq_socket_push, b%val(1), 8*bcur, ZMQ_SNDMORE) + if(rc /= 8*bcur) then + print *, b%cur, bcur + print *, 'f77_zmq_send( zmq_socket_push, b%val(1), 8*bcur, ZMQ_SNDMORE)' + endif - rc = f77_zmq_send( zmq_socket_push, b%det(1,1,1), bit_kind*N_int*2*b%cur, ZMQ_SNDMORE) - if(rc /= bit_kind*N_int*2*b%cur) stop "push4" + rc = f77_zmq_send( zmq_socket_push, b%det(1,1,1), bit_kind*N_int*2*bcur, ZMQ_SNDMORE) + if(rc /= bit_kind*N_int*2*bcur) then + print *, b%cur, bcur + print *, 'f77_zmq_send( zmq_socket_push, b%det(1,1,1), bit_kind*N_int*2*bcur, ZMQ_SNDMORE)' + endif rc = f77_zmq_send( zmq_socket_push, ntask, 4, ZMQ_SNDMORE) - if(rc /= 4) stop "push5" + if(rc /= 4) then + print *, b%cur, bcur + print *, 'f77_zmq_send( zmq_socket_push, ntask, 4, ZMQ_SNDMORE)' + endif rc = f77_zmq_send( zmq_socket_push, task_id(1), ntask*4, 0) - if(rc /= 4*ntask) stop "push6" + if(rc /= 4*ntask) then + print *, b%cur, bcur + print *, 'f77_zmq_send( zmq_socket_push, task_id(1), ntask*4, 0)' + endif ! Activate is zmq_socket_push is a REQ ! rc = f77_zmq_recv( zmq_socket_push, task_id(1), ntask*4, 0) @@ -126,22 +147,40 @@ subroutine pull_selection_results(zmq_socket_pull, pt2, val, det, N, task_id, nt integer :: rc, rn, i rc = f77_zmq_recv( zmq_socket_pull, N, 4, 0) - if(rc /= 4) stop "pull1" + if(rc /= 4) then + print *, b%cur, bcur + print *, 'f77_zmq_recv( zmq_socket_pull, N, 4, 0)' + endif rc = f77_zmq_recv( zmq_socket_pull, pt2, N_states*8, 0) - if(rc /= 8*N_states) stop "pull2" + if(rc /= 8*N_states) then + print *, b%cur, bcur + print *, 'f77_zmq_recv( zmq_socket_pull, pt2, N_states*8, 0)' + endif rc = f77_zmq_recv( zmq_socket_pull, val(1), 8*N, 0) - if(rc /= 8*N) stop "pull3" + if(rc /= 8*N) then + print *, b%cur, bcur + print *, 'f77_zmq_recv( zmq_socket_pull, val(1), 8*N, 0)' + endif rc = f77_zmq_recv( zmq_socket_pull, det(1,1,1), bit_kind*N_int*2*N, 0) - if(rc /= bit_kind*N_int*2*N) stop "pull4" + if(rc /= bit_kind*N_int*2*N) then + print *, b%cur, bcur + print *, 'f77_zmq_recv( zmq_socket_pull, det(1,1,1), bit_kind*N_int*2*N, 0)' + endif rc = f77_zmq_recv( zmq_socket_pull, ntask, 4, 0) - if(rc /= 4) stop "pull5" + if(rc /= 4) then + print *, b%cur, bcur + print *, 'f77_zmq_recv( zmq_socket_pull, ntask, 4, 0)' + endif rc = f77_zmq_recv( zmq_socket_pull, task_id(1), ntask*4, 0) - if(rc /= 4*ntask) stop "pull6" + if(rc /= 4*ntask) then + print *, b%cur, bcur + print *, 'f77_zmq_recv( zmq_socket_pull, task_id(1), ntask*4, 0)' + endif ! Activate is zmq_socket_pull is a REP ! rc = f77_zmq_send( zmq_socket_pull, task_id(1), ntask*4, 0) diff --git a/plugins/Full_CI_ZMQ/selection_buffer.irp.f b/plugins/Full_CI_ZMQ/selection_buffer.irp.f index f42aa504..3deccb12 100644 --- a/plugins/Full_CI_ZMQ/selection_buffer.irp.f +++ b/plugins/Full_CI_ZMQ/selection_buffer.irp.f @@ -58,10 +58,10 @@ subroutine merge_selection_buffers(b1, b2) integer(bit_kind), pointer :: detmp(:,:,:) double precision, pointer :: val(:) integer :: i, i1, i2, k, nmwen + if (b1%cur == 0) return do while (b1%val(b1%cur) > b2%mini) b1%cur = b1%cur-1 if (b1%cur == 0) then - b1%cur = 1 return endif enddo @@ -113,6 +113,7 @@ subroutine sort_selection_buffer(b) integer(bit_kind), pointer :: detmp(:,:,:) integer :: i, nmwen logical, external :: detEq + if (b%cur == 0) return nmwen = min(b%N, b%cur) allocate(iorder(b%cur), detmp(N_int, 2, size(b%det,3)))