Exemple #1
0
            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"); */ };
                }
            }
Exemple #2
0
        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();
        }
Exemple #3
0
        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();
        }
Exemple #4
0
            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); };
                }
            }
Exemple #5
0
            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); };
                }
            }