Use Patched version of ocamlmpi

This commit is contained in:
Anthony Scemama 2020-02-04 11:46:24 +01:00
parent 774d977d99
commit a2859ad69c
3 changed files with 15 additions and 19 deletions

View File

@ -123,25 +123,18 @@ module InterNode = struct
Mpi.group_incl world_group ranks
in
let result =
Some (Mpi.comm_create Mpi.comm_world new_group)
in
try
ignore @@ List.find (fun x -> x = world_rank) @@ Array.to_list ranks;
result
with Not_found -> None
Mpi.comm_create Mpi.comm_world new_group
let rank =
match comm with
| Some c-> Mpi.comm_rank c
| None -> -1
if comm <> Mpi.comm_none then
Mpi.comm_rank c
else 0
let master = rank = 0
let broadcast_generic broadcast x =
match comm with
| Some comm ->
if Mpi.comm_rank <> Mpi.comm_none then
begin
let x =
if master then Some (Lazy.force x)
@ -150,15 +143,18 @@ module InterNode = struct
match broadcast x 0 comm with
| Some x -> x
| None -> assert false
end
| None -> Lazy.force x
else
Lazy.force x
let broadcast x = broadcast_generic Mpi.broadcast x
(* TODO : temporary single-node fix
let broadcast x = Lazy.force x
*)
let barrier () =
match comm with
| Some comm -> Mpi.barrier comm
| None -> ()
if comm <> Mpi.comm_none then
Mpi.barrier comm
else ()
let _ = barrier ()

View File

@ -60,7 +60,7 @@ end
(** {5 Inter-node operations} *)
module InterNode : sig
val comm : Mpi.communicator option
val comm : Mpi.communicator
(** MPI Communicator among the master processes of the each node *)
val rank : Mpi.rank

View File

@ -96,7 +96,7 @@ let () =
Simulation.of_filenames ~f12 ~charge ~multiplicity ~nuclei:nuclei_file basis_file
in
let hf = HartreeFock.make ~guess:`Huckel simulation in
let hf = HartreeFock.make ~guess:`Hcore simulation in
if Parallel.master then
Format.fprintf ppf "@[%a@]@." HartreeFock.pp hf;