mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-21 11:03:29 +01:00
Merge branch 'dev-lcpq' of github.com:QuantumPackage/qp2 into dev-lcpq
This commit is contained in:
commit
3120017773
26
configure
vendored
26
configure
vendored
@ -292,6 +292,9 @@ EOF
|
|||||||
# Special commands for Travis CI
|
# Special commands for Travis CI
|
||||||
chmod +x "${QP_ROOT}"/external/opam_installer.sh
|
chmod +x "${QP_ROOT}"/external/opam_installer.sh
|
||||||
rm --force ${QP_ROOT}/bin/opam
|
rm --force ${QP_ROOT}/bin/opam
|
||||||
|
if [[ -n ${NO_CACHE} ]] ; then
|
||||||
|
rm -rf ${HOME}/.opam
|
||||||
|
fi
|
||||||
export OPAMROOT=${HOME}/.opam
|
export OPAMROOT=${HOME}/.opam
|
||||||
cat << EOF | bash ${QP_ROOT}/external/opam_installer.sh --no-backup
|
cat << EOF | bash ${QP_ROOT}/external/opam_installer.sh --no-backup
|
||||||
${QP_ROOT}/bin
|
${QP_ROOT}/bin
|
||||||
@ -301,9 +304,9 @@ ${QP_ROOT}/bin
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
rm ${QP_ROOT}/external/opam_installer.sh
|
rm ${QP_ROOT}/external/opam_installer.sh
|
||||||
source ${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true
|
# source ${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true
|
||||||
|
#
|
||||||
opam switch create ocaml-base-compiler.4.07.1
|
# opam switch create ocaml-base-compiler.4.07.1
|
||||||
opam init --verbose --yes --compiler=4.07.1 --disable-sandboxing
|
opam init --verbose --yes --compiler=4.07.1 --disable-sandboxing
|
||||||
|
|
||||||
eval $(opam env)
|
eval $(opam env)
|
||||||
@ -312,18 +315,19 @@ EOF
|
|||||||
else
|
else
|
||||||
# Conventional commands
|
# Conventional commands
|
||||||
execute << EOF
|
execute << EOF
|
||||||
chmod +x "\${QP_ROOT}"/external/opam_installer.sh
|
chmod +x "${QP_ROOT}"/external/opam_installer.sh
|
||||||
"\${QP_ROOT}"/external/opam_installer.sh --no-backup
|
"${QP_ROOT}"/external/opam_installer.sh --no-backup
|
||||||
EOF
|
EOF
|
||||||
execute << EOF
|
execute << EOF
|
||||||
rm --force \${QP_ROOT}/bin/opam
|
rm --force ${QP_ROOT}/bin/opam
|
||||||
export OPAMROOT=\${OPAMROOT:-\${QP_ROOT}/external/opam}
|
export OPAMROOT=${OPAMROOT:-${QP_ROOT}/external/opam}
|
||||||
echo \${QP_ROOT}/bin \
|
echo ${QP_ROOT}/bin \
|
||||||
| sh \${QP_ROOT}/external/opam_installer.sh
|
| sh ${QP_ROOT}/external/opam_installer.sh
|
||||||
EOF
|
EOF
|
||||||
rm ${QP_ROOT}/external/opam_installer.sh
|
rm ${QP_ROOT}/external/opam_installer.sh
|
||||||
source ${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true
|
# source ${OPAMROOT}/opam-init/init.sh > /dev/null 2> /dev/null || true
|
||||||
opam switch create ocaml-base-compiler.4.07.1 || exit 1
|
# opam switch create ocaml-base-compiler.4.07.1 || exit 1
|
||||||
|
|
||||||
opam init --verbose --yes --compiler=4.07.1 --disable-sandboxing
|
opam init --verbose --yes --compiler=4.07.1 --disable-sandboxing
|
||||||
eval $(opam env)
|
eval $(opam env)
|
||||||
EOF
|
EOF
|
||||||
|
BIN
data/qp2.png
BIN
data/qp2.png
Binary file not shown.
Before Width: | Height: | Size: 5.9 MiB After Width: | Height: | Size: 351 KiB |
BIN
data/qp2_hd.png
Normal file
BIN
data/qp2_hd.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.9 MiB |
@ -1,6 +1,6 @@
|
|||||||
%%% ARXIV TO BE UPDATED %%%
|
%%% ARXIV TO BE UPDATED %%%
|
||||||
@article{Giner2019Jul,
|
@article{Giner2019Jul,
|
||||||
author = {Giner, Emmanuel and Scemama, Anthony and Toulouse, Julien and Loos, Pierre-Fran{\ifmmode\mbox{\c{c}}\else\c{c}\fi}ois},
|
author = {Giner, Emmanuel and Scemama, Anthony and Toulouse, Julien and Loos, Pierre-Fran{\c{c}}ois},
|
||||||
title = {{Chemically Accurate Excitation Energies With Small Basis Sets}},
|
title = {{Chemically Accurate Excitation Energies With Small Basis Sets}},
|
||||||
journal = {arXiv},
|
journal = {arXiv},
|
||||||
year = {2019},
|
year = {2019},
|
||||||
@ -9,24 +9,28 @@
|
|||||||
url = {https://arxiv.org/abs/1907.01245}
|
url = {https://arxiv.org/abs/1907.01245}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{Dash2019May,
|
|
||||||
author = {Dash, Monika and Feldt, Jonas and Moroni, Saverio and Scemama, Anthony and Filippi, Claudia},
|
@article{Burton_2019,
|
||||||
title = {{Excited states with selected CI-QMC: chemically accurate excitation energies and geometries}},
|
doi = {10.1021/acs.jctc.9b00441},
|
||||||
journal = {arXiv},
|
url = {https://doi.org/10.1021%2Facs.jctc.9b00441},
|
||||||
year = {2019},
|
year = 2019,
|
||||||
month = {May},
|
month = {aug},
|
||||||
eprint = {1905.06737},
|
publisher = {American Chemical Society ({ACS})},
|
||||||
url = {https://arxiv.org/abs/1905.06737}
|
author = {Hugh G. A. Burton and Alex J.W. Thom},
|
||||||
|
title = {A General Approach for Multireference Ground and Excited States using Non-Orthogonal Configuration Interaction},
|
||||||
|
journal = {Journal of Chemical Theory and Computation}
|
||||||
}
|
}
|
||||||
|
|
||||||
@article{Burton2019May,
|
|
||||||
author = {Burton, Hugh G. A. and Thom, Alex J. W.},
|
@article{Dash_2019,
|
||||||
title = {{A General Approach for Multireference Ground and Excited States using Non-Orthogonal Configuration Interaction}},
|
doi = {10.1021/acs.jctc.9b00476},
|
||||||
journal = {arXiv},
|
url = {https://doi.org/10.1021%2Facs.jctc.9b00476},
|
||||||
year = {2019},
|
year = 2019,
|
||||||
month = {May},
|
month = {aug},
|
||||||
eprint = {1905.02626},
|
publisher = {American Chemical Society ({ACS})},
|
||||||
url = {https://arxiv.org/abs/1905.02626}
|
author = {Monika Dash and Jonas Feldt and Saverio Moroni and Anthony Scemama and Claudia Filippi},
|
||||||
|
title = {Excited States with Selected Configuration Interaction-Quantum Monte Carlo: Chemically Accurate Excitation Energies and Geometries},
|
||||||
|
journal = {Journal of Chemical Theory and Computation}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -43,6 +47,19 @@
|
|||||||
pages = {084103},
|
pages = {084103},
|
||||||
author = {Anthony Fert{\'{e}} and Emmanuel Giner and Julien Toulouse},
|
author = {Anthony Fert{\'{e}} and Emmanuel Giner and Julien Toulouse},
|
||||||
title = {Range-separated multideterminant density-functional theory with a short-range correlation functional of the on-top pair density},
|
title = {Range-separated multideterminant density-functional theory with a short-range correlation functional of the on-top pair density},
|
||||||
|
}
|
||||||
|
|
||||||
|
@article{Caffarel_2019,
|
||||||
|
doi = {10.1063/1.5114703},
|
||||||
|
url = {https://doi.org/10.1063%2F1.5114703},
|
||||||
|
year = 2019,
|
||||||
|
month = {aug},
|
||||||
|
publisher = {{AIP} Publishing},
|
||||||
|
volume = {151},
|
||||||
|
number = {6},
|
||||||
|
pages = {064101},
|
||||||
|
author = {Michel Caffarel},
|
||||||
|
title = {Evaluating two-electron-repulsion integrals over arbitrary orbitals using zero variance Monte Carlo: Application to full configuration interaction calculations with Slater-type orbitals},
|
||||||
journal = {The Journal of Chemical Physics}
|
journal = {The Journal of Chemical Physics}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ $(QP_ROOT)/data/executables: remake_executables element_create_db.byte Qptypes.m
|
|||||||
$(QP_ROOT)/ocaml/element_create_db.byte
|
$(QP_ROOT)/ocaml/element_create_db.byte
|
||||||
|
|
||||||
external_libs:
|
external_libs:
|
||||||
opam install cryptokit core
|
opam install cryptokit sexplib
|
||||||
|
|
||||||
qpackage.odocl: $(MLIFILES)
|
qpackage.odocl: $(MLIFILES)
|
||||||
ls $(MLIFILES) | sed "s/\.mli//" > qpackage.odocl
|
ls $(MLIFILES) | sed "s/\.mli//" > qpackage.odocl
|
||||||
|
@ -6,6 +6,11 @@ type req_or_sub = REQ | SUB
|
|||||||
|
|
||||||
let localport = 42379
|
let localport = 42379
|
||||||
|
|
||||||
|
|
||||||
|
let in_time_sum = ref 1.e-9
|
||||||
|
and in_size_sum = ref 0.
|
||||||
|
|
||||||
|
|
||||||
let () =
|
let () =
|
||||||
let open Command_line in
|
let open Command_line in
|
||||||
begin
|
begin
|
||||||
@ -17,6 +22,10 @@ let () =
|
|||||||
doc="Downloads the EZFIO directory." ;
|
doc="Downloads the EZFIO directory." ;
|
||||||
arg=Without_arg; } ;
|
arg=Without_arg; } ;
|
||||||
|
|
||||||
|
{ short='v' ; long="verbose" ; opt=Optional ;
|
||||||
|
doc="Prints the transfer speed." ;
|
||||||
|
arg=Without_arg; } ;
|
||||||
|
|
||||||
anonymous
|
anonymous
|
||||||
"(EZFIO_DIR|ADDRESS)"
|
"(EZFIO_DIR|ADDRESS)"
|
||||||
Mandatory
|
Mandatory
|
||||||
@ -39,6 +48,9 @@ let () =
|
|||||||
ADDRESS x
|
ADDRESS x
|
||||||
in
|
in
|
||||||
|
|
||||||
|
let verbose =
|
||||||
|
Command_line.get_bool "verbose"
|
||||||
|
in
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -133,8 +145,8 @@ let () =
|
|||||||
let socket_in, socket_out =
|
let socket_in, socket_out =
|
||||||
match req_or_sub with
|
match req_or_sub with
|
||||||
| REQ ->
|
| REQ ->
|
||||||
create_socket Zmq.Socket.rep Zmq.Socket.bind addr_in,
|
create_socket Zmq.Socket.router Zmq.Socket.bind addr_in,
|
||||||
create_socket Zmq.Socket.req Zmq.Socket.connect addr_out
|
create_socket Zmq.Socket.dealer Zmq.Socket.connect addr_out
|
||||||
| SUB ->
|
| SUB ->
|
||||||
create_socket Zmq.Socket.sub Zmq.Socket.connect addr_in,
|
create_socket Zmq.Socket.sub Zmq.Socket.connect addr_in,
|
||||||
create_socket Zmq.Socket.pub Zmq.Socket.bind addr_out
|
create_socket Zmq.Socket.pub Zmq.Socket.bind addr_out
|
||||||
@ -144,19 +156,61 @@ let () =
|
|||||||
Zmq.Socket.subscribe socket_in "";
|
Zmq.Socket.subscribe socket_in "";
|
||||||
|
|
||||||
|
|
||||||
|
(*
|
||||||
let action =
|
let action =
|
||||||
|
if verbose then
|
||||||
|
begin
|
||||||
|
match req_or_sub with
|
||||||
|
| REQ -> (fun () ->
|
||||||
|
let msg =
|
||||||
|
Zmq.Socket.recv_all socket_in
|
||||||
|
in
|
||||||
|
let t0 = Unix.gettimeofday () in
|
||||||
|
Zmq.Socket.send_all socket_out msg;
|
||||||
|
let in_size =
|
||||||
|
float_of_int ( List.fold_left (fun accu x -> accu + String.length x) 0 msg )
|
||||||
|
/. 8192. /. 1024.
|
||||||
|
in
|
||||||
|
let msg =
|
||||||
|
Zmq.Socket.recv_all socket_out
|
||||||
|
in
|
||||||
|
let t1 = Unix.gettimeofday () in
|
||||||
|
Zmq.Socket.send_all socket_in msg;
|
||||||
|
let in_time = t1 -. t0 in
|
||||||
|
in_time_sum := !in_time_sum +. in_time;
|
||||||
|
in_size_sum := !in_size_sum +. in_size;
|
||||||
|
Printf.printf " %16.2f MiB/s -- %16.2f MiB/s\n%!" (in_size /. in_time) (!in_size_sum /. !in_time_sum);
|
||||||
|
)
|
||||||
|
| SUB -> (fun () ->
|
||||||
|
Zmq.Socket.recv_all socket_in |> Zmq.Socket.send_all socket_out)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
match req_or_sub with
|
||||||
|
| REQ -> (fun () ->
|
||||||
|
Zmq.Socket.recv_all socket_in |> Zmq.Socket.send_all socket_out;
|
||||||
|
Zmq.Socket.recv_all socket_out |> Zmq.Socket.send_all socket_in )
|
||||||
|
| SUB -> (fun () ->
|
||||||
|
Zmq.Socket.recv_all socket_in |> Zmq.Socket.send_all socket_out)
|
||||||
|
end
|
||||||
|
in
|
||||||
|
*)
|
||||||
|
|
||||||
|
let action_in =
|
||||||
match req_or_sub with
|
match req_or_sub with
|
||||||
| REQ -> (fun () ->
|
| REQ -> (fun () -> Zmq.Socket.recv_all socket_in |> Zmq.Socket.send_all socket_out)
|
||||||
Zmq.Socket.recv_all socket_in |> Zmq.Socket.send_all socket_out;
|
| SUB -> (fun () -> Zmq.Socket.recv_all socket_in |> Zmq.Socket.send_all socket_out)
|
||||||
Zmq.Socket.recv_all socket_out |> Zmq.Socket.send_all socket_in )
|
|
||||||
| SUB -> (fun () ->
|
|
||||||
Zmq.Socket.recv_all socket_in |> Zmq.Socket.send_all socket_out)
|
|
||||||
in
|
in
|
||||||
|
|
||||||
|
let action_out =
|
||||||
|
match req_or_sub with
|
||||||
|
| REQ -> (fun () -> Zmq.Socket.recv_all socket_out |> Zmq.Socket.send_all socket_in )
|
||||||
|
| SUB -> (fun () -> () )
|
||||||
|
in
|
||||||
|
|
||||||
let pollitem =
|
let pollitem =
|
||||||
Zmq.Poll.mask_of
|
Zmq.Poll.mask_of
|
||||||
[| (socket_in, Zmq.Poll.In) |]
|
[| (socket_in, Zmq.Poll.In) ; (socket_out, Zmq.Poll.In) |]
|
||||||
in
|
in
|
||||||
|
|
||||||
|
|
||||||
@ -166,12 +220,11 @@ let () =
|
|||||||
Zmq.Poll.poll ~timeout:1000 pollitem
|
Zmq.Poll.poll ~timeout:1000 pollitem
|
||||||
in
|
in
|
||||||
|
|
||||||
match polling.(0) with
|
match polling with
|
||||||
| Some Zmq.Poll.In -> action ()
|
| [| Some Zmq.Poll.In ; Some Zmq.Poll.In |] -> ( action_out () ; action_in () )
|
||||||
| None -> ()
|
| [| _ ; Some Zmq.Poll.In |] -> action_out ()
|
||||||
| Some Zmq.Poll.In_out
|
| [| Some Zmq.Poll.In ; _ |] -> action_in ()
|
||||||
| Some Zmq.Poll.Out -> ()
|
| _ -> ()
|
||||||
|
|
||||||
done;
|
done;
|
||||||
|
|
||||||
Zmq.Socket.close socket_in;
|
Zmq.Socket.close socket_in;
|
||||||
@ -277,7 +330,7 @@ let () =
|
|||||||
match arg with
|
match arg with
|
||||||
| EZFIO x ->
|
| EZFIO x ->
|
||||||
begin
|
begin
|
||||||
Printf.sprintf "tar -zcf %s %s" temp_file x
|
Printf.sprintf "tar --exclude=\"*.gz.*\" -zcf %s %s" temp_file x
|
||||||
|> Sys.command |> ignore;
|
|> Sys.command |> ignore;
|
||||||
let fd =
|
let fd =
|
||||||
Unix.openfile temp_file [Unix.O_RDONLY] 0o640
|
Unix.openfile temp_file [Unix.O_RDONLY] 0o640
|
||||||
@ -363,12 +416,21 @@ let () =
|
|||||||
|> Zmq.Socket.send socket_in
|
|> Zmq.Socket.send socket_in
|
||||||
in
|
in
|
||||||
|
|
||||||
Printf.printf "On remote hosts, create ssh tunnel using:
|
Printf.printf "
|
||||||
ssh -L %d:%s:%d -L %d:%s:%d -L %d:%s:%d %s\n%!"
|
On remote hosts, create ssh tunnel using:
|
||||||
|
ssh -L %d:%s:%d -L %d:%s:%d -L %d:%s:%d -L %d:%s:%d %s &
|
||||||
|
Or from this host connect to clients using:
|
||||||
|
ssh -R %d:localhost:%d -R %d:localhost:%d -R %d:localhost:%d -R %d:localhost:%d <host> &
|
||||||
|
%!"
|
||||||
(port ) localhost (localport )
|
(port ) localhost (localport )
|
||||||
(port+1) localhost (localport+1)
|
(port+1) localhost (localport+1)
|
||||||
|
(port+2) localhost (localport+2)
|
||||||
(port+9) localhost (localport+9)
|
(port+9) localhost (localport+9)
|
||||||
(Unix.gethostname ());
|
(Unix.gethostname ())
|
||||||
|
(port ) (localport )
|
||||||
|
(port+1) (localport+1)
|
||||||
|
(port+2) (localport+2)
|
||||||
|
(port+9) (localport+9);
|
||||||
Printf.printf "Ready\n%!";
|
Printf.printf "Ready\n%!";
|
||||||
while !run_status do
|
while !run_status do
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ let input_data = "
|
|||||||
|
|
||||||
* Det_number_max : int
|
* Det_number_max : int
|
||||||
assert (x > 0) ;
|
assert (x > 0) ;
|
||||||
if (x > 50_00_000_000) then
|
if (x > 50_000_000_000) then
|
||||||
warning \"More than 50 billion determinants\";
|
warning \"More than 50 billion determinants\";
|
||||||
|
|
||||||
* States_number : int
|
* States_number : int
|
||||||
|
@ -141,8 +141,8 @@ subroutine run_pt2_slave_small(thread,iproc,energy)
|
|||||||
b%cur=0
|
b%cur=0
|
||||||
|
|
||||||
! ! Try to adjust n_tasks around nproc/2 seconds per job
|
! ! Try to adjust n_tasks around nproc/2 seconds per job
|
||||||
! n_tasks = min(2*n_tasks,int( dble(n_tasks * nproc/2) / (time1 - time0 + 1.d0)))
|
n_tasks = min(2*n_tasks,int( dble(n_tasks * nproc/2) / (time1 - time0 + 1.d0)))
|
||||||
n_tasks = 1
|
! n_tasks = 1
|
||||||
end do
|
end do
|
||||||
|
|
||||||
integer, external :: disconnect_from_taskserver
|
integer, external :: disconnect_from_taskserver
|
||||||
|
Loading…
Reference in New Issue
Block a user