sig
exception Error of string
type communicator
type rank = int
val comm_world : Mpi.communicator
external comm_size : Mpi.communicator -> int = "caml_mpi_comm_size"
external comm_rank : Mpi.communicator -> Mpi.rank = "caml_mpi_comm_rank"
type tag = int
val send : 'a -> Mpi.rank -> Mpi.tag -> Mpi.communicator -> unit
val receive : Mpi.rank -> Mpi.tag -> Mpi.communicator -> 'a
val receive_status :
Mpi.rank -> Mpi.tag -> Mpi.communicator -> 'a * Mpi.rank * Mpi.tag
val probe : Mpi.rank -> Mpi.tag -> Mpi.communicator -> Mpi.rank * Mpi.tag
val any_tag : Mpi.tag
val any_source : Mpi.rank
val send_int : int -> Mpi.rank -> Mpi.tag -> Mpi.communicator -> unit
val receive_int : Mpi.rank -> Mpi.tag -> Mpi.communicator -> int
val send_float : float -> Mpi.rank -> Mpi.tag -> Mpi.communicator -> unit
val receive_float : Mpi.rank -> Mpi.tag -> Mpi.communicator -> float
val send_int_array :
int array -> Mpi.rank -> Mpi.tag -> Mpi.communicator -> unit
val receive_int_array :
int array -> Mpi.rank -> Mpi.tag -> Mpi.communicator -> unit
val send_float_array :
float array -> Mpi.rank -> Mpi.tag -> Mpi.communicator -> unit
val receive_float_array :
float array -> Mpi.rank -> Mpi.tag -> Mpi.communicator -> unit
val barrier : Mpi.communicator -> unit
val broadcast : 'a -> Mpi.rank -> Mpi.communicator -> 'a
val broadcast_opt : 'a option -> Mpi.rank -> Mpi.communicator -> 'a
val broadcast_int : int -> Mpi.rank -> Mpi.communicator -> int
val broadcast_float : float -> Mpi.rank -> Mpi.communicator -> float
val broadcast_int_array : int array -> Mpi.rank -> Mpi.communicator -> unit
val broadcast_float_array :
float array -> Mpi.rank -> Mpi.communicator -> unit
val scatter : 'a array -> Mpi.rank -> Mpi.communicator -> 'a
val scatter_int : int array -> Mpi.rank -> Mpi.communicator -> int
val scatter_float : float array -> Mpi.rank -> Mpi.communicator -> float
val scatter_int_array :
int array -> int array -> Mpi.rank -> Mpi.communicator -> unit
val scatter_float_array :
float array -> float array -> Mpi.rank -> Mpi.communicator -> unit
val gather : 'a -> Mpi.rank -> Mpi.communicator -> 'a array
val gather_int : int -> int array -> Mpi.rank -> Mpi.communicator -> unit
val gather_float :
float -> float array -> Mpi.rank -> Mpi.communicator -> unit
val gather_int_array :
int array -> int array -> Mpi.rank -> Mpi.communicator -> unit
val gather_float_array :
float array -> float array -> Mpi.rank -> Mpi.communicator -> unit
val allgather : 'a -> Mpi.communicator -> 'a array
val allgather_int : int -> int array -> Mpi.communicator -> unit
val allgather_float : float -> float array -> Mpi.communicator -> unit
val allgather_int_array :
int array -> int array -> Mpi.communicator -> unit
val allgather_float_array :
float array -> float array -> Mpi.communicator -> unit
type intop =
Int_max
| Int_min
| Int_sum
| Int_prod
| Int_land
| Int_lor
| Int_xor
type floatop = Float_max | Float_min | Float_sum | Float_prod
val reduce_int : int -> Mpi.intop -> Mpi.rank -> Mpi.communicator -> int
val reduce_float :
float -> Mpi.floatop -> Mpi.rank -> Mpi.communicator -> float
val reduce_int_array :
int array ->
int array -> Mpi.intop -> Mpi.rank -> Mpi.communicator -> unit
val reduce_float_array :
float array ->
float array -> Mpi.floatop -> Mpi.rank -> Mpi.communicator -> unit
val allreduce_int : int -> Mpi.intop -> Mpi.communicator -> int
val allreduce_float : float -> Mpi.floatop -> Mpi.communicator -> float
val allreduce_int_array :
int array -> int array -> Mpi.intop -> Mpi.communicator -> unit
val allreduce_float_array :
float array -> float array -> Mpi.floatop -> Mpi.communicator -> unit
val scan_int : int -> Mpi.intop -> Mpi.communicator -> int
val scan_float : float -> Mpi.floatop -> Mpi.communicator -> float
val scan_int_array :
int array -> int array -> Mpi.intop -> Mpi.communicator -> unit
val scan_float_array :
float array -> float array -> Mpi.floatop -> Mpi.communicator -> unit
val comm_compare : Mpi.communicator -> Mpi.communicator -> bool
type color = int
val comm_split : Mpi.communicator -> Mpi.color -> int -> Mpi.communicator
val color_none : Mpi.color
val cart_create :
Mpi.communicator -> int array -> bool array -> bool -> Mpi.communicator
val dims_create : int -> int array -> int array
val cart_rank : Mpi.communicator -> int array -> Mpi.rank
val cart_coords : Mpi.communicator -> Mpi.rank -> int array
type group
val comm_create : Mpi.communicator -> Mpi.group -> Mpi.communicator
val group_size : Mpi.group -> int
val group_rank : Mpi.group -> Mpi.rank
val group_translate_ranks :
Mpi.group -> Mpi.rank array -> Mpi.group -> Mpi.rank array
val comm_group : Mpi.communicator -> Mpi.group
val group_union : Mpi.group -> Mpi.group -> Mpi.group
val group_intersection : Mpi.group -> Mpi.group -> Mpi.group
val group_difference : Mpi.group -> Mpi.group -> Mpi.group
val group_incl : Mpi.group -> Mpi.rank array -> Mpi.group
val group_excl : Mpi.group -> Mpi.rank array -> Mpi.group
type group_range = {
range_first : int;
range_last : int;
range_stride : int;
}
val group_range_incl : Mpi.group -> Mpi.group_range array -> Mpi.group
val group_range_excl : Mpi.group -> Mpi.group_range array -> Mpi.group
external wtime : unit -> float = "caml_mpi_wtime"
end