Пример #1
0
        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);
            }
        }
Пример #2
0
        public object newInstance(int _id)
        {
            object o = newInstance();
            ICliqueNodeInstance page = (ICliqueNodeInstance)o;

            page.IdInstance = _id;
            return(this.Instance = page);
        }
        private IDictionary <int, IList <int> > splitting_In_Left_Pivot_Right(IIteratorInstance <ICliqueNode> input_instance_value, string pivot, HashSet <int> P, HashSet <int> X)
        {
            IDictionary <int, IList <int> > res = new Dictionary <int, IList <int> >();
            int    pivot_number = int.Parse(pivot);
            object o;

            //Debug Block start
//			string saida = "TaskRank="+this.Rank+" Chave="+pivot+" {"+System.Environment.NewLine;
            //Debug Block end

            while (input_instance_value.fetch_next(out o))
            {
                ICliqueNodeInstance node_instance = (ICliqueNodeInstance)o;
                if (pivot_number < node_instance.IdInstance)
                {
                    P.Add(node_instance.IdInstance);
                }
                if (pivot_number > node_instance.IdInstance)
                {
                    X.Add(node_instance.IdInstance);
                }
                res [node_instance.IdInstance] = node_instance.NeighborsInstance;

                //Debug Block start
//					saida = saida+"<"+node_instance.IdInstance+", [";
//					IEnumerator<int> neighbor = node_instance.NeighborsInstance.GetEnumerator ();
//					while (neighbor.MoveNext ()) {
//						saida = saida + neighbor.Current + " ";
//					}
//					saida = saida + "]>"+System.Environment.NewLine;
                //Debug Block end
            }
//			saida = saida + "}"+System.Environment.NewLine;
//			using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"./logCliqueReduce"+Rank, true)){
//				file.WriteLine(saida);
//			}
            return(res);
        }
Пример #4
0
        public override void main()
        {
            IStringInstance input_data_instance = (IStringInstance)Input_data.Instance;

            input_data_instance.Value = readInput();

            long t0 = (long)(DateTime.UtcNow - (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc))).TotalMilliseconds;

            Clique.go();
            long t1 = (long)(DateTime.UtcNow - (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc))).TotalMilliseconds;

            IIteratorInstance <IKVPair <IString, ICliqueNode> > output_data_instance = (IIteratorInstance <IKVPair <IString, ICliqueNode> >)Output_data.Instance;
            int    sum = 0;
            object o;

            while (output_data_instance.fetch_next(out o))
            {
                IKVPairInstance <IString, ICliqueNode> KMV = (IKVPairInstance <IString, ICliqueNode>)o;
                IStringInstance     pivo       = (IStringInstance)KMV.Key;
                ICliqueNodeInstance cliqueNode = (ICliqueNodeInstance)KMV.Value;
                sum += cliqueNode.IdInstance;
            }
            clearWriteFile("./outCliqueApp", "Soma:" + sum + "Tempo:" + (t1 - t0));
        }
Пример #5
0
        private void createCliqueNodes(string fileContent)
        {
            IIteratorInstance <IKVPair <IInteger, ICliqueNode> >       output     = (IIteratorInstance <IKVPair <IInteger, ICliqueNode> >)Output_data.Instance;
            IDictionary <int, IDictionary <int, ICliqueNodeInstance> > dictionary = new Dictionary <int, IDictionary <int, ICliqueNodeInstance> >();

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

            string[] lines = fileContent.Split(new char[] { System.Environment.NewLine[0] });
            foreach (string line in lines)
            {
                if (!line.Trim().Equals(""))
                {
                    ICliqueNodeInstance V, W, temp = null;
                    IDictionary <int, ICliqueNodeInstance> 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, ICliqueNode> kvpair = (IKVPairInstance <IInteger, ICliqueNode>)Output_data.createItem();

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

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

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

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

                        referenceW           = new Dictionary <int, ICliqueNodeInstance> ();
                        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);
                        referenceW [KEY [0]] = V;
                        W.NeighborsInstance.Add(V.IdInstance);
                    }
                }
            }
            IEnumerator <IKVPairInstance <IInteger, ICliqueNode> > iterator = PAGENODES.GetEnumerator();

            while (iterator.MoveNext())
            {
                IKVPairInstance <IInteger, ICliqueNode> kvpair = iterator.Current;
                output.put(kvpair);
            }
            output.finish();
        }