Rules for decomposing CCSM4 on to processors.
One way to try different decompositions is to follow the instructions in env_pes.MACHINE. First edit that file to set the decomposition you want. Then do "./configure -cleanmach MACHINE" followed by ./configure -mach MACHINE". The second command will perform checks to see if the decomposition is valid.
Or you can try your own.
ATM
CAM-FV: FV uses two decompositions - lat/vert (YZ) and lon/lat (XY), with the only stipulation that the total number of subdomains be the same. Npr_yz = Ny, Nz, Mx, My, where (Ny,Nz) is the lat/vert decomp., and (Mx,My) is the lon/lat decomp. We typically run with My=Ny and Mx=Nz.
The main restriction for FV is that each latitudinal subdomain must contain at least 3 points. If you really want ALL possible configurations, then each longitudinal subdomain must also contain at least 3 points, but we don't come up against that often. NOTE: The number of processors does not have to evenly divide the number of lats, lons or levs.
1.9x2.5L26 res: lat =96 lon = 144 lev=26 96 npr_yz = 32,3,3,32 local: lat=3,lev=8.6, lon=48[[BR]] 128 npr_yz = 32,4,4,32 local: lat=3,lev=6.5, lon=36[[BR]] 192 npr_yz = 32,6,6,32 local: lat=3,lev=4.3, lon=24[[BR]] 0.9x1.25L26 res: lat=192 lon=288 lev=26 128 npr_yz = 64,2,2,64 local: lat=3, lev=13, lon=144 1x1.25L26 res: lat= 181 lon = 288 lev = 26 160 npr_yz = 40,4,4,40 local: lat = 4.5, lev = 6.5 lon = 72 384 npr_yz = 48,8,8,48 local: lat = 3.7, lev = 3.25 lon = 36
OCN
In the ocean, you specify the local size instead of the number of procs
gx1v5 res: lat = 384, lon=320, lev=60 96 POP_BLCKX = 40 POP_BLCKY= 32 Xprocs=8, Yprocs= 12[[BR]] 128 POP_BLCKX = 40 POP_BLCKY= 24 Xprocs=8, Yprocs= 16[[BR]] 160 POP_BLCKX = 32 POP_BLCKY = 24 Xprocs=10, Yprocs = 16[[BR]] 192 POP_BLCKX = 20 POP_BLCKY = 32 Xprocs = 16, Yprocs = 12[[BR]] 384 POP_BLCKX = 20 POP_BLCKY = 16 Xprocs = 16, Yprocs = 24
ICE
In the ice model, as in the ocean, you specify the local size. You want to give most of the processors to the X-direction
gx1v5 res: lat = 384, lon = 320, lev=60 96 CICE_BLCKX = 10 CICE_BLCKY=128 Xprocs=32, YProcs=3 128