I'm facing an issue while scaling any nested grid application beyond 144 processors.
The error which is displayed is :
INP_PAR - domain decomposition error in input script file for grid: 01
The domain partition parameter, NtileJ = 15
is incompatible with grid size, Mm = 80
because it yields too small tile, Jstr = 1 Jend = 1
Decrease partition parameter: NtileJ
on looking more into the code i found that a bound is set on the tile partition in the file MyDir/ROMS/Utility/inp_par.f90 :
!-----------------------------------------------------------------------
! Check tile partition starting and ending (I,J) indices for illegal
! domain decomposition parameters NtileI and NtileJ in standard input
! file.
!-----------------------------------------------------------------------
IF ((BOUNDS(ng)%Jend(tile)-
BOUNDS(ng)%Jstr(tile)+1).lt.2) THEN
WRITE (stdout,80) ng, 'NtileJ = ', NtileJ(ng),
'Mm = ', Mm(ng),
'Jstr = ', BOUNDS(ng)%Jstr(tile),
' Jend = ', BOUNDS(ng)%Jend(tile),
'NtileJ'
I wanna know why are these bounds set and how can i solve this issue of scaling ?
I want to scale with more number of processors
Issue with sacling of Nested grid applications
Re: Issue with sacling of Nested grid applications
This isn't a nesting issue, it's simply that you are asking for tile partitions that are too small.
See this link in WikiROMS https://www.myroms.org/wiki/File:communications.png to visualize the tiles and their associated halo regions that communicate the data from adjacent tiles to complete the numerical stencil.
Your request for 15 divisions along the dimension Mm = 80 will give tiles with 5 elements - pretty much exactly as in the plot. In this extreme illustration, there are 25 physical grid points in the tile that ROMS will compute on, but there are 56 grid points of information in the halo regions being passed back and forth by MPI. Even if this were allowed we would expect it to scale poorly. ROMS is catching this and telling you to rethink ... you can't just throw an infinite number of tiles at the task and expect it to keep speeding up.
See this link in WikiROMS https://www.myroms.org/wiki/File:communications.png to visualize the tiles and their associated halo regions that communicate the data from adjacent tiles to complete the numerical stencil.
Your request for 15 divisions along the dimension Mm = 80 will give tiles with 5 elements - pretty much exactly as in the plot. In this extreme illustration, there are 25 physical grid points in the tile that ROMS will compute on, but there are 56 grid points of information in the halo regions being passed back and forth by MPI. Even if this were allowed we would expect it to scale poorly. ROMS is catching this and telling you to rethink ... you can't just throw an infinite number of tiles at the task and expect it to keep speeding up.
John Wilkin: DMCS Rutgers University
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu
71 Dudley Rd, New Brunswick, NJ 08901-8521, USA. ph: 609-630-0559 jwilkin@rutgers.edu