private void Send() { while (SendBuffers.Count > 0) { var sb = SendBuffers.Dequeue(); var length = BitConverter.GetBytes(sb.Length); var buffer = new byte[sb.Length + length.Length]; length.CopyTo(buffer, 0); sb.CopyTo(buffer, length.Length); Stream.Write(buffer, 0, buffer.Length); } }
internal RefCommVector(MatrixBase M, MtVector v) : base(M, v) { m_Owner = v; // allocate send buffers foreach (int proc in Mtx._SpmvCommPattern.ComLists.Keys) { int len = Mtx._SpmvCommPattern.ComLists[proc].Length; IntPtr pBuffer = Marshal.AllocHGlobal(len * sizeof(double)); SendBuffers.Add(proc, pBuffer); SendBuffersLengths.Add(proc, len); } }