public override void BeginHandler(BeginSignalReader beginsignal) { string strLine; graphsize = 0; try { FileStream aFile = new FileStream("E:\\trinity\\Graph\\facebook_combined.txt", FileMode.Open); StreamReader sr = new StreamReader(aFile); strLine = sr.ReadLine(); HashSet <long> tmp = new HashSet <long>(); long head, neighbor, lasthead; lasthead = -1; HashSet <long> tmpset; tmpset = new HashSet <long>(); while (strLine != null) { String[] number = strLine.Split(' '); head = Convert.ToInt32(number[0]); //Console.WriteLine(head); neighbor = Convert.ToInt32(number[1]); using (var tmpn = Global.LocalStorage.UseNode(head)) { // Console.WriteLine(tmpn.name); if (tmpn.flag == 0) { tmpn.flag = 1; } tmpn.neighbors.Add(neighbor); } using (var tmpn = Global.LocalStorage.UseNode(neighbor)) { if (tmpn.flag == 0) { tmpn.flag = 1; } tmpn.neighbors.Add(head); } //Console.WriteLine(strLine); strLine = sr.ReadLine(); } graphsize = 5000; sr.Close(); } catch (IOException ex) { Console.WriteLine("An IOException has been thrown!"); Console.WriteLine(ex.ToString()); Console.ReadLine(); } }
public int resultNum = 0; //用于记录找到的匹配子图的个数,因为一般情况下我们不需要所有的也看不完,所以这里我们设定超过1024就不找了 public override void BeginProxyHandler(BeginSignalReader bsr) { NodeSet[] Q = new NodeSet[2]; Q[0].set = new List <long>(); Q[1].set = new List <long>(); Q[0].headid = 5001; Q[0].set.Add(5002); Q[0].set.Add(5005); Q[1].headid = 5002; Q[1].set.Add(5004); Q[1].set.Add(5005); int slave_count = Global.SlaveCount; sl.set = new List <NodeSet>(); Console.WriteLine(slave_count); //Console.ReadLine(); // ResultReader[][] rr = new ResultReader[2][slave_count]; for (int q = 0; q < 2; q++) { rr[q] = new ResultReader[slave_count]; for (int i = 0; i < slave_count; i++) { Global.CloudStorage.TellSlaveIDToGraphSlave(i, new SlaveIDWriter(i)); //Console.WriteLine("slave id : {0}", i); Global.CloudStorage.GetSameLabelSetToGraphSlave(i, new SameLabelWriter(sl.set)); Console.WriteLine("q{0} to slave{1}", q, i); rr[q][i] = Global.CloudStorage.QueryToGraphSlave(i, new NodeSetWriter(Q[q].headid, Q[q].headname, Q[q].headlabel, Q[q].set.ToList())); rr[q][i].samelabel.ForEach((tmp) => { //Console.WriteLine(tmp.headid); sl.set.Add(tmp); }); Console.WriteLine("Done!!"); Console.WriteLine(); Console.WriteLine(); // rr[q][i].set.ForEach((tmp1) => //{ // Console.WriteLine(tmp1.headid); // tmp1.set.ForEach((tmp2) => // { // Console.Write("{0} ", tmp2); // } // ); // Console.WriteLine(); //} // ); //Console.ReadLine(); } } Console.WriteLine("finished"); ReportHandler(); }