stfc / PSyclone

Domain-specific compiler and code transformation system for Finite Difference/Volume/Element Earth-system models in Fortran
BSD 3-Clause "New" or "Revised" License
103 stars 24 forks source link

Otter transformations #1744

Open LonelyCat124 opened 2 years ago

LonelyCat124 commented 2 years ago

As part of the ExCALIBUR project, we will need Otter (https://github.com/Otter-Taskification/otter) transformations to support Otter's (future) simulator, etc. I expect these transformations to somewhat closely mirror OpenMP's requirements/implementations, as this is the supported parallel system in PSyclone. The task-based transformations will (for now) probably be similar to taskloop, but it will manually decompose the loop using other transformations (chunked loop trans I think I named it in the end).

I'm going to work on this probably this week as we need to demo this early next month - I don't expect it to be masses of code for a prototype we can use for the demo at least.

LonelyCat124 commented 6 months ago

This is going to attempt to use PsyData instead of separate transformations now we have full task support.

LonelyCat124 commented 3 months ago

After discussing today, this is not going to use PSyData, but instead belong to the OMPTaskDirective/OMPTaskTransformation as an option. This will probably also have to belong to Single/Serial regions as well (and taskwait).

We'll add an option to the transformation, and a property + setter to the task directive and equivalent.

At lowering time, then we add new calls/imports/symbols as appropriate for the otter code.