(#Towards 3420) Move OMPParallelTrans to create the data sharing attributes at transformation time#3421
(#Towards 3420) Move OMPParallelTrans to create the data sharing attributes at transformation time#3421LonelyCat124 wants to merge 8 commits into
Conversation
…f at lowering time
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3421 +/- ##
=======================================
Coverage 99.96% 99.96%
=======================================
Files 391 391
Lines 54609 54627 +18
=======================================
+ Hits 54590 54608 +18
Misses 19 19 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
@LonelyCat124 I have a couple of questions
Is this valid with a
|
|
@sergisiso Ready for another look now. I think 1) is fixed - I'd missed some cases that I now catch.
|
Is this because Kern does not report its used symbols in the reference_accesses that the infer_sharing_attributes uses to do its analysis? That may not be a problem (in the future) as providing them as virtual_children as we do in GOcean Kerns would fix it and is something that we plan to do anyway to make the DUC work with them to replace the old halo_exchange analysis. But, is there a more fundamental problem that ANY symbol/reference that is created at lowering (if we don't repeat the infer_sharing_attributes) will become shared without synchronisation (the default)? I am not sure how I feel about this yet. |
|
I think the list of aspects that we need to evaluate are:
This won't be possible only we really can skip the lowering call we need for the reductions, so I would block this PR until we do the Kern reference_access children. |

I have a draft implementation of moving OMPParallelTrans to do clause generation (using logic that is still located in the directive, so can be called independently if the transformation isn't used for whatever reason). Reduction logic isn't all available at transformation time, so I've not touched that yet (maybe when Kern <=> Call is done we can revisit that?)
@arporter @sergisiso If either of you could have a look and let me know i fyou think I've overlooked anything with this basic change before I look at some of the other potential improvements we can do as well. I'm going to set ITs going as well to see if this breaks any of the transformation scripts/runtime behaviour of real codes too.