10
1
mirror of https://gitlab.com/scemama/qmcchem.git synced 2024-11-08 23:23:39 +01:00

Compare commits

...

10 Commits

25 changed files with 90 additions and 59 deletions

View File

@ -4,7 +4,7 @@ rule compile_ezfio
pool = console
rule build_properties_config
command = bash -c "source qmcchemrc ; exec python ./scripts/create_properties_ezfio.py"
command = bash -c "source qmcchemrc ; exec python2 ./scripts/create_properties_ezfio.py"
pool = console
rule compile_irpf90

View File

@ -5,10 +5,13 @@
URL_OPAM ="https://raw.github.com/ocaml/opam/master/shell/opam_installer.sh"
URL_IRPF90="https://github.com/scemama/irpf90/archive/v1.6.7.tar.gz"
URL_EZFIO ="https://github.com/scemama/EZFIO/archive/v1.3.1.tar.gz"
URL_EZFIO ="https://gitlab.com/scemama/EZFIO/-/archive/v1.3.3/EZFIO-v1.3.3.tar.gz"
#URL_IRPF90="https://github.com/scemama/irpf90/archive/v1.7.2.tar.gz"
URL_ZMQ ="http://download.zeromq.org/zeromq-4.1.4.tar.gz"
URL_F77ZMQ="https://github.com/scemama/f77_zmq/archive/4.1.4.tar.gz"
#URL_ZMQ ="https://github.com/zeromq/libzmq/archive/v4.2.5.tar.gz"
#URL_F77ZMQ="https://github.com/scemama/f77_zmq/archive/v4.2.5.tar.gz"
# Rules
#######
@ -49,6 +52,7 @@ build _build/irpf90.ok ../bin/irpman ../bin/irpf90: install | Downloads/irpf90.t
target = irpf90
descr = IRPF90
#build _build/zmq.ok ../lib/libzmq.a ../lib/libzmq.so.5 ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h: install | Downloads/zmq.tar.gz
build _build/zmq.ok ../lib/libzmq.a ../lib/libzmq.so.4 ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h: install | Downloads/zmq.tar.gz
target = zmq
descr = ZeroMQ
@ -57,7 +61,7 @@ build _build/ezfio.ok: install | Downloads/ezfio.tar.gz _build/irpf90.ok ../bin
target = ezfio
descr = EZFIO
build _build/f77_zmq.ok ../src/ZMQ/f77_zmq.h ../lib/libf77zmq.a ../lib/libf77zmq.so: install | Downloads/f77_zmq.tar.gz _build/zmq.ok ../lib/libzmq.a ../lib/libzmq.so.4 ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h
build _build/f77_zmq.ok ../src/ZMQ/f77_zmq.h ../lib/libf77zmq.a ../lib/libf77zmq.so: install | Downloads/f77_zmq.tar.gz _build/zmq.ok ../lib/libzmq.a ../lib/libzmq.so.5 ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h
target = f77_zmq
descr = Fortran ZeroMQ interface
@ -69,7 +73,7 @@ build _build/ocaml.ok ../bin/opam: install | Downloads/opam_installer.sh _build
target = ocaml
descr = OCaml compiler
build _build/ocaml_zmq.ok: install | ../bin/opam ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h _build/ocaml.ok _build/zmq.ok ../lib/libzmq.a ../lib/libzmq.so.4 ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h
build _build/ocaml_zmq.ok: install | ../bin/opam ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h _build/ocaml.ok _build/zmq.ok ../lib/libzmq.a ../lib/libzmq.so.5 ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h
target = ocaml_zmq
descr = OCaml ZeroMQ interface

View File

@ -5,17 +5,18 @@ function _install()
{
cd .. ; QMCCHEM_PATH="$PWD" ; cd -
set +u
export C_INCLUDE_PATH="${C_INCLUDE_PATH}":../../../lib
export C_INCLUDE_PATH="${C_INCLUDE_PATH}":../../../include
set -e
set -u
cd "${BUILD}"
export ZMQ_H="${QMCCHEM_PATH}"/lib/zmq.h
export ZMQ_H="${QMCCHEM_PATH}"/include/zmq.h
cp "${ZMQ_H}" .
make -j 8
cd -
rm -f -- "${QMCCHEM_PATH}"/src/ZMQ/f77_zmq.h "${QMCCHEM_PATH}"/lib/libf77zmq.a "${QMCCHEM_PATH}"/lib/libf77zmq.so
cp "${BUILD}"/libf77zmq.{a,so} ../lib/
cp "${BUILD}"/f77_zmq.h ../src/ZMQ/
# cp "${BUILD}"/f77_zmq_free.h ../src/ZMQ/f77_zmq.h
return 0
}

View File

@ -10,8 +10,10 @@ function _install()
set -e
set -u
cd "${BUILD}"
./configure --without-libsodium
./autogen.sh
./configure --without-libsodium --prefix=${QMCCHEM_PATH} --disable-libunwind
make -j 8
make install
cd -
rm -f -- "${QMCCHEM_PATH}"/lib/libzmq.{a,so,so.$LIBVERSION}
cp "${BUILD}"/.libs/libzmq.a "${QMCCHEM_PATH}"/lib/

View File

@ -9,6 +9,16 @@ let to_string = function
| Srun -> "srun"
| Bash -> "env"
| MPI -> Lazy.force Qmcchem_config.mpirun
(*
let to_string = function
| MPI
| Srun -> String.concat ~sep:" " [ Lazy.force Qmcchem_config.mpirun ;
match Sys.getenv "QMCCHEM_MPIRUN_FLAGS" with
| None -> ""
| Some p -> p
]
| Bash -> "env"
*)
(** Find the launcher for the current job scheduler *)

View File

@ -83,7 +83,7 @@ let hostname = lazy (
try
Unix.gethostname ()
with
| _ -> "127.0.0.1"
| _ -> "localhost"
)

View File

@ -35,7 +35,7 @@ let full_run ?(start_dataserver=true) ezfio_filename =
if (start_dataserver) then
begin
(* Reset socket address in EZFIO *)
Ezfio.set_simulation_http_server "tcp://127.0.0.1:65534";
Ezfio.set_simulation_http_server "tcp://localhost:65534";
(* Start the data server *)
@ -49,6 +49,7 @@ let full_run ?(start_dataserver=true) ezfio_filename =
end;
(*
(* Check if the Zmq Rep socket is open *)
let test_open_rep_socket () =
let zmq_context =
@ -59,22 +60,22 @@ let full_run ?(start_dataserver=true) ezfio_filename =
and address =
Ezfio.get_simulation_http_server ()
in
Zmq.Socket.set_receive_timeout socket 100;
let reply =
try
(
Zmq.Socket.set_receive_timeout socket 100;
Zmq.Socket.connect socket address;
Zmq.Socket.send socket (Message.(to_string Test));
Zmq.Socket.recv socket
) with
| Unix.Unix_error (_,_,_) ->
| Unix.Unix_error _ ->
begin
Zmq.Socket.set_linger_period socket 1 ;
Zmq.Socket.close socket;
Zmq.Context.terminate zmq_context;
"Failed"
end
in
Zmq.Socket.set_linger_period socket 1 ;
Zmq.Socket.close socket;
Zmq.Context.terminate zmq_context;
reply = "OK"
in
@ -94,6 +95,8 @@ let full_run ?(start_dataserver=true) ezfio_filename =
in
if (not (count 300)) then
Watchdog.kill ();
*)
Time.pause (Time.Span.of_sec 3.);
(* Start the qmc processes *)

View File

@ -25,7 +25,7 @@ if [[ ${MD5} != ${REF} ]]
then
echo ${MD5} > ${LSMD5_FILE}
echo Finding dependencies in OCaml files
python ./ninja_ocaml.py
python2 ./ninja_ocaml.py
fi
ninja ${@}

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python2
#
# Copyright 2015 Anthony Scemama
#
@ -218,7 +218,7 @@ GENERATED_NINJA=generated.ninja
# Name of the auto-generated ninja file
rule create_generated
command = python ./ninja_ocaml.py
command = python2 ./ninja_ocaml.py
description = Finding dependencies between modules
rule run_ninja

View File

@ -33,7 +33,7 @@ then
IRPF90_FLAGS="${IRPF90_FLAGS} --ninja"
# Check IRPF90 version
if [[ $( ${IRPF90} -v | python -c "import sys ; print float(sys.stdin.read().rsplit('.',1)[0]) >= 1.6") == False ]]
if [[ $( ${IRPF90} -v | python2 -c "import sys ; print float(sys.stdin.read().rsplit('.',1)[0]) >= 1.6") == False ]]
then
echo "IRPF90 version >= 1.6 required"
exit -1

View File

@ -25,7 +25,7 @@ if [[ ${MD5} != ${REF} ]]
then
echo ${MD5} > ${LSMD5_FILE}
echo Finding dependencies in OCaml files
python ./ninja_ocaml.py || exit -1
python2 ./ninja_ocaml.py || exit -1
fi

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python2
#
# Creates the properties.config file in the EZFIO directory. This is
# done by reading all the properties written in the src/PROPERTIES

View File

@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/env python2
import string
import os

View File

@ -1,4 +1,4 @@
BEGIN_SHELL [ /usr/bin/env python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
import os
from properties import properties
root = os.environ['QMCCHEM_PATH']
@ -59,7 +59,7 @@ END_SHELL
! DIMENSIONS
!==========================================================================!
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
make_dims()
END_SHELL

View File

@ -1,6 +1,6 @@
! Providers of *_block_walk
!==============================
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """

View File

@ -1,6 +1,6 @@
! Providers of *_dmc_block_walk
!==============================
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
@ -67,7 +67,7 @@ END_SHELL
integer :: k, i_walk, i_step
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then
@ -150,7 +150,7 @@ END_SHELL
psi_value_save(i_walk) = psi_value
E_loc_save(i_walk) = E_loc
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then
@ -265,7 +265,7 @@ END_SHELL
factor = 1.d0/block_weight
SOFT_TOUCH block_weight
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then

View File

@ -1,6 +1,6 @@
! Providers of *_fkmc_block_walk
!==============================
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
@ -77,7 +77,7 @@ END_SHELL
integer :: k, i_walk, i_step
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then
@ -173,7 +173,7 @@ END_SHELL
psi_value_save(i_walk) = psi_value
E_loc_save(i_walk) = E_loc
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then
@ -339,7 +339,7 @@ END_SHELL
factor = 1.d0/block_weight
SOFT_TOUCH block_weight
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then

View File

@ -1,6 +1,6 @@
! Providers of *_pdmc_block_walk
!==============================
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
@ -70,7 +70,7 @@ END_SHELL
integer :: k, i_walk, i_step
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then
@ -197,7 +197,7 @@ END_SHELL
! E_loc_zv(i+pdmc_n_diag+1) = pdmc_pop_weight_mult(i-1) * pdmc_weight(i_walk) * dmc_zv_weight
! enddo
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then
@ -299,7 +299,7 @@ END_SHELL
factor = 1.d0/block_weight
SOFT_TOUCH block_weight
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then

View File

@ -1,6 +1,6 @@
! Providers of *_srmc_block_walk
!==============================
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
@ -72,7 +72,7 @@ END_SHELL
integer :: k, i_walk, i_step
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then
@ -100,9 +100,7 @@ END_SHELL
block_weight = 0.d0
real, external :: accep_rate
double precision :: delta, thr
thr = 2.d0/time_step_sq
double precision :: delta
logical :: first_loop
first_loop = .True.
@ -143,7 +141,6 @@ END_SHELL
logical :: accepted
call brownian_step(p,q,accepted,delta_x)
if ( psi_value * psi_value_save(i_walk) >= 0.d0 ) then
! delta = (E_loc+E_loc_save(1,i_walk))*0.5d0
! delta = (5.d0 * E_loc + 8.d0 * E_loc_save(1,i_walk) - E_loc_save(2,i_walk))/12.d0
@ -161,6 +158,11 @@ END_SHELL
srmc_weight(i_walk) = 2.d0-dexp(dtime_step*delta)
endif
! Trick to avoid holes in DMC PES.
if (dabs(delta/E_ref) * time_step_sq > p ) then
srmc_weight(i_walk) = 1.d-1
endif
! if (accepted) then
! ! Compute correction to past weights
@ -186,6 +188,8 @@ END_SHELL
!
! endif
if ( psi_value * psi_value_save(i_walk) >= 0.d0 ) then
elec_coord(elec_num+1,1) += p*time_step
elec_coord(elec_num+1,2) = E_loc
elec_coord(elec_num+1,3) = srmc_weight(i_walk) * srmc_pop_weight_mult
@ -210,7 +214,7 @@ END_SHELL
endif
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then
@ -260,6 +264,13 @@ END_SHELL
srmc_projection_step = 1
endif
if (srmc_pop_weight_mult > 1.d0/time_step_sq) then
srmc_pop_weight_mult = 1.d0
endif
if (srmc_pop_weight_mult < time_step_sq) then
srmc_pop_weight_mult = 1.d0
endif
! Eventually, recompute the weight of the population
if (srmc_projection_step == 1) then
srmc_pop_weight_mult = 1.d0
@ -338,7 +349,7 @@ END_SHELL
factor = 1.d0/block_weight
SOFT_TOUCH block_weight
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then

View File

@ -1,6 +1,6 @@
! Providers of *_vmc_block_walk
!==============================
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
@ -39,7 +39,7 @@ END_SHELL
PROVIDE time_step
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then
@ -93,7 +93,7 @@ END_SHELL
block_weight += 1.d0
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then
@ -153,7 +153,7 @@ END_SHELL
double precision :: factor
factor = 1.d0/block_weight
SOFT_TOUCH block_weight
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
t = """
if (calc_$X) then

View File

@ -101,7 +101,7 @@ subroutine run_qmc(cpu0)
call zmq_send_real(msg,elec_coord_full,size(elec_coord_full))
endif
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
from properties import *
derivlist = []

View File

@ -351,7 +351,7 @@ subroutine get_running(do_run)
return
else
timeout = 5 ! seconds
timeout = 600 ! seconds
! Polling items
! -------------

View File

@ -27,7 +27,7 @@ subroutine zmq_ezfio_has(cmd_in,exists)
character*(4) :: buffer_size_char
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, &
len(buffer_size_char), ZMQ_SNDMORE)
len(buffer_size_char), 0)
read(buffer_size_char(1:rc),*) buffer_size
logical :: w
@ -59,7 +59,7 @@ subroutine zmq_ezfio_get_logical(cmd_in,w,d)
rc = f77_zmq_send(zmq_to_dataserver_socket, 'Ezfio', 5, ZMQ_SNDMORE)
rc = f77_zmq_send(zmq_to_dataserver_socket, cmd, len_trim(cmd), 0)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), ZMQ_SNDMORE)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), 0)
read(buffer_size_char(1:rc),*) buffer_size
allocate (buffer(buffer_size+1))
buffer = ' '
@ -107,7 +107,7 @@ subroutine zmq_ezfio_get_double_precision(cmd_in,w,d)
rc = f77_zmq_send(zmq_to_dataserver_socket, 'Ezfio', 5, ZMQ_SNDMORE)
rc = f77_zmq_send(zmq_to_dataserver_socket, cmd, len_trim(cmd), 0)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), ZMQ_SNDMORE)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), 0)
read(buffer_size_char(1:rc),*) buffer_size
allocate (buffer(buffer_size+1))
buffer = ' '
@ -153,7 +153,7 @@ subroutine zmq_ezfio_get_integer(cmd_in,w,d)
rc = f77_zmq_send(zmq_to_dataserver_socket, 'Ezfio', 5, ZMQ_SNDMORE)
rc = f77_zmq_send(zmq_to_dataserver_socket, cmd, len_trim(cmd), 0)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), ZMQ_SNDMORE)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), 0)
read(buffer_size_char(1:rc),*) buffer_size
allocate (buffer(buffer_size+1))
buffer = ' '
@ -199,7 +199,7 @@ subroutine zmq_ezfio_get_integer8(cmd_in,w,d)
rc = f77_zmq_send(zmq_to_dataserver_socket, 'Ezfio', 5, ZMQ_SNDMORE)
rc = f77_zmq_send(zmq_to_dataserver_socket, cmd, len_trim(cmd), 0)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), ZMQ_SNDMORE)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), 0)
read(buffer_size_char(1:rc),*) buffer_size
allocate (buffer(buffer_size+1))
buffer = ' '
@ -247,7 +247,7 @@ subroutine zmq_ezfio_get_real(cmd_in,w,d)
rc = f77_zmq_send(zmq_to_dataserver_socket, 'Ezfio', 5, ZMQ_SNDMORE)
rc = f77_zmq_send(zmq_to_dataserver_socket, cmd, len_trim(cmd), 0)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), ZMQ_SNDMORE)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), 0)
read(buffer_size_char(1:rc),*) buffer_size
allocate (buffer(buffer_size+1))
buffer = ' '
@ -296,7 +296,7 @@ subroutine zmq_ezfio_get_character(cmd_in,w,d)
rc = f77_zmq_send(zmq_to_dataserver_socket, 'Ezfio', 5, ZMQ_SNDMORE)
rc = f77_zmq_send(zmq_to_dataserver_socket, cmd, len_trim(cmd), 0)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), ZMQ_SNDMORE)
rc = f77_zmq_recv(zmq_to_dataserver_socket, buffer_size_char, len(buffer_size_char), 0)
read(buffer_size_char(1:rc),*) buffer_size
allocate (buffer(buffer_size+1))
buffer = ' '

View File

@ -1,4 +1,4 @@
BEGIN_SHELL [ /usr/bin/python ]
BEGIN_SHELL [ /usr/bin/env python2 ]
data = [ \
("electrons_elec_coord_pool_size" , "integer" , "" ),

View File

@ -1,4 +1,4 @@
#!/usr/bin/python
#!/usr/bin/python2
import string
import os