You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have multiple 2D and 3D variables I want to write to the same file. The data are distributed in memory by the third dimension. Each MPI rank can own one or more levels of a given variable. I want to write the data in parallel.
Lets assume we are writing a 3D variable. 3DVar(globalsizes(1), globalsizes(2), 4)
IOComm is a subset of MPI_Comm_World with a number of ranks that is larger than the third dimension of any variable being written. Lets say MPI_Comm_World is 16 ranks, IOComm has 8 ranks while the largest 3D has 4 levels and they are distributed in memory to two of the ranks in IOComm. mystart is 1 on the first rank and 3 on the other while k is 2 for both.
The above code gets deadlocked because NC4_put_vars() calls MPI_Allreduce() presumably on IOComm.
If I set counts= (/ 0, 0, 0 /) for the remaining 6 ranks in IOComm that don't contribute data to the file then I get NetCDF: Index exceeds dimension bound
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
I have multiple 2D and 3D variables I want to write to the same file. The data are distributed in memory by the third dimension. Each MPI rank can own one or more levels of a given variable. I want to write the data in parallel.
Lets assume we are writing a 3D variable. 3DVar(globalsizes(1), globalsizes(2), 4)
IOComm is a subset of MPI_Comm_World with a number of ranks that is larger than the third dimension of any variable being written. Lets say MPI_Comm_World is 16 ranks, IOComm has 8 ranks while the largest 3D has 4 levels and they are distributed in memory to two of the ranks in IOComm. mystart is 1 on the first rank and 3 on the other while k is 2 for both.
The above code gets deadlocked because NC4_put_vars() calls MPI_Allreduce() presumably on IOComm.
If I set counts= (/ 0, 0, 0 /) for the remaining 6 ranks in IOComm that don't contribute data to the file then I get
NetCDF: Index exceeds dimension boundDoes NetCDF support this scenario?
How?
All reactions