示例#1
0
void SNetDistribBlockDest(snet_dest_t dest)
{
  mpi_buf_t buf = {0, 0, NULL};
  PackDest(&buf, &dest);
  MPISend(buf.data, buf.offset, dest.node, snet_block);
  SNetMemFree(buf.data);
}
示例#2
0
void SNetDistribFetchRef(snet_ref_t *ref)
{
  mpi_buf_t buf = {0, 0, NULL};
  SNetRefSerialise(ref, &buf, &PackInt, &PackByte);
  MPISend(buf.data, buf.offset, SNetRefNode(ref), snet_ref_fetch);
  SNetMemFree(buf.data);
}
示例#3
0
void SNetDistribSendData(snet_ref_t *ref, void *data, void *dest)
{
  mpi_buf_t buf = {0, 0, NULL};
  SNetRefSerialise(ref, &buf, &PackInt, &PackByte);
  SNetInterfaceGet(SNetRefInterface(ref))->packfun(data, &buf);
  MPISend(buf.data, buf.offset, (uintptr_t) dest, snet_ref_set);
  SNetMemFree(buf.data);
}
示例#4
0
void SNetDistribUpdateRef(snet_ref_t *ref, int count)
{
  mpi_buf_t buf = {0, 0, NULL};
  SNetRefSerialise(ref, &buf, &PackInt, &PackByte);
  PackInt(&buf, 1, &count);
  MPISend(buf.data, buf.offset, SNetRefNode(ref), snet_ref_update);
  SNetMemFree(buf.data);
}
示例#5
0
void SNetDistribSendRecord(snet_dest_t dest, snet_record_t *rec)
{
  static mpi_buf_t sendBuf = {0, 0, NULL};

  sendBuf.offset = 0;
  SNetRecSerialise(rec, &sendBuf, &PackInt, &PackRef);
  PackDest(&sendBuf, &dest);
  MPISend(sendBuf.data, sendBuf.offset, dest.node, snet_rec);
}
示例#6
0
void SNetDistribUpdateBlocked(void)
{ MPISend(NULL, 0, node_location, snet_update); }
示例#7
0
void SNetDistribUpdateBlocked(void)
{
  mpi_buf_t buf = {0, 0, NULL};
  MPISend(buf.data, buf.offset, node_location, snet_update);
}