private void performAction(long cellId) { using (var rootCell = Global.LocalStorage.UseSSSPCell(cellId)) { //Console.WriteLine("PerformAction: " + cellId); //update rankValue && storedRankValue //rootCell.rankValue = rootCell.storedRankValue - rootCell.oldStoredRankValue; //rootCell.oldStoredRankValue = rootCell.storedRankValue; //long rankValueP = (rootCell.rankValue - rootCell.oldRankValue) / rootCell.neighbors.Count; double rankValueP = (rootCell.storedRankValue - rootCell.rankValue) / rootCell.neighbors.Count; MessageSorter sorter = new MessageSorter(rootCell.neighbors); for (int i = 0; i < Global.SlaveCount; i++) { //Console.WriteLine(3); RankUpdatingMessageWriter msg = new RankUpdatingMessageWriter(rootCell.CellID.Value, rankValueP, sorter.GetCellRecipientList(i)); //Console.WriteLine(4); Global.CloudStorage.RankUpdatingToSlave(i, msg); //Console.WriteLine(5); } //update //Console.WriteLine(6); //rootCell.oldRankValue = rootCell.rankValue; rootCell.rankValue = rootCell.storedRankValue; } }
private void initialSend(SSSPCell rootCell) { //Console.WriteLine(value); addCount(); double v = 1 / rootCell.outNeighbors.Count; MessageSorter sorter = new MessageSorter(rootCell.outNeighbors); for (int i = 0; i < Global.SlaveCount; i++) { RankUpdatingMessageWriter msg = new RankUpdatingMessageWriter(rootCell.CellID, v, sorter.GetCellRecipientList(i)); Global.CloudStorage.RankUpdatingToSlave(i, msg); } }
private void initialPropagate(SSSPCell cell, bool isActive) { //clear for (int i = 0; i < cell.inNeighborsReceivedStatus.Count; i++) { cell.inNeighborsReceivedStatus[i] = false; } //cell.receivedNeighborCount = 0; //send-out double v = 1.0 / cell.outNeighbors.Count; MessageSorter sorter = new MessageSorter(cell.outNeighbors); for (int i = 0; i < Global.SlaveCount; i++) { //Console.WriteLine(sorter.GetCellRecipientList(i).Count); RankUpdatingMessageWriter msg = new RankUpdatingMessageWriter(cell.CellID, isActive, v, sorter.GetCellRecipientList(i)); Global.CloudStorage.RankUpdatingToSlave(i, msg); } }
private void propagate(SSSPCell cell, bool isActive) { //clear for (int i = 0; i < cell.inNeighborsReceivedStatus.Count; i++) { cell.inNeighborsReceivedStatus[i] = false; } //cell.receivedNeighborCount = 0; //send-out double v = cell.sum / cell.outNeighbors.Count; MessageSorter sorter = new MessageSorter(cell.outNeighbors); for (int i = 0; i < Global.SlaveCount; i++) { //Console.WriteLine(sorter.GetCellRecipientList(i).Count); RankUpdatingMessageWriter msg = new RankUpdatingMessageWriter(cell.CellID, isActive, v, sorter.GetCellRecipientList(i)); Global.CloudStorage.RankUpdatingToSlave(i, msg); } }
private void performActionOne(long cellId) { using (var rootCell = Global.LocalStorage.UseSSSPCell(cellId)) { double rankValueP = rootCell.rankValue / rootCell.neighbors.Count; MessageSorter sorter = new MessageSorter(rootCell.neighbors); for (int i = 0; i < Global.SlaveCount; i++) { //Console.WriteLine(3); RankUpdatingMessageWriter msg = new RankUpdatingMessageWriter(rootCell.CellID.Value, rankValueP, sorter.GetCellRecipientList(i)); //Console.WriteLine(4); Global.CloudStorage.RankUpdatingToSlave(i, msg); //Console.WriteLine(5); } //update //Console.WriteLine(6); //rootCell.oldRankValue = rootCell.rankValue; } }
private void send(SSSPCell rootCell) { //Console.WriteLine(value); addCount(); double v = rootCell.sum / rootCell.outNeighbors.Count; MessageSorter sorter = new MessageSorter(rootCell.outNeighbors); for (int i = 0; i < Global.SlaveCount; i++) { RankUpdatingMessageWriter msg = new RankUpdatingMessageWriter(rootCell.CellID, v, sorter.GetCellRecipientList(i)); Global.CloudStorage.RankUpdatingToSlave(i, msg); } }
private void send(long fromCellId, double value) { //Console.WriteLine(value); addCount(); double v = 0; using (var rootCell = Global.LocalStorage.UseSSSPCell(fromCellId)) { try { v = value / rootCell.outNeighbors.Count; MessageSorter sorter = new MessageSorter(rootCell.outNeighbors); for (int i = 0; i < Global.SlaveCount; i++) { RankUpdatingMessageWriter msg = new RankUpdatingMessageWriter(rootCell.CellID.Value, v, sorter.GetCellRecipientList(i)); Global.CloudStorage.RankUpdatingToSlave(i, msg); } } catch (Exception e) { //Console.Error.WriteLine(e); Console.WriteLine(fromCellId); } } }
private void performAction(long cellId) { //Console.WriteLine(0); using (var rootCell = Global.LocalStorage.UseSSSPCell(cellId)) { //activated cell should satisfy storedRankValue > rankValue rootCell.rankValue = rootCell.storedRankValue; /* if (rootCell.status == false) return; if (rootCell.neighbors.Count == 0) { rootCell.status = false; return; } */ //Console.WriteLine(1); //compute current rankValueP long rankValueP = rootCell.rankValue / rootCell.neighbors.Count; //if (rootCell.oldRankValueP < rankValueP) //{ //send the rank difference MessageSorter sorter = new MessageSorter(rootCell.neighbors); //Console.WriteLine(2); for (int i = 0; i < Global.SlaveCount; i++) { //Console.WriteLine(3); RankUpdatingMessageWriter msg = new RankUpdatingMessageWriter(rootCell.CellID.Value, rankValueP - rootCell.oldRankValueP, sorter.GetCellRecipientList(i)); //Console.WriteLine(4); Global.CloudStorage.RankUpdatingToSlave(i, msg); //Console.WriteLine(5); } //update //Console.WriteLine(6); rootCell.oldRankValueP = rankValueP; //} } }