Conversation
opensdh
left a comment
There was a problem hiding this comment.
I haven't gone through all(!) the changes yet, but here are some initial/procedural points.
|
This has been completely redone (please note I force-pushed to the underlying branch). The changes unrelated to HPX have now been separated and are available as #645. This PR has now only changes that are required to have HPX V1.5 as a backend. |
|
Please also note that this PR depends on laristra/cinch#187 |
- enable all tests for HPX
|
@opensdh, @ipdemes: I have addressed all review comments as discussed. Please note that I have pushed additional changes to laristra/cinch#187. |
# Conflicts: # cinch
- flyby: make FLECSI_USE_AGGCOMM=On default for HPX backend
- adding future to data_client_handle, integrate with task dependency logic - flyby: optimize execution_policy::execute_task
|
|
||
| auto & h = a.handle; | ||
| // Skip Read Only handles | ||
| if constexpr((SHARED_PERMISSIONS == ro) || (GHOST_PERMISSIONS == rw) || |
There was a problem hiding this comment.
Do the EXCLUSIVE_PERMISSIONS not need to be used to setup task dependencies?
There was a problem hiding this comment.
Excellent question. I essentially copied the conditions from the MPI backend, so I might have missed things. Is there an explanation of how (and which) permissions are to be interpreted to deduce dependencies? Or in general, what is encoded by the different types of permissions?
There was a problem hiding this comment.
The MPI backend does not do dependency analysis. The check on permission is only for ghost copy purpose. Thus the task_[epi|pro]logue would skip handles that does not write to ghost or shared region.
For a more completed dependency analysis, the permission on Exclusive should be taken into account.
There was a problem hiding this comment.
Thanks for this explanation. I'm still unsure about the role of the various permissions, though. Would you be able to recommend some documentation or similar to read up about this?
There was a problem hiding this comment.
Minor correction. GHOST_PERMISSION == rw is used to signify the values of ghost cells are computed locally (flecsale does that) and thus ghost exchange is not necessary. Again, I don't know what the implication to dependency analysis is.
There was a problem hiding this comment.
|
The probably will be better answered by Irina.
…On Mon, Nov 30, 2020 at 4:24 PM Hartmut Kaiser ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In flecsi/execution/hpx/task_add_dependencies.h
<#643 (comment)>:
> + indices of the index partition.
+
+ */
+
+ template<typename T,
+ size_t EXCLUSIVE_PERMISSIONS,
+ size_t SHARED_PERMISSIONS,
+ size_t GHOST_PERMISSIONS>
+ void handle(dense_accessor<T,
+ EXCLUSIVE_PERMISSIONS,
+ SHARED_PERMISSIONS,
+ GHOST_PERMISSIONS> & a) {
+
+ auto & h = a.handle;
+ // Skip Read Only handles
+ if constexpr((SHARED_PERMISSIONS == ro) || (GHOST_PERMISSIONS == rw) ||
Thanks for this explanation. I'm still unsure about the role of the
various permissions, though. Would you be able to recommend some
documentation or similar to read up about this?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#643 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAFRR5JXEZI5DLICUHNNNZLSSQSTHANCNFSM4PSV3XJQ>
.
|
This patch adds some conditional changes that a required to make flecsi/1 compile with HPX V1.5