Commit 325e4110 authored by Thomas Jahns's avatar Thomas Jahns 🤸
Browse files

Add routine for intermediate I/O RDMA progress.

parent 3c80a15d
......@@ -239,6 +239,7 @@ void pioFinalize ( void );
MPI_Comm pioInit(MPI_Comm commSuper, int nProcsIO, int IOMode,
int *pioNamespace, float partInflate);
void pioWriteTimestep();
void cdiPioRDMAProgress();
void streamWriteVarPart (int streamID, int varID,
const void *data, int nmiss,
......
......@@ -399,6 +399,9 @@
! pioWriteTimestep
EXTERNAL pioWriteTimestep
! cdiPioRDMAProgress
EXTERNAL cdiPioRDMAProgress
! streamWriteVarPart
! (INTEGER streamID,
! INTEGER varID,
......
......@@ -87,6 +87,7 @@ static int pioInit_fwrap(int commSuper, int nProcsIO, int IOMode, int * pioNames
}
FCALLSCFUN5 (INT, pioInit_fwrap, PIOINIT, pioinit, INT, INT, INT, PINT, FLOAT)
FCALLSCSUB0 (pioWriteTimestep, PIOWRITETIMESTEP, piowritetimestep)
FCALLSCSUB0 (cdiPioRDMAProgress, CDIPIORDMAPROGRESS, cdipiordmaprogress)
static void streamWriteVarPart_fwrap(int streamID, int varID, const void * data, int nmiss, void * partDesc)
{
streamWriteVarPart( streamID, varID, data, nmiss, (*(Xt_idxlist *)partDesc));
......
......@@ -573,6 +573,30 @@ collWait(int collID)
}
}
static inline void
collProbe(int collID)
{
if (txWin[collID].postSet)
{
int flag;
xmpi(MPI_Win_test(txWin[collID].win, &flag));
if (flag)
{
txWin[collID].postSet = 0;
modelWinFlushBuffer(collID);
}
}
}
void
cdiPioRDMAProgress()
{
int nProcsColl = commInqNProcsColl();
for (int collID = 0; collID < nProcsColl; collID++)
collProbe(collID);
}
void
pioBufferPartData(int streamID, int varID, const double *data,
int nmiss, Xt_idxlist partDesc)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment