mirror of
https://gitlab.com/scemama/qmcchem.git
synced 2024-12-22 12:23:30 +01:00
Update for OCaml 4.04
This commit is contained in:
parent
9d186b3759
commit
8f978d95c2
@ -1,5 +1,5 @@
|
|||||||
open Core.Std;;
|
open Core
|
||||||
open Qptypes;;
|
open Qptypes
|
||||||
|
|
||||||
type t =
|
type t =
|
||||||
{ property : Property.t ;
|
{ property : Property.t ;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std;;
|
open Core
|
||||||
|
|
||||||
|
|
||||||
let simulation_nucl_fitcusp_factor = lazy(
|
let simulation_nucl_fitcusp_factor = lazy(
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
open Qptypes
|
open Qptypes
|
||||||
open Qputils
|
open Qputils
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std;;
|
open Core
|
||||||
|
|
||||||
type t =
|
type t =
|
||||||
| Srun
|
| Srun
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
|
|
||||||
(** Directory containing the list of input files. The directory is created is inexistant. *)
|
(** Directory containing the list of input files. The directory is created is inexistant. *)
|
||||||
let input_directory = lazy (
|
let input_directory = lazy (
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
open Qptypes
|
open Qptypes
|
||||||
|
|
||||||
type t =
|
type t =
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std;;
|
open Core
|
||||||
|
|
||||||
|
|
||||||
(** QMC=Chem installation directory *)
|
(** QMC=Chem installation directory *)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
open Qptypes
|
open Qptypes
|
||||||
|
|
||||||
(** Data server of QMC=Chem.
|
(** Data server of QMC=Chem.
|
||||||
@ -36,7 +36,7 @@ let run ?(daemon=true) ezfio_filename =
|
|||||||
begin
|
begin
|
||||||
Printf.printf "Generating initial walkers...\n%!";
|
Printf.printf "Generating initial walkers...\n%!";
|
||||||
Unix.fork_exec ~prog:(Lazy.force Qmcchem_config.qmc_create_walkers)
|
Unix.fork_exec ~prog:(Lazy.force Qmcchem_config.qmc_create_walkers)
|
||||||
~args:["qmc_create_walkers" ; ezfio_filename] ()
|
~argv:["qmc_create_walkers" ; ezfio_filename] ()
|
||||||
|> Unix.waitpid_exn ;
|
|> Unix.waitpid_exn ;
|
||||||
Printf.printf "Initial walkers ready\n%!"
|
Printf.printf "Initial walkers ready\n%!"
|
||||||
end ;
|
end ;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
|
|
||||||
|
|
||||||
let run ~t ezfio_filename=
|
let run ~t ezfio_filename=
|
||||||
@ -49,7 +49,7 @@ let run ~t ezfio_filename=
|
|||||||
in
|
in
|
||||||
tot_size := Byte_units.create `Bytes ((Byte_units.bytes !tot_size) +. (Byte_units.bytes bytes));
|
tot_size := Byte_units.create `Bytes ((Byte_units.bytes !tot_size) +. (Byte_units.bytes bytes));
|
||||||
Printf.printf "%s\n%!" (Byte_units.to_string !tot_size);
|
Printf.printf "%s\n%!" (Byte_units.to_string !tot_size);
|
||||||
Time.pause (Time.Span.of_float 1.)
|
Time.pause (Time.Span.of_sec 1.)
|
||||||
done
|
done
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
|
|
||||||
let file_header filename = Printf.sprintf
|
let file_header filename = Printf.sprintf
|
||||||
"
|
"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std;;
|
open Core
|
||||||
|
|
||||||
let bind_socket ~socket_type ~socket ~address =
|
let bind_socket ~socket_type ~socket ~address =
|
||||||
let rec loop = function
|
let rec loop = function
|
||||||
@ -11,7 +11,7 @@ let bind_socket ~socket_type ~socket ~address =
|
|||||||
ZMQ.Socket.bind socket address;
|
ZMQ.Socket.bind socket address;
|
||||||
loop (-1)
|
loop (-1)
|
||||||
with
|
with
|
||||||
| Unix.Unix_error _ -> (Time.pause @@ Time.Span.of_float 1. ; loop (i-1) )
|
| Unix.Unix_error _ -> (Time.pause @@ Time.Span.of_sec 1. ; loop (i-1) )
|
||||||
| other_exception -> raise other_exception
|
| other_exception -> raise other_exception
|
||||||
in loop 10
|
in loop 10
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ let run ezfio_filename dataserver =
|
|||||||
in
|
in
|
||||||
|
|
||||||
(* Build qmc executable command *)
|
(* Build qmc executable command *)
|
||||||
let prog, args =
|
let prog, argv =
|
||||||
qmc,
|
qmc,
|
||||||
[ qmc ; ezfio_filename ;
|
[ qmc ; ezfio_filename ;
|
||||||
Printf.sprintf "ipc://%s:%d" Qmcchem_config.dev_shm port ];
|
Printf.sprintf "ipc://%s:%d" Qmcchem_config.dev_shm port ];
|
||||||
@ -57,7 +57,7 @@ let run ezfio_filename dataserver =
|
|||||||
| Unix.Unix_error _ ->
|
| Unix.Unix_error _ ->
|
||||||
begin
|
begin
|
||||||
Unix.chdir tmpdir;
|
Unix.chdir tmpdir;
|
||||||
Time.pause @@ Time.Span.of_float 0.1;
|
Time.pause @@ Time.Span.of_sec 0.1;
|
||||||
match (Sys.file_exists "PID") with
|
match (Sys.file_exists "PID") with
|
||||||
| `No
|
| `No
|
||||||
| `Unknown -> ()
|
| `Unknown -> ()
|
||||||
@ -75,7 +75,7 @@ let run ezfio_filename dataserver =
|
|||||||
begin
|
begin
|
||||||
match Signal.send (Signal.of_system_int 0) (`Pid (Pid.of_int pid)) with
|
match Signal.send (Signal.of_system_int 0) (`Pid (Pid.of_int pid)) with
|
||||||
| `No_such_process -> ()
|
| `No_such_process -> ()
|
||||||
| _ -> ignore @@ Unix.exec ~prog ~args ()
|
| _ -> ignore @@ Unix.exec ~prog ~argv ()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
in
|
in
|
||||||
@ -89,7 +89,7 @@ let run ezfio_filename dataserver =
|
|||||||
|
|
||||||
(* Fork a qmc *)
|
(* Fork a qmc *)
|
||||||
ignore @@
|
ignore @@
|
||||||
Watchdog.fork_exec ~prog ~args ();
|
Watchdog.fork_exec ~prog ~argv ();
|
||||||
|
|
||||||
(* If there are MICs, use them here (TODO) *)
|
(* If there are MICs, use them here (TODO) *)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
|
|
||||||
|
|
||||||
let run ezfio_filename =
|
let run ezfio_filename =
|
||||||
@ -6,12 +6,12 @@ let run ezfio_filename =
|
|||||||
let qmcchem_info =
|
let qmcchem_info =
|
||||||
Lazy.force Qmcchem_config.qmcchem_info
|
Lazy.force Qmcchem_config.qmcchem_info
|
||||||
in
|
in
|
||||||
let prog, args =
|
let prog, argv =
|
||||||
qmcchem_info,
|
qmcchem_info,
|
||||||
[ qmcchem_info ; ezfio_filename ]
|
[ qmcchem_info ; ezfio_filename ]
|
||||||
in
|
in
|
||||||
ignore @@
|
ignore @@
|
||||||
Unix.exec ~prog ~args ()
|
Unix.exec ~prog ~argv ()
|
||||||
|
|
||||||
|
|
||||||
let spec =
|
let spec =
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
|
|
||||||
let run ?c ?d ~l ~update ezfio_filename =
|
let run ?c ?d ~l ~update ezfio_filename =
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
open Qptypes
|
open Qptypes
|
||||||
|
|
||||||
(** Display a table that can be plotted by gnuplot *)
|
(** Display a table that can be plotted by gnuplot *)
|
||||||
@ -65,7 +65,7 @@ let display_cumulants ~range property =
|
|||||||
Printf.printf "Variance = %16.10f\n" cum.(1);
|
Printf.printf "Variance = %16.10f\n" cum.(1);
|
||||||
Printf.printf "Centered k3 = %16.10f\n" cum.(2);
|
Printf.printf "Centered k3 = %16.10f\n" cum.(2);
|
||||||
Printf.printf "Centered k4 = %16.10f\n" cum.(3);
|
Printf.printf "Centered k4 = %16.10f\n" cum.(3);
|
||||||
print_newline ();
|
Printf.printf "\n%!";
|
||||||
let n = 1. /. 12. *. cum.(2) *. cum.(2) +.
|
let n = 1. /. 12. *. cum.(2) *. cum.(2) +.
|
||||||
1. /. 48. *. cum.(3) *. cum.(3)
|
1. /. 48. *. cum.(3) *. cum.(3)
|
||||||
in
|
in
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
|
|
||||||
let full_run ?(start_dataserver=true) ezfio_filename =
|
let full_run ?(start_dataserver=true) ezfio_filename =
|
||||||
(* Identify the job scheduler *)
|
(* Identify the job scheduler *)
|
||||||
@ -36,13 +36,13 @@ let full_run ?(start_dataserver=true) ezfio_filename =
|
|||||||
|
|
||||||
|
|
||||||
(* Start the data server *)
|
(* Start the data server *)
|
||||||
let prog, args =
|
let prog, argv =
|
||||||
qmcchem, [ qmcchem; "run" ; "-d" ; ezfio_filename]
|
qmcchem, [ qmcchem; "run" ; "-d" ; ezfio_filename]
|
||||||
in
|
in
|
||||||
let pid_dataserver =
|
let pid_dataserver =
|
||||||
Watchdog.fork_exec ~prog ~args ()
|
Watchdog.fork_exec ~prog ~argv ()
|
||||||
in
|
in
|
||||||
Printf.printf "%7d : %s\n%!" (Pid.to_int pid_dataserver) (String.concat ~sep:" " args)
|
Printf.printf "%7d : %s\n%!" (Pid.to_int pid_dataserver) (String.concat ~sep:" " argv)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ let full_run ?(start_dataserver=true) ezfio_filename =
|
|||||||
| n ->
|
| n ->
|
||||||
if (not (test_open_rep_socket ())) then
|
if (not (test_open_rep_socket ())) then
|
||||||
begin
|
begin
|
||||||
Time.pause (Time.Span.of_float 0.5);
|
Time.pause (Time.Span.of_sec 0.5);
|
||||||
count (n-1);
|
count (n-1);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
@ -94,7 +94,7 @@ let full_run ?(start_dataserver=true) ezfio_filename =
|
|||||||
|
|
||||||
|
|
||||||
(* Start the qmc processes *)
|
(* Start the qmc processes *)
|
||||||
let prog, args =
|
let prog, argv =
|
||||||
let launcher =
|
let launcher =
|
||||||
Launcher.(find () |> to_string)
|
Launcher.(find () |> to_string)
|
||||||
in
|
in
|
||||||
@ -110,12 +110,12 @@ let full_run ?(start_dataserver=true) ezfio_filename =
|
|||||||
in
|
in
|
||||||
let pid_qmc =
|
let pid_qmc =
|
||||||
try
|
try
|
||||||
Watchdog.fork_exec ~prog ~args ()
|
Watchdog.fork_exec ~prog ~argv ()
|
||||||
with
|
with
|
||||||
| Unix.Unix_error _ ->
|
| Unix.Unix_error _ ->
|
||||||
begin
|
begin
|
||||||
let command =
|
let command =
|
||||||
String.concat ~sep:" " args
|
String.concat ~sep:" " argv
|
||||||
in
|
in
|
||||||
Printf.printf "
|
Printf.printf "
|
||||||
============================================================
|
============================================================
|
||||||
@ -126,7 +126,7 @@ Error: Unable to run the following command
|
|||||||
Watchdog.kill ()
|
Watchdog.kill ()
|
||||||
end
|
end
|
||||||
in
|
in
|
||||||
Printf.printf "%7d : %s\n%!" (Pid.to_int pid_qmc) (String.concat ~sep:" " args);
|
Printf.printf "%7d : %s\n%!" (Pid.to_int pid_qmc) (String.concat ~sep:" " argv);
|
||||||
|
|
||||||
(* Wait for processes to finish *)
|
(* Wait for processes to finish *)
|
||||||
Watchdog.join ()
|
Watchdog.join ()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
|
|
||||||
|
|
||||||
let run ezfio_filename =
|
let run ezfio_filename =
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
|
|
||||||
let split_re =
|
let split_re =
|
||||||
Str.regexp " +"
|
Str.regexp " +"
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
open Qptypes
|
open Qptypes
|
||||||
|
|
||||||
type t =
|
type t =
|
||||||
@ -64,7 +64,7 @@ end = struct
|
|||||||
(x -. mu) *. ( x -. mu) /. sigma2
|
(x -. mu) *. ( x -. mu) /. sigma2
|
||||||
in
|
in
|
||||||
let pi =
|
let pi =
|
||||||
acos (-1.)
|
Float.acos (-1.)
|
||||||
in
|
in
|
||||||
let c =
|
let c =
|
||||||
1. /. (sqrt (sigma2 *. (pi +. pi)))
|
1. /. (sqrt (sigma2 *. (pi +. pi)))
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
|
|
||||||
type t =
|
type t =
|
||||||
| One_dimensional of float
|
| One_dimensional of float
|
||||||
| Multidimensional of (float array * int)
|
| Multidimensional of (float array * int)
|
||||||
with sexp
|
[@ deriving sexp]
|
||||||
|
|
||||||
let dimension = function
|
let dimension = function
|
||||||
| One_dimensional _ -> 1
|
| One_dimensional _ -> 1
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
type t with sexp
|
open Core
|
||||||
|
|
||||||
|
type t [@@ deriving sexp]
|
||||||
val to_float : ?idx:int -> t -> float
|
val to_float : ?idx:int -> t -> float
|
||||||
val to_float_array : t -> float array
|
val to_float_array : t -> float array
|
||||||
val of_float : float -> t
|
val of_float : float -> t
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std;;
|
open Core
|
||||||
|
|
||||||
type t =
|
type t =
|
||||||
| SGE
|
| SGE
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std;;
|
open Core
|
||||||
|
|
||||||
let _list = ref [] ;;
|
let _list = ref [] ;;
|
||||||
let _running = ref false;;
|
let _running = ref false;;
|
||||||
@ -90,9 +90,9 @@ let del pid =
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
(** Fork and exec a new process *)
|
(** Fork and exec a new process *)
|
||||||
let fork_exec ~prog ~args () =
|
let fork_exec ~prog ~argv () =
|
||||||
let pid =
|
let pid =
|
||||||
Unix.fork_exec ~prog ~args ()
|
Unix.fork_exec ~prog ~argv ()
|
||||||
in
|
in
|
||||||
|
|
||||||
let f () =
|
let f () =
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
MAIN=qmcchem
|
MAIN=qmcchem
|
||||||
# Main program to build
|
# Main program to build
|
||||||
|
|
||||||
PACKAGES=-package core,cryptokit,str,ZMQ,sexplib.syntax
|
PACKAGES=-package core,cryptokit,str,ZMQ
|
||||||
#,ppx_sexp_conv
|
#,ppx_sexp_conv
|
||||||
# Required opam packages, for example:
|
# Required opam packages, for example:
|
||||||
# PACKAGES=-package core,sexplib.syntax
|
# PACKAGES=-package core,sexplib.syntax
|
||||||
@ -10,7 +10,7 @@ THREAD=-thread
|
|||||||
# If you need threding support, use:
|
# If you need threding support, use:
|
||||||
# THREAD=-thread
|
# THREAD=-thread
|
||||||
|
|
||||||
SYNTAX=-syntax camlp4o
|
SYNTAX=
|
||||||
# If you need pre-processing, use:
|
# If you need pre-processing, use:
|
||||||
# SYNTAX=-syntax camlp4o
|
# SYNTAX=-syntax camlp4o
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ MAIN=
|
|||||||
|
|
||||||
PACKAGES=
|
PACKAGES=
|
||||||
# Required opam packages, for example:
|
# Required opam packages, for example:
|
||||||
# PACKAGES=-package core,sexplib.syntax
|
# PACKAGES=-package core
|
||||||
|
|
||||||
THREAD=
|
THREAD=
|
||||||
# If you need threding support, use:
|
# If you need threding support, use:
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std
|
open Core
|
||||||
|
|
||||||
|
|
||||||
let command =
|
let command =
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
open Core.Std;;
|
open Core
|
||||||
|
|
||||||
let input_data = "
|
let input_data = "
|
||||||
* Positive_float : float
|
* Positive_float : float
|
||||||
@ -156,12 +156,12 @@ let untouched = "
|
|||||||
|
|
||||||
let template = format_of_string "
|
let template = format_of_string "
|
||||||
module %s : sig
|
module %s : sig
|
||||||
type t with sexp
|
type t [@@ deriving sexp]
|
||||||
val to_%s : t -> %s
|
val to_%s : t -> %s
|
||||||
val of_%s : %s %s -> t
|
val of_%s : %s %s -> t
|
||||||
val to_string : t -> string
|
val to_string : t -> string
|
||||||
end = struct
|
end = struct
|
||||||
type t = %s with sexp
|
type t = %s [@@ deriving sexp]
|
||||||
let to_%s x = x
|
let to_%s x = x
|
||||||
let of_%s %s x = ( %s x )
|
let of_%s %s x = ( %s x )
|
||||||
let to_string x = %s.to_string x
|
let to_string x = %s.to_string x
|
||||||
@ -199,13 +199,13 @@ let parse_input input=
|
|||||||
|
|
||||||
let ezfio_template = format_of_string "
|
let ezfio_template = format_of_string "
|
||||||
module %s : sig
|
module %s : sig
|
||||||
type t with sexp
|
type t [@@ deriving sexp]
|
||||||
val to_%s : t -> %s
|
val to_%s : t -> %s
|
||||||
val get_max : unit -> %s
|
val get_max : unit -> %s
|
||||||
val of_%s : ?min:%s -> ?max:%s -> %s -> t
|
val of_%s : ?min:%s -> ?max:%s -> %s -> t
|
||||||
val to_string : t -> string
|
val to_string : t -> string
|
||||||
end = struct
|
end = struct
|
||||||
type t = %s with sexp
|
type t = %s [@@ deriving sexp]
|
||||||
let to_string x = %s.to_string x
|
let to_string x = %s.to_string x
|
||||||
let get_max () =
|
let get_max () =
|
||||||
if (Ezfio.has_%s ()) then
|
if (Ezfio.has_%s ()) then
|
||||||
@ -312,7 +312,7 @@ match msg with " ] @
|
|||||||
let () =
|
let () =
|
||||||
let input =
|
let input =
|
||||||
String.concat ~sep:"\n"
|
String.concat ~sep:"\n"
|
||||||
[ "open Core.Std\nlet warning = print_string\n\n" ;
|
[ "open Core\nlet warning = print_string\n\n" ;
|
||||||
parse_input input_data ;
|
parse_input input_data ;
|
||||||
parse_input_ezfio input_ezfio ;
|
parse_input_ezfio input_ezfio ;
|
||||||
create_ezfio_handler ();
|
create_ezfio_handler ();
|
||||||
|
Loading…
Reference in New Issue
Block a user