Skip to content
Snippets Groups Projects

Consolidation with CDI-PIO (develop)

Merged Sergey Kosukhin requested to merge m300488/develop-rebase into develop
1 file
+ 22
14
Compare changes
  • Side-by-side
  • Inline
+ 22
14
@@ -1565,19 +1565,11 @@ cdiPioRecvStreamClose(void *buffer, int size, int *pos, MPI_Comm pioInterComm, b
streamClose(serverStreamID);
}
#ifdef HAVE_LIBNETCDF
static void
cdiPioRecvStreamDefVlist(void *buffer, int size, int *pos, MPI_Comm pioInterComm, int tag, const struct cdiPioConf *conf)
cdiPioCdfGridAccess(int streamID, int vlistID)
{
int serverStreamID, serverVlistID;
{
int msgData[defVlistNInts];
xmpi(MPI_Unpack(buffer, size, pos, &msgData, defVlistNInts, MPI_INT, pioInterComm));
serverStreamID = namespaceAdaptKey2(msgData[0]);
serverVlistID = namespaceAdaptKey2(msgData[1]);
}
stream_t *streamptr = stream_to_pointer(serverStreamID);
#ifdef HAVE_LIBNETCDF
int filetype = streamInqFiletype(serverStreamID);
int filetype = streamInqFiletype(streamID);
#ifdef HAVE_PARALLEL_NC4
int rankOpen;
#endif
@@ -1588,18 +1580,34 @@ cdiPioRecvStreamDefVlist(void *buffer, int size, int *pos, MPI_Comm pioInterComm
case CDI_FILETYPE_NC4:
case CDI_FILETYPE_NC4C:
#ifdef HAVE_PARALLEL_NC4
if ((rankOpen = cdiPioStream2Owner(serverStreamID)) != CDI_PIO_COLLECTIVE_OPEN)
if ((rankOpen = cdiPioStream2Owner(streamID)) != CDI_PIO_COLLECTIVE_OPEN)
#endif
{
int nGrids = vlistNgrids(serverVlistID);
int nGrids = vlistNgrids(vlistID);
for (int gridIdx = 0; gridIdx < nGrids; ++gridIdx)
{
int gridID = vlistGrid(serverVlistID, gridIdx);
int gridID = vlistGrid(vlistID, gridIdx);
if (!cdiPioDistGridIndividualQueriesEnabled(gridID)) cdiPioDistGridEnableIndividualQueries(gridID);
}
}
}
}
#else
#define cdiPioCdfGridAccess(streamID, vlistID)
#endif
static void
cdiPioRecvStreamDefVlist(void *buffer, int size, int *pos, MPI_Comm pioInterComm, int tag, const struct cdiPioConf *conf)
{
int serverStreamID, serverVlistID;
{
int msgData[defVlistNInts];
xmpi(MPI_Unpack(buffer, size, pos, &msgData, defVlistNInts, MPI_INT, pioInterComm));
serverStreamID = namespaceAdaptKey2(msgData[0]);
serverVlistID = namespaceAdaptKey2(msgData[1]);
}
stream_t *streamptr = stream_to_pointer(serverStreamID);
cdiPioCdfGridAccess(serverStreamID, serverVlistID);
cdiStreamSetupVlist(streamptr, serverVlistID);
size_t streamIdx = indexOfID(&openStreams, serverStreamID);
cdiPioServerStreamWinCreate(streamIdx, cdiPioInqCollClientIntraComm());
Loading