示例#1
0
        public override void main()
        {
            Trace.WriteLine(Rank + ": MAP FUNCTION IDENTITY #1 " + Output_data.Instance.GetType());

            IIteratorInstance <IKVPair <OMK, OMV> > output = (IIteratorInstance <IKVPair <OMK, OMV> >)Output_data.Instance;

            object test = Output_data.createItem();

            Trace.WriteLine(Rank + ": MAP FUNCTION IDENTITY #3" + test.GetType());

            IKVPairInstance <IMK, IMV> kvpair = (IKVPairInstance <IMK, IMV>)Output_data.createItem();

            Trace.WriteLine(Rank + ": MAP FUNCTION IDENTITY #4" + " - " + Input_key.Instance.GetType());

            kvpair.Key   = Input_key.Instance;
            kvpair.Value = Input_value.Instance;
            output.put(kvpair);
        }
        public override void main()
        {
            IStringInstance input = (IStringInstance)Input_value.Instance;
            IIteratorInstance <IKVPair <IString, IString> > output = (IIteratorInstance <IKVPair <IString, IString> >)Output_data.Instance;

            if (!input.Value.Equals(""))
            {
                string[] words = input.Value.Split(' ');
                IKVPairInstance <IString, IString> kvpair = (IKVPairInstance <IString, IString>)Output_data.createItem();
                ((IStringInstance)kvpair.Key).Value   = words [0];
                ((IStringInstance)kvpair.Value).Value = words [1] + " " + words [2];
                output.put(kvpair);
                if (!words [1].Equals("c") && !words [1].Equals("d"))
                {
                    IKVPairInstance <IString, IString> kvpair2 = (IKVPairInstance <IString, IString>)Output_data.createItem();
                    ((IStringInstance)kvpair2.Key).Value   = words [1];
                    ((IStringInstance)kvpair2.Value).Value = "i" + " " + words [0];
                    output.put(kvpair2);
                }
            }
        }
        public override void main()
        {
            IIntegerInstance  input_key   = (IIntegerInstance)Input_key.Instance;
            IPageNodeInstance input_value = (IPageNodeInstance)Input_value.Instance;
            IIteratorInstance <IKVPair <IString, IDouble> > output = (IIteratorInstance <IKVPair <IString, IDouble> >)Output_data.Instance;

            double slice = input_value.PgrankInstance;
            int    size  = input_value.NeighborsInstance.Count;

            IEnumerator <int> iterator = input_value.NeighborsInstance.GetEnumerator();

            while (iterator.MoveNext())
            {
                string n = iterator.Current.ToString();
                IKVPairInstance <IString, IDouble> kvpair = (IKVPairInstance <IString, IDouble>)Output_data.createItem();
                ((IStringInstance)kvpair.Key).Value   = n;
                ((IDoubleInstance)kvpair.Value).Value = slice / size;
                output.put(kvpair);
            }
            if (size == 0)
            {
                IKVPairInstance <IString, IDouble> kvpair = (IKVPairInstance <IString, IDouble>)Output_data.createItem();
                ((IStringInstance)kvpair.Key).Value   = "X";
                ((IDoubleInstance)kvpair.Value).Value = slice;
                output.put(kvpair);
            }
            IKVPairInstance <IString, IDouble> KV = (IKVPairInstance <IString, IDouble>)Output_data.createItem();

            ((IStringInstance)KV.Key).Value   = input_key.Value.ToString();
            ((IDoubleInstance)KV.Value).Value = 0.0;
            output.put(KV);
        }
示例#4
0
        public override void main()
        {
            Trace.WriteLine(WorldComm.Rank + ": STARTING BREAK IN LINE  (SPLIT FUNCTION)");
            IStringInstance input_data_instance = (IStringInstance)Input_data.Instance;
            IIteratorInstance <IKVPair <IInteger, IString> > output_data_instance = (IIteratorInstance <IKVPair <IInteger, IString> >)Output_data.Instance;

            string s = input_data_instance.Value;

            string[] lines        = s.Split(new char[] { System.Environment.NewLine[0] });
            int      line_counter = 0;

            foreach (string line in lines)
            {
                if (!line.Trim().Equals(""))
                {
                    Trace.WriteLine(WorldComm.Rank + ": LINE = " + line);
                    IKVPairInstance <IInteger, IString> line_pair = (IKVPairInstance <IInteger, IString>)Output_data.createItem();
                    ((IIntegerInstance)line_pair.Key).Value  = line_counter++;
                    ((IStringInstance)line_pair.Value).Value = line;
                    output_data_instance.put(line_pair);
                }
            }

            Trace.WriteLine(WorldComm.Rank + ": FINISH BREAK IN LINES #1 !!! " + output_data_instance.GetHashCode());
            output_data_instance.finish();
            Trace.WriteLine(WorldComm.Rank + ": FINISH BREAK IN LINES #2 !!!");
        }
示例#5
0
        private void createPageNodes(string fileContent)
        {
            IIteratorInstance <IKVPair <IInteger, IPageNode> >       output     = (IIteratorInstance <IKVPair <IInteger, IPageNode> >)Output_data.Instance;
            IDictionary <int, IDictionary <int, IPageNodeInstance> > dictionary = new Dictionary <int, IDictionary <int, IPageNodeInstance> >();

            IList <IKVPairInstance <IInteger, IPageNode> > PAGENODES = new List <IKVPairInstance <IInteger, IPageNode> >();

            string[] lines = fileContent.Split(new char[] { System.Environment.NewLine[0] });
            foreach (string line in lines)
            {
                if (!line.Trim().Equals(""))
                {
                    IPageNodeInstance V, W, temp = null;
                    IDictionary <int, IPageNodeInstance> referenceV, referenceW = null;

                    int[]    KEY  = new int[2];
                    string[] vwID = line.Split(' ');
                    for (int k = 0; k < 2; k++)
                    {
                        KEY [k] = int.Parse(vwID [k]);
                    }
                    if (!dictionary.TryGetValue(KEY [0], out referenceV))
                    {
                        IKVPairInstance <IInteger, IPageNode> kvpair = (IKVPairInstance <IInteger, IPageNode>)Output_data.createItem();

                        V            = (IPageNodeInstance)kvpair.Value;
                        V.IdInstance = KEY [0];
                        ((IIntegerInstance)kvpair.Key).Value = V.IdInstance;

                        referenceV           = new Dictionary <int, IPageNodeInstance> ();
                        dictionary [KEY [0]] = referenceV;
                        referenceV [KEY [0]] = V;

                        PAGENODES.Add(kvpair);
                    }
                    if (!dictionary.TryGetValue(KEY [1], out referenceW))
                    {
                        IKVPairInstance <IInteger, IPageNode> kvpair = (IKVPairInstance <IInteger, IPageNode>)Output_data.createItem();

                        W            = (IPageNodeInstance)kvpair.Value;
                        W.IdInstance = KEY [1];
                        ((IIntegerInstance)kvpair.Key).Value = W.IdInstance;

                        referenceW           = new Dictionary <int, IPageNodeInstance> ();
                        dictionary [KEY [1]] = referenceW;
                        referenceW [KEY [1]] = W;

                        PAGENODES.Add(kvpair);
                    }
                    if (!referenceV.TryGetValue(KEY [1], out temp))
                    {
                        V = referenceV [KEY [0]];
                        W = referenceW [KEY [1]];
                        referenceV [KEY [1]] = W;
                        V.NeighborsInstance.Add(W.IdInstance);
                    }
                }
            }
            IEnumerator <IKVPairInstance <IInteger, IPageNode> > iterator = PAGENODES.GetEnumerator();

            while (iterator.MoveNext())
            {
                IKVPairInstance <IInteger, IPageNode> kvpair = iterator.Current;
                IIntegerInstance k = (IIntegerInstance)kvpair.Key;
                output.put(kvpair);
                dic [k.Value] = kvpair;
            }
            output.finish();
        }
        public override void main()
        {
            Trace.WriteLine(Rank + ": START SPLIT PATH INFO 1");

            IIteratorInstance <IPathInfo> input_data_instance = (IIteratorInstance <IPathInfo>)Input_data.Instance;
            IIteratorInstance <IKVPair <IInteger, IPathInfo> > output_data_instance = (IIteratorInstance <IKVPair <IInteger, IPathInfo> >)Output_data.Instance;

            Trace.WriteLine(Rank + ": START SPLIT PATH INFO 2");

            object path_info;

            while (input_data_instance.fetch_next(out path_info))
            {
                Trace.WriteLine(Rank + ": LOOP SPLIT PATH INFO " + path_info.GetType());
                IPathInfoInstance path_info_instance = (IPathInfoInstance)path_info;
                IKVPairInstance <IInteger, IPathInfo> path_info_output = (IKVPairInstance <IInteger, IPathInfo>)Output_data.createItem();


                ((IIntegerInstance)path_info_output.Key).Value = ((Info)path_info_instance.Value).vertex;
                path_info_output.Value = path_info_instance;
                Trace.WriteLine(Rank + ": vertex = " + path_info_output.Key);
                output_data_instance.put(path_info_output);
            }

            output_data_instance.finish();

            Trace.Write(Rank + ": STOP SPLIT PATH INFO ");
        }
        public override void main()
        {
            IStringInstance input_value_instance = (IStringInstance)Input_value.Instance;
            IIteratorInstance <IKVPair <IString, IInteger> > output_value_instance = (IIteratorInstance <IKVPair <IString, IInteger> >)Output_data.Instance;

            string input_string = input_value_instance.Value;
            string chars        = " ;?.!:,*<>+";

            string[] words = input_string.Split(new char[] { chars[0], chars[1], chars[2], chars[3], chars[4], chars[5], chars[6], chars[7], chars[8], chars[9], chars[10] });

            IDictionary <string, int> index = new Dictionary <string, int>();

            foreach (string word_ in words)
            {
                string word = word_.ToLower().Trim();
                if (word != "")
                {
                    int counter;
                    if (index.TryGetValue(word, out counter))
                    {
                        index.Remove(word);
                    }
                    else
                    {
                        counter = 0;
                    }
                    index.Add(word, counter + 1);
                }
            }

            foreach (KeyValuePair <string, int> occurrences in index)
            {
                //	Trace.WriteLine(WorldComm.Rank + ": MAP (WORD COUNTER) - " + occurrences.Key + ":" + occurrences.Value);
                IKVPairInstance <IString, IInteger> item = (IKVPairInstance <IString, IInteger>)Output_data.createItem();
                ((IStringInstance)item.Key).Value    = occurrences.Key;
                ((IIntegerInstance)item.Value).Value = occurrences.Value;
                output_value_instance.put(item);
            }
        }
        public override void main()
        {
            IIteratorInstance <IKVPair <IString, ICliqueNode> > output = (IIteratorInstance <IKVPair <IString, ICliqueNode> >)Output_data.Instance;
            IIntegerInstance    input_key   = (IIntegerInstance)Input_key.Instance;
            ICliqueNodeInstance input_value = (ICliqueNodeInstance)Input_value.Instance;


            //Debug Start
//			string saida = "";
//			IIntegerInstance I = input_key;
//			ICliqueNodeInstance N = input_value;
//			saida = "TaskRank="+this.Rank+" <" + I.Value + ", [";
//			IEnumerator<int> neighbor = N.NeighborsInstance.GetEnumerator ();
//			while (neighbor.MoveNext ()) {
//				saida = saida + neighbor.Current + " ";
//			}
//			saida = saida + "]>";
//			using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"./logCliqueMap"+Rank, true)){
//				file.WriteLine(saida);
//			}
            //Debug End


            IEnumerator <int> iterator = input_value.NeighborsInstance.GetEnumerator();

            while (iterator.MoveNext())
            {
                IKVPairInstance <IString, ICliqueNode> KV = (IKVPairInstance <IString, ICliqueNode>)Output_data.createItem();
                ((IStringInstance)KV.Key).Value                   = iterator.Current.ToString();
                ((ICliqueNodeInstance)KV.Value).IdInstance        = input_value.IdInstance;
                ((ICliqueNodeInstance)KV.Value).NeighborsInstance = input_value.NeighborsInstance;
                output.put(KV);
            }
        }