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
107 stars 29 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 10 months ago

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

LonelyCat124 commented 7 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.