ICON Kernels focus an selected functionality of the full ICON model with the objective to minimize the following criteria which are considered to hinder ICON software analysis and development:
- Size of entangled source code
- Build and experiment setup complexity, including software environment requirements
- Run-time requirements, including memory and job execution time
Furthermore the following constraints should be considered in the kernel design:
- The kernel should run as a standalone program without requiring the full model (e.g. as library) but it might depend on other kernels.
- It should allow verification and performance analysis of the given aspect for the full model (feasibility can be limited, e.g., by the specific full model load imbalance).
- Modification of the original ICON source code should preserve the possibility to easily transfer further developments between kernel and full model (patch friendlyness).
For more information see: ICON Kernels - Wiki