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); } }
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); }
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)); }
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(); }