public Fiber(int channelID, int vertexID, VertexOutput <Update, Empty> sender, ProgressChannel.Mailbox localMailbox, InternalController controller) { this.processId = controller.Configuration.ProcessID; this.channelID = channelID; this.vertexID = vertexID; this.sender = sender; this.localMailbox = localMailbox; this.networkChannel = controller.NetworkChannel; this.numProcesses = controller.Configuration.Processes; int processID = controller.Configuration.ProcessID; if (this.networkChannel != null) { this.encoder = new AutoSerializedMessageEncoder <Update, Empty>(-1, this.sender.Vertex.Stage.InternalComputation.Index << 16 | this.channelID, this.networkChannel.GetBufferPool(-1, -1), this.networkChannel.SendPageSize, controller.SerializationFormat, SerializedMessageType.Data, () => this.GetNextSequenceNumber()); this.encoder.CompletedMessage += (o, a) => { this.BroadcastPageContents(a.Hdr, a.Segment); /* Console.WriteLine("Sending progress message"); */ }; } }
private void LogMessage(Message <Pair <TRecord, TTime> > message) { var encoder = new AutoSerializedMessageEncoder <TRecord, TTime>(this.Vertex.VertexId, 0, DummyBufferPool <byte> .Pool, this.Vertex.Stage.InternalGraphManager.Controller.Configuration.SendPageSize, AutoSerializationMode.OneTimePerMessage); encoder.CompletedMessage += (o, a) => { ArraySegment <byte> messageSegment = a.Segment.ToArraySegment(); this.Vertex.LoggingOutput.Write(messageSegment.Array, messageSegment.Offset, messageSegment.Count); }; for (int i = 0; i < message.length; ++i) { encoder.Write(message.payload[i]); } encoder.Flush(); }
protected void LogMessage(Message <S, T> message) { var encoder = new AutoSerializedMessageEncoder <S, T>(this.Vertex.VertexId, this.channelId, DummyBufferPool <byte> .Pool, this.Vertex.Stage.InternalComputation.Controller.Configuration.SendPageSize, this.Vertex.SerializationFormat); encoder.CompletedMessage += (o, a) => { ArraySegment <byte> messageSegment = a.Segment.ToArraySegment(); this.Vertex.LoggingOutput.Write(messageSegment.Array, messageSegment.Offset, messageSegment.Count); }; // XXX : Needs to be fixed up... for (int i = 0; i < message.length; ++i) { encoder.Write(message.payload[i].PairWith(message.time)); } encoder.Flush(); }
public Fiber(int channelID, int vertexID, VertexOutput <Update, Empty> sender, CentralizedProgressChannel.Mailbox localMailbox, InternalController controller, int receiverVertexId, int receiverProcessId) { this.channelID = channelID; this.vertexID = vertexID; this.sender = sender; this.localMailbox = localMailbox; this.networkChannel = controller.NetworkChannel; this.numProcesses = controller.Configuration.Processes; int processID = controller.Configuration.ProcessID; this.receiverVertexId = receiverVertexId; this.receiverProcessId = receiverProcessId; if (this.networkChannel != null) { this.encoder = new AutoSerializedMessageEncoder <Update, Empty>(0, this.sender.Vertex.Stage.InternalComputation.Index << 16 | this.channelID, this.networkChannel.GetBufferPool(0, -1), this.networkChannel.SendPageSize, controller.SerializationFormat, SerializedMessageType.Data, () => this.networkChannel.GetSequenceNumber(-1)); this.encoder.CompletedMessage += (o, a) => { this.SendPageContents(a.Hdr, a.Segment); }; } }
public Fiber(int channelID, int shardID, VertexOutput <Int64, Pointstamp> sender, CentralizedProgressChannel.Mailbox localMailbox, InternalController controller, int receiverShardId, int receiverProcessId) { this.channelID = channelID; this.shardID = shardID; this.sender = sender; this.localMailbox = localMailbox; this.networkChannel = controller.NetworkChannel; this.numProcesses = controller.Configuration.Processes; int processID = controller.Configuration.ProcessID; this.receiverShardId = receiverShardId; this.receiverProcessId = receiverProcessId; if (this.networkChannel != null) { this.encoder = new AutoSerializedMessageEncoder <Int64, Pointstamp>(0, this.sender.Vertex.Stage.InternalGraphManager.Index << 16 | this.channelID, this.networkChannel.GetBufferPool(0, -1), this.networkChannel.SendPageSize, AutoSerializationMode.Basic, SerializedMessageType.Data, () => this.networkChannel.GetSequenceNumber(-1)); this.encoder.CompletedMessage += (o, a) => { this.SendPageContents(a.Hdr, a.Segment); }; } }