In a distributed computer system, a sending node prompts a receiving node
to allocate and export to the sending node one or more memory "segments".
Each allocated segment is sufficiently large to hold multiple receive
buffers whose size fall within a predefined range of receive buffer sizes.
Once a segment has been allocated and exported, the sending node allocates
receive buffers within the segment, using sequentially contiguous portions
for successive receive buffers, without any interaction with the receiving
node. Messages are transmitted to the receiving node by remotely writing
the data portion of each message to an allocated receive buffer and
writing a control message with a pointer to the corresponding receive
buffer to a message queue in the receiving node. The receiving node
processes messages within the portions of the allocated segments specified
by each control message and does not keep track of the used and/or unused
portions of each segment. Only the sending node keeps track of the unused
portions of each allocated segment. As a result, the computational and
communication resource overhead associated with allocating receive buffers
is substantially reduced. Once the sending node has exhausted a segment,
it sends either a segment release message or segment recycle message to
the receiving node. Recycling the segment causes the receiving node to
re-enable the sending node to use the segment once the receiving node has
processed all the messages previously written to receive buffers in the
segment.
В распределенной системе компьютера, посылая узел пробуждает получая узел для того чтобы размещать и ехпортировать к посылая узлу one or more память "этапы". Каждый размещанный этап достаточно большой для того чтобы держать многократную цепь получает буфера падению размера внутри предопределенный ряд получите размеры буфера. Как только был размещан и ехпортирован этап, посылая узел размещает получает буфера в пределах этапа, используя последовательн сопредельные части для последовательного получает буфера, без любого взаимодействия с получая узлом. Сообщения переданы к получая узлу дистанционным писанием части данных каждого сообщения к размещанное получают буфер и пишущ сообщение управления с указателем к соответствовать получите буфер к очередности обработки сообщений в получая узле. Получая узел обрабатывает сообщения внутри части размещанных этапов определенных каждым сообщением управления и keep track of используемые and/or unused части каждого этапа. Только посылая узел держит след unused частей каждого размещанного этапа. В результате, ресурс вычислительных и связи наверху связанный с размещать получает буфера существенн уменьшен. Как только посылая узел выматывал этап, он посылает или сообщение отпуска этапа или этап рециркулирует сообщение к получая узлу. Рециркулировать этап причиняет получая узел re-enable посылая узел для использования этапа как только получая узел обрабатывал все сообщения ранее написанные, что получил буфера в этапе.