From e6f280d080d3c580ca9ad38d8fee25d825d9007b Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Thu, 22 Dec 2016 02:03:11 +0100 Subject: [PATCH] Sort weights in SRMC --- ocaml/Qmcchem_dataserver.ml | 3 +-- src/SAMPLING/reconfigure.irp.f | 1 - src/SAMPLING/srmc_step.irp.f | 4 ++++ src/ZMQ/sockets.irp.f | 12 +++++++----- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ocaml/Qmcchem_dataserver.ml b/ocaml/Qmcchem_dataserver.ml index 3dce4f1..485f620 100644 --- a/ocaml/Qmcchem_dataserver.ml +++ b/ocaml/Qmcchem_dataserver.ml @@ -18,6 +18,7 @@ let initialization_timeout = 600. let bind_socket ~socket_type ~socket ~address = try ZMQ.Socket.bind socket address + with | Unix.Unix_error (_, message, f) -> failwith @@ Printf.sprintf @@ -42,7 +43,6 @@ let run ?(daemon=true) ezfio_filename = end ; in - (** Measures the time difference between [t0] and [Time.now ()] *) let delta_t t0 = let t1 = @@ -98,7 +98,6 @@ let run ?(daemon=true) ezfio_filename = let result = try ZMQ.Socket.bind socket address; - ZMQ.Socket.unbind socket address; accu; with | _ -> false; diff --git a/src/SAMPLING/reconfigure.irp.f b/src/SAMPLING/reconfigure.irp.f index 6c92502..84cb4a7 100644 --- a/src/SAMPLING/reconfigure.irp.f +++ b/src/SAMPLING/reconfigure.irp.f @@ -11,7 +11,6 @@ subroutine reconfigure(ipos,w) tmp = 0.d0 do k=1,walk_num - ipos(k) = k tmp = tmp + w(k) enddo dwalk_num = dble(walk_num)/tmp diff --git a/src/SAMPLING/srmc_step.irp.f b/src/SAMPLING/srmc_step.irp.f index 295d2ad..72f69a3 100644 --- a/src/SAMPLING/srmc_step.irp.f +++ b/src/SAMPLING/srmc_step.irp.f @@ -286,6 +286,10 @@ END_SHELL ! Reconfiguration integer :: ipos(walk_num) + do k=1,walk_num + ipos(k) = k + enddo + call dsort(srmc_weight,ipos,walk_num) call reconfigure(ipos,srmc_weight) do k=1,walk_num diff --git a/src/ZMQ/sockets.irp.f b/src/ZMQ/sockets.irp.f index 17dcf97..fab99be 100644 --- a/src/ZMQ/sockets.irp.f +++ b/src/ZMQ/sockets.irp.f @@ -67,13 +67,14 @@ BEGIN_PROVIDER [ integer(ZMQ_PTR), zmq_to_dataserver_socket ] if (rc /= 0) then call abrt(irp_here, 'Unable to connect zmq_to_dataserver_socket') endif - integer :: i + integer :: i,j i=4 - rc = f77_zmq_setsockopt(zmq_to_dataserver_socket, ZMQ_SNDTIMEO, 600000, i) + j=600000 + rc = f77_zmq_setsockopt(zmq_to_dataserver_socket, ZMQ_SNDTIMEO, j, i) if (rc /= 0) then call abrt(irp_here, 'Unable to set send timout in zmq_to_dataserver_socket') endif - rc = f77_zmq_setsockopt(zmq_to_dataserver_socket, ZMQ_RCVTIMEO, 600000, i) + rc = f77_zmq_setsockopt(zmq_to_dataserver_socket, ZMQ_RCVTIMEO, j, i) if (rc /= 0) then call abrt(irp_here, 'Unable to set recv timout in zmq_to_dataserver_socket') endif @@ -103,12 +104,13 @@ BEGIN_PROVIDER [ integer(ZMQ_PTR), zmq_socket_push ] BEGIN_DOC ! Socket on which to push the results END_DOC - integer :: rc + integer :: rc,j character*(64) :: address character*(8), external :: zmq_port zmq_socket_push = f77_zmq_socket(zmq_context, ZMQ_PUSH) address = trim(dataserver_address)//':'//zmq_port(2) - rc = f77_zmq_setsockopt(zmq_socket_push,ZMQ_LINGER,600000,4) + j=600000 + rc = f77_zmq_setsockopt(zmq_socket_push,ZMQ_LINGER,j,4) rc = f77_zmq_connect(zmq_socket_push, trim(address)) if (rc /= 0) then call abrt(irp_here, 'Unable to connect zmq_socket_push')