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); }
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); }
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); }
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); }
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); }
void SNetDistribUpdateBlocked(void) { MPISend(NULL, 0, node_location, snet_update); }
void SNetDistribUpdateBlocked(void) { mpi_buf_t buf = {0, 0, NULL}; MPISend(buf.data, buf.offset, node_location, snet_update); }