Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apex refactoring with guids #3245

Merged
merged 8 commits into from
Mar 22, 2018
Merged

Apex refactoring with guids #3245

merged 8 commits into from
Mar 22, 2018

Conversation

khuck
Copy link
Contributor

@khuck khuck commented Mar 19, 2018

  • Adds apex_new_task() call when HPX threads are constructed. The resulting object pointer (apex::task_wrapper* cast as a void*) is stored in the thread.
  • Updates the apex start/yield/stop calls to take the apex::task_wrapper object pointer. The apex::stop call will destroy the object, so HPX doesn't have to manage that memory.
  • Removes the start/stop around the background thread - the measurement of that thread actually is handled when the work is scheduled in the regular scheduler.

This pull request updates the APEX/HPX integration to track task dependencies, generate GUIDs within APEX for tracking tasks, and adds those GUIDs to the OTF2 trace output. The version of APEX that cmake will pull has been modified from "master" to "v2.0", a new tag in APEX representing these API changes. v2.0 is currently a "beta" release, if all goes well it will become an official release soon.

Major changes:  When an HPX thread is created, an apex_wrapper()
call is made to create an apex::task_wrapper.  That object can be
updated later in the case of an annotated_function.  The thread
maintains a pointer to this wrapper, and passes it to the
apex_wrapper calls to start/stop timers. Memory is managed by
APEX, and the task_wrapper object is destroyed after apex::stop.
Removing the background thread timer because that work
should be handled in the regular scheduling loop.
This should be updated to master before next release.
@khuck khuck requested a review from hkaiser March 19, 2018 16:42
Copy link
Member

@hkaiser hkaiser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@msimberg - not sure if you'd like to add this to the release... It is not absolutely necessary but would provide a nice addition as it keeps HPX aligned with the latest developments of APEX. It is also a low risk patch as it shouldn't influence things as long as HPX_WITH_APEX=Off.

@msimberg
Copy link
Contributor

All right, I'll go ahead and add this to the release. We won't really know if something breaks as rostam and pycicle have Apex off, but this looks fairly harmless. Thanks @khuck!

@msimberg msimberg merged commit 5d1fc10 into master Mar 22, 2018
@msimberg msimberg modified the milestones: 1.2.0, 1.1.0 Mar 22, 2018
@hkaiser hkaiser deleted the apex_refactoring_with_guids branch March 22, 2018 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants