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