public void some_method_1(int arg1, int arg2, int arg3, IScatter <int> arg4, IScatter <int> arg5, IScatter <int> arg6) { MPI.RequestList reqList = new MPI.RequestList(); sendArguments(OPERATION_1, arg1, arg2, arg3, arg4, arg5, arg6, ref reqList); receiveResult <int> (ref reqList, OPERATION_1); reqList.WaitAll(); }
public IScan <int> some_method_7(int arg1, int arg2, int arg3, IScatter <int> arg4, IScatter <int> arg5, IScatter <int> arg6) { MPI.RequestList reqList = new MPI.RequestList(); sendArguments(OPERATION_7, arg1, arg2, arg3, arg4, arg5, arg6, ref reqList); receiveResult <int> (ref reqList, OPERATION_7); IList <MPI.Request> reqList_complete = reqList.WaitAll(); int[] result_values = takeResults(reqList_complete); return(Scan <int> .create(channel, result_values, sum, 0)); }
void handleOperation7(IList <MPI.Request> reqList_complete) { int[] arg1_values = new int[channel.RemoteSize]; int[] arg2_values = new int[channel.RemoteSize]; int[] arg3_values = new int[channel.RemoteSize]; int[] arg4_values = new int[channel.RemoteSize]; int[] arg5_values = new int[channel.RemoteSize]; int[] arg6_values = new int[channel.RemoteSize]; foreach (MPI.Request req in reqList_complete) { MPI.ReceiveRequest recv_req = (MPI.ReceiveRequest)req; MPI.CompletedStatus status = recv_req.Test(); Tuple <int, int, int, int, int, int> value = (Tuple <int, int, int, int, int, int>)recv_req.GetValue(); arg1_values [status.Source] = value.Item1; arg2_values [status.Source] = value.Item2; arg3_values [status.Source] = value.Item3; arg4_values [status.Source] = value.Item4; arg5_values [status.Source] = value.Item5; arg6_values [status.Source] = value.Item6; } IGather <int> arg1 = Gather <int> .create(channel, arg1_values); IReduce <int> arg2 = Reduce <int> .create(channel, arg2_values, sum, 0); IScan <int> arg3 = Scan <int> .create(channel, arg3_values, sum, 0); IGather <int> arg4 = Gather <int> .create(channel, arg4_values); IReduce <int> arg5 = Reduce <int> .create(channel, arg5_values, sum, 0); IScan <int> arg6 = Scan <int> .create(channel, arg6_values, sum, 0); IScatter <int> result = service.some_method_7(arg1, arg2, arg3, arg4, arg5, arg6); returnResult(result.Value, OPERATION_7); }
public ScatterSignatureProvider(IScatter scatter) { Scatter = scatter; }
private void sendArguments(int operation_tag, int arg1, int arg2, int arg3, IScatter <int> arg4, IScatter <int> arg5, IScatter <int> arg6, ref MPI.RequestList reqList) { int remote_size = channel.RemoteSize; for (int server = 0; server < remote_size; server++) { if (channel.Rank == 0) { channel.Send <int> (operation_tag, server, OPERATION_TAG); } int arg1_ = arg1; int arg2_ = arg2; int arg3_ = arg3; int arg4_ = arg4.Value[server]; int arg5_ = arg5.Value[server]; int arg6_ = arg6.Value[server]; Tuple <int, int, int, int, int, int> send_value = new Tuple <int, int, int, int, int, int> (arg1_, arg2_, arg3_, arg4_, arg5_, arg6_); MPI.Request req = channel.ImmediateSend <Tuple <int, int, int, int, int, int> > (send_value, server, operation_tag); reqList.Add(req); } }
public IScan <int> some_method_7(int arg1, int arg2, int arg3, IScatter <int> arg4, IScatter <int> arg5, IScatter <int> arg6) { return(Channel.some_method_7(arg1, arg2, arg3, arg4, arg5, arg6)); }
public void some_method_1(int arg1, int arg2, int arg3, IScatter <int> arg4, IScatter <int> arg5, IScatter <int> arg6) { Channel.some_method_1(arg1, arg2, arg3, arg4, arg5, arg6); }
public IScan <int> some_method_7(int arg1, int arg2, int arg3, IScatter <int> arg4, IScatter <int> arg5, IScatter <int> arg6) { return(binding_client_object.some_method_7(arg1, arg2, arg3, arg4, arg5, arg6)); }
public void some_method_1(int arg1, int arg2, int arg3, IScatter <int> arg4, IScatter <int> arg5, IScatter <int> arg6) { binding_client_object.some_method_1(arg1, arg2, arg3, arg4, arg5, arg6); }
public ScatterUnitTestCases(IScatter scatter, Network network) { Scatter = scatter; Network = network; }