Exemple #1
0
            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();
            }
Exemple #2
0
            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));
            }
Exemple #3
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);
        }
Exemple #4
0
 public ScatterSignatureProvider(IScatter scatter)
 {
     Scatter = scatter;
 }
Exemple #5
0
            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);
                }
            }
Exemple #6
0
 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));
 }
Exemple #7
0
 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);
 }
Exemple #8
0
 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));
 }
Exemple #9
0
 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;
 }