Skip to content
Snippets Groups Projects

Consolidation with CDI-PIO (develop)

Merged Sergey Kosukhin requested to merge m300488/develop-rebase into develop
1 file
+ 17
5
Compare changes
  • Side-by-side
  • Inline
+ 17
5
@@ -170,12 +170,14 @@ setupClientRanks(void)
static void
createClientStreamBuf(size_t streamIdx, const struct clientBufSize *bufSizes, const struct cdiPioConf *conf)
{
/* find and tabulate aggregate size needed for all clients of collector */
size_t streamBufferSize = 0;
for (size_t i = 0; i < (size_t) numClients_; ++i)
{
streamBufferSize += (rxWin[streamIdx].clientBuf[i].size = bufSizes[i].bufSize);
rxWin[streamIdx].clientBuf[i].dictSize = bufSizes[i].numDataRecords + bufSizes[i].numRPCRecords;
}
/* set pointer to RMA buffer for client 0 of collector */
if (conf->batchedRMA)
rxWin[streamIdx].clientBuf[0].mem = Malloc(streamBufferSize);
else
@@ -191,16 +193,26 @@ createClientStreamBuf(size_t streamIdx, const struct clientBufSize *bufSizes, co
for (size_t j = 0; j < numStreams; ++j)
if (rxWin[j].getWin != MPI_WIN_NULL)
{
rxWin[j].clientBuf[0].mem = sharedClientBuf;
for (size_t i = 1; i < (size_t) numClients_; ++i)
rxWin[j].clientBuf[i].mem = rxWin[j].clientBuf[i - 1].mem + rxWin[j].clientBuf[i - 1].size;
unsigned char *newmem = sharedClientBuf;
for (size_t i = 0; i < (size_t) numClients_; ++i)
{
rxWin[j].clientBuf[i].mem = newmem;
newmem += rxWin[j].clientBuf[i].size;
}
}
}
}
rxWin[streamIdx].clientBuf[0].mem = sharedClientBuf;
}
for (size_t i = 1; i < (size_t) numClients_; ++i)
rxWin[streamIdx].clientBuf[i].mem = rxWin[streamIdx].clientBuf[i - 1].mem + rxWin[streamIdx].clientBuf[i - 1].size;
/* set pointers for other clients */
{
unsigned char *newmem = rxWin[streamIdx].clientBuf[0].mem;
for (size_t i = 1; i < (size_t) numClients_; ++i)
{
newmem += rxWin[streamIdx].clientBuf[i - 1].size;
rxWin[streamIdx].clientBuf[i].mem = newmem;
}
}
}
static void
Loading