10
0
mirror of https://github.com/LCPQ/quantum_package synced 2024-12-25 05:43:47 +01:00

simpler purge

This commit is contained in:
Yann Garniron 2018-09-01 16:58:07 +02:00
parent 168ca2f2e2
commit 6a7f04cb79
2 changed files with 12 additions and 13 deletions

View File

@ -406,7 +406,7 @@ subroutine dress_collector(zmq_socket_pull, E, relative_error, delta, delta_s2,
time = omp_get_wtime() time = omp_get_wtime()
print '(G10.3, 2X, F16.10, 2X, G16.3, 2X, F16.4, A20)', c, avg+E0+E(dress_stoch_istate), eqt, time-time0, '' print '(G10.3, 2X, F16.10, 2X, G16.3, 2X, F16.4, A20)', c, avg+E0+E(dress_stoch_istate), eqt, time-time0, ''
m += 1 m += 1
if(eqt <= 1d0*relative_error) then if(eqt <= 0d0*relative_error) then
found = .true. found = .true.
end if end if
else else
@ -417,7 +417,8 @@ subroutine dress_collector(zmq_socket_pull, E, relative_error, delta, delta_s2,
stop 'Unable to delete tasks' stop 'Unable to delete tasks'
endif endif
else else
i= zmq_delete_tasks(zmq_to_qp_run_socket,zmq_socket_pull,task_id,1,more) if(task_id /= 0) stop "TASKID"
!i= zmq_delete_tasks(zmq_to_qp_run_socket,zmq_socket_pull,task_id,1,more)
exit exit
end if end if
end do end do
@ -439,6 +440,7 @@ subroutine dress_collector(zmq_socket_pull, E, relative_error, delta, delta_s2,
do while(more /= 0) do while(more /= 0)
call pull_dress_results(zmq_socket_pull, m_task, f, edI_task, edI_index, breve_delta_m, task_id, n_tasks) call pull_dress_results(zmq_socket_pull, m_task, f, edI_task, edI_index, breve_delta_m, task_id, n_tasks)
if(task_id == 0) cycle
if(m_task == 0) then if(m_task == 0) then
i = zmq_delete_tasks(zmq_to_qp_run_socket,zmq_socket_pull,task_id,n_tasks,more) i = zmq_delete_tasks(zmq_to_qp_run_socket,zmq_socket_pull,task_id,n_tasks,more)
else else

View File

@ -31,7 +31,7 @@ subroutine run_dress_slave(thread,iproce,energy)
integer, allocatable :: f(:) integer, allocatable :: f(:)
integer :: cp_sent, cp_done integer :: cp_sent, cp_done
integer :: cp_max(Nproc) integer :: cp_max(Nproc)
integer :: will_send, task_id, purge_task_id(dress_N_cp+1) integer :: will_send, task_id, purge_task_id
integer(kind=OMP_LOCK_KIND) :: lck_det(0:pt2_N_teeth+1) integer(kind=OMP_LOCK_KIND) :: lck_det(0:pt2_N_teeth+1)
integer(kind=OMP_LOCK_KIND) :: lck_sto(0:dress_N_cp+1), sending integer(kind=OMP_LOCK_KIND) :: lck_sto(0:dress_N_cp+1), sending
double precision :: fac double precision :: fac
@ -103,8 +103,8 @@ subroutine run_dress_slave(thread,iproce,energy)
will_send = cp_sent + 1 will_send = cp_sent + 1
cp_sent = will_send cp_sent = will_send
end if end if
if(purge_task_id(m) == 0) then if(purge_task_id == 0) then
purge_task_id(m) = task_id purge_task_id = task_id
task_id = 0 task_id = 0
end if end if
!$OMP END CRITICAL !$OMP END CRITICAL
@ -135,11 +135,8 @@ subroutine run_dress_slave(thread,iproce,energy)
sum_f += f(i) sum_f += f(i)
end if end if
end do end do
if(purge_task_id(will_send) /= 0) then call push_dress_results(zmq_socket_push, will_send, sum_f, edI_task, edI_index, breve_delta_m, 0, n_tasks)
call push_dress_results(zmq_socket_push, will_send, sum_f, edI_task, edI_index, breve_delta_m, purge_task_id(will_send), n_tasks)
!call task_done_to_taskserver(zmq_to_qp_run_socket,worker_id,purge_task_id(will_send)) !call task_done_to_taskserver(zmq_to_qp_run_socket,worker_id,purge_task_id(will_send))
end if
purge_task_id(will_send) = 0
call omp_unset_lock(sending) call omp_unset_lock(sending)
end if end if
@ -185,12 +182,12 @@ subroutine run_dress_slave(thread,iproce,energy)
end do end do
!$OMP BARRIER !$OMP BARRIER
!$OMP SINGLE !$OMP SINGLE
do m=1,dress_N_cp !do m=1,dress_N_cp
if(purge_task_id(m) /= 0) then if(purge_task_id /= 0) then
!call task_done_to_taskserver(zmq_to_qp_run_socket,worker_id,purge_task_id(m)) !call task_done_to_taskserver(zmq_to_qp_run_socket,worker_id,purge_task_id(m))
call push_dress_results(zmq_socket_push, 0, 0, edI_task, edI_index, breve_delta_m, purge_task_id(m), 1) call push_dress_results(zmq_socket_push, 0, 0, edI_task, edI_index, breve_delta_m, purge_task_id, 1)
end if end if
end do !end do
!$OMP END SINGLE !$OMP END SINGLE
call disconnect_from_taskserver(zmq_to_qp_run_socket,worker_id) call disconnect_from_taskserver(zmq_to_qp_run_socket,worker_id)