---
# System prepended metadata

title: Master Branch Integration of DaceProgram Utilities for fv3core
tags: [dace, cycle 5]

---

# Master Branch Integration of DaceProgram Utilities for fv3core
###### tags: `cycle 5` `dace`

In past cycles we have demonstrated the viability of integrating GT4Py Stencils in `DaceProgram`s by applying the approach to the acoustic substep of fv3core. This work has been carried out on separate feature branches of all 3 repositories (fv3core, dace, gt4py).

In this project, we will bring these branches to a shape that can be merged into the main branches of the respective repositories. This will prevent divergence of developments in all the repositories. In particular, for

* **gt4py**
  - The new GPU expansion for the dace backend
  - Adding the `SDFGConvertible` functionality to stencil objects with appropriate caching
  - moving computepath decorators and config functionality to gt4py

* **fv3core**
  - Carry over new dace decorators to the master branch and apply them to the halo-exchange free codes 
  - Extension as time permits: Integrate the work done on halo exchanges in the previous cycle 
  
* **dace** bring existing `linus-fixes-11` branch to maturity

We explicitly make short parsing and code generation times and user experience a quality aspect that is to be considered while preparing those PR's, meaning that apropriate caching and utilities to load externally transformed graphs shall be provided. 

## Goals
* Solid merge candidates in fv3core, gt4py or dace repositories that, when merged, would allow 
  - parsing all modules of the acoustic substeps except the root DynCore object into SDFGs.
    
    NB 1: DynCore requires halo exchanges and is optional. The mode without halo exchanges does not exist in fv3core master and can't be added here.
    
    NB 2: This is already supported in feature branches.
  - adding functionality to stencil object s.t. they can be integrated directly in dace programs. In this way more applications than fv3core can start experimenting with this approach on gt4py master.
  
* Integration of halo exchanges in the context of the acoustics substep is optional


### No-Goals
* Still, only the acoustic substep will be supported in fv3core.

## Appetite
* 3 weeks