|
|
The output model consists of different configuration files depending on the used packages.
|
|
|
|
|
|
- Overall reference of the architecture https://mitgcm.readthedocs.io/en/latest/software_arch/software_arch.html
|
|
|
|
|
|
## model/inc/SIZE.h
|
|
|
|
|
|
The memory layout is grid based. Where the grid is split up in tiles to be able to parallelize the execution.
|
|
|
|
|
|
- sNx and sNy model grid size for one tile
|
|
|
- OLx and OLy are the extend of the overlay OLx and OLy (usual 4 points) in that case OLx = 4 and OLy = 4. Larger sizes reduce performance.
|
|
|
- nSx and nSy specify the number of tiles for one single process
|
|
|
(Who named them so close to sNx?)
|
|
|
- nPx and nPy define how many processes are used in x and y direction.
|
|
|
|
|
|
The complete model gird size is then:
|
|
|
```
|
|
|
Nx = sNx*nSx*nPx
|
|
|
Ny = sNy*nSy*nPy
|
|
|
```
|
|
|
|
|
|
## input/eedata
|
|
|
|
|
|
This file may hold additional parameters for configuration. So far:
|
|
|
- nTx and nTy which define how many threads can be used per process
|
|
|
- nTx * nTy = the number of threads spawned, i.e., the PARALLEL environment variable.
|
|
|
- nTx must subdivide the number of sub-domains in x (nSx) exactly. (constraint)
|
|
|
- nTy must subdivide the number of sub-domains in y (nSy) exactly. (constraint)
|
|
|
|
|
|
## Overall Configuration
|
|
|
|
|
|
https://mitgcm.readthedocs.io/en/latest/software_arch/software_arch.html#annotated-call-tree-for-mitgcm-and-wrapper |