<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Mpi" rel="Chapter" href="Mpi.html"><title>Mpi</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">exception</span> <span class="constructor">Error</span> <span class="keyword">of</span> string<br> <span class="keyword">type</span> communicator<br> <span class="keyword">type</span> rank = int<br> <span class="keyword">val</span> comm_world : <span class="constructor">Mpi</span>.communicator<br> <span class="keyword">external</span> comm_size : <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> int = <span class="string">"caml_mpi_comm_size"</span><br> <span class="keyword">external</span> comm_rank : <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank = <span class="string">"caml_mpi_comm_rank"</span><br> <span class="keyword">type</span> tag = int<br> <span class="keyword">val</span> send : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> receive : <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> receive_status :<br> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="keywordsign">'</span>a * <span class="constructor">Mpi</span>.rank * <span class="constructor">Mpi</span>.tag<br> <span class="keyword">val</span> probe : <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank * <span class="constructor">Mpi</span>.tag<br> <span class="keyword">val</span> any_tag : <span class="constructor">Mpi</span>.tag<br> <span class="keyword">val</span> any_source : <span class="constructor">Mpi</span>.rank<br> <span class="keyword">val</span> send_int : int <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> receive_int : <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> send_float : float <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> receive_float : <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> send_int_array :<br> int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> receive_int_array :<br> int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> send_float_array :<br> float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> receive_float_array :<br> float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.tag <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> barrier : <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> broadcast : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> broadcast_opt : <span class="keywordsign">'</span>a option <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> broadcast_int : int <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> broadcast_float : float <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> broadcast_int_array : int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> broadcast_float_array :<br> float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> scatter : <span class="keywordsign">'</span>a array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> scatter_int : int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> scatter_float : float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> scatter_int_array :<br> int array <span class="keywordsign">-></span> int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> scatter_float_array :<br> float array <span class="keywordsign">-></span> float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> gather : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="keywordsign">'</span>a array<br> <span class="keyword">val</span> gather_int : int <span class="keywordsign">-></span> int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> gather_float :<br> float <span class="keywordsign">-></span> float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> gather_int_array :<br> int array <span class="keywordsign">-></span> int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> gather_float_array :<br> float array <span class="keywordsign">-></span> float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> allgather : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="keywordsign">'</span>a array<br> <span class="keyword">val</span> allgather_int : int <span class="keywordsign">-></span> int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> allgather_float : float <span class="keywordsign">-></span> float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> allgather_int_array :<br> int array <span class="keywordsign">-></span> int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> allgather_float_array :<br> float array <span class="keywordsign">-></span> float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">type</span> intop =<br> <span class="constructor">Int_max</span><br> <span class="keywordsign">|</span> <span class="constructor">Int_min</span><br> <span class="keywordsign">|</span> <span class="constructor">Int_sum</span><br> <span class="keywordsign">|</span> <span class="constructor">Int_prod</span><br> <span class="keywordsign">|</span> <span class="constructor">Int_land</span><br> <span class="keywordsign">|</span> <span class="constructor">Int_lor</span><br> <span class="keywordsign">|</span> <span class="constructor">Int_xor</span><br> <span class="keyword">type</span> floatop = <span class="constructor">Float_max</span> <span class="keywordsign">|</span> <span class="constructor">Float_min</span> <span class="keywordsign">|</span> <span class="constructor">Float_sum</span> <span class="keywordsign">|</span> <span class="constructor">Float_prod</span><br> <span class="keyword">val</span> reduce_int : int <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.intop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> reduce_float :<br> float <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.floatop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> reduce_int_array :<br> int array <span class="keywordsign">-></span><br> int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.intop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> reduce_float_array :<br> float array <span class="keywordsign">-></span><br> float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.floatop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> allreduce_int : int <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.intop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> allreduce_float : float <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.floatop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> allreduce_int_array :<br> int array <span class="keywordsign">-></span> int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.intop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> allreduce_float_array :<br> float array <span class="keywordsign">-></span> float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.floatop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> scan_int : int <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.intop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> scan_float : float <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.floatop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> float<br> <span class="keyword">val</span> scan_int_array :<br> int array <span class="keywordsign">-></span> int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.intop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> scan_float_array :<br> float array <span class="keywordsign">-></span> float array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.floatop <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> comm_compare : <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> bool<br> <span class="keyword">type</span> color = int<br> <span class="keyword">val</span> comm_split : <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.color <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator<br> <span class="keyword">val</span> color_none : <span class="constructor">Mpi</span>.color<br> <span class="keyword">val</span> cart_create :<br> <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> int array <span class="keywordsign">-></span> bool array <span class="keywordsign">-></span> bool <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator<br> <span class="keyword">val</span> dims_create : int <span class="keywordsign">-></span> int array <span class="keywordsign">-></span> int array<br> <span class="keyword">val</span> cart_rank : <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> int array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank<br> <span class="keyword">val</span> cart_coords : <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank <span class="keywordsign">-></span> int array<br> <span class="keyword">type</span> group<br> <span class="keyword">val</span> comm_create : <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.communicator<br> <span class="keyword">val</span> group_size : <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> group_rank : <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank<br> <span class="keyword">val</span> group_translate_ranks :<br> <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank array<br> <span class="keyword">val</span> comm_group : <span class="constructor">Mpi</span>.communicator <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group<br> <span class="keyword">val</span> group_union : <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group<br> <span class="keyword">val</span> group_intersection : <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group<br> <span class="keyword">val</span> group_difference : <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group<br> <span class="keyword">val</span> group_incl : <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group<br> <span class="keyword">val</span> group_excl : <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.rank array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group<br> <span class="keyword">type</span> group_range = {<br> range_first : int;<br> range_last : int;<br> range_stride : int;<br> }<br> <span class="keyword">val</span> group_range_incl : <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group_range array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group<br> <span class="keyword">val</span> group_range_excl : <span class="constructor">Mpi</span>.group <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group_range array <span class="keywordsign">-></span> <span class="constructor">Mpi</span>.group<br> <span class="keyword">external</span> wtime : unit <span class="keywordsign">-></span> float = <span class="string">"caml_mpi_wtime"</span><br> <span class="keyword">end</span></code></body></html>