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

1051: Add local invoke to proxies that trace and record LB #1132

Merged
merged 18 commits into from
Dec 16, 2020

Conversation

JacobDomagala
Copy link
Contributor

@JacobDomagala JacobDomagala commented Oct 29, 2020

Fixes #1051

  • virtual collection proxy
  • obj group proxy
  • unittests

@codecov
Copy link

codecov bot commented Oct 29, 2020

Codecov Report

Merging #1132 (e1d4ad4) into develop (8b6f242) will increase coverage by 1.34%.
The diff coverage is 98.57%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #1132      +/-   ##
===========================================
+ Coverage    79.61%   80.96%   +1.34%     
===========================================
  Files          724      729       +5     
  Lines        27809    28022     +213     
===========================================
+ Hits         22141    22687     +546     
+ Misses        5668     5335     -333     
Impacted Files Coverage Δ
src/vt/objgroup/manager.h 100.00% <ø> (ø)
src/vt/objgroup/proxy/proxy_objgroup_elm.h 100.00% <ø> (ø)
src/vt/vrt/collection/balance/lb_comm.h 76.08% <ø> (ø)
src/vt/vrt/collection/balance/node_stats.cc 71.18% <ø> (ø)
src/vt/vrt/collection/manager.h 100.00% <ø> (ø)
.../vt/vrt/collection/proxy_traits/proxy_elm_traits.h 100.00% <ø> (ø)
src/vt/runnable/invoke.h 96.49% <96.49%> (ø)
src/vt/vrt/collection/manager.impl.h 94.82% <97.91%> (+0.14%) ⬆️
src/vt/objgroup/manager.impl.h 93.57% <100.00%> (+0.71%) ⬆️
src/vt/objgroup/manager.static.h 100.00% <100.00%> (ø)
... and 23 more

@JacobDomagala JacobDomagala force-pushed the 1051-add-local-invoke-for-proxies branch 4 times, most recently from a274bae to 73fd8ab Compare November 4, 2020 19:54
@JacobDomagala JacobDomagala force-pushed the 1051-add-local-invoke-for-proxies branch from 73fd8ab to f005cf3 Compare November 16, 2020 22:21
@JacobDomagala JacobDomagala force-pushed the 1051-add-local-invoke-for-proxies branch 3 times, most recently from dcf750b to 8f01fe4 Compare November 22, 2020 19:01
@@ -83,7 +83,8 @@ enum class eTraceConstants : int32_t {
UserStat = 32,
BeginUserEventPair = 98,
EndUserEventPair = 99,
UserEventPair = 100
UserEventPair = 100,
LocalInvoke = 101
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not sure whether we want (or can as this probably won't work with Projections tool) to add new trace type for invoke or should we use existing one? At the end the output will be the same as for Creation event type.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Let's make this just a regular Creation event.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Projections doesn't do anything special for these.

@JacobDomagala JacobDomagala marked this pull request as ready for review November 24, 2020 18:16
@lifflander
Copy link
Collaborator

Per @PhilMiller suggestion, we should create a makeTraceCreationSend(..) for both starting the local invocation and on the receiving side after the invocation returns. So it will looks like a message was sent to start the local invoke and then a message was sent back to the same node to continue the work after the local invocation.

Copy link
Collaborator

@lifflander lifflander left a comment

Choose a reason for hiding this comment

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

Overall, this looks great and it's nearly ready to merge I think. Just a little more doxygen to be added to the proxy interface for virtual collections. Also, we should just use the standard trace event.

@@ -83,7 +83,8 @@ enum class eTraceConstants : int32_t {
UserStat = 32,
BeginUserEventPair = 98,
EndUserEventPair = 99,
UserEventPair = 100
UserEventPair = 100,
LocalInvoke = 101
Copy link
Collaborator

Choose a reason for hiding this comment

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

Let's make this just a regular Creation event.

@@ -83,7 +83,8 @@ enum class eTraceConstants : int32_t {
UserStat = 32,
BeginUserEventPair = 98,
EndUserEventPair = 99,
UserEventPair = 100
UserEventPair = 100,
LocalInvoke = 101
Copy link
Collaborator

Choose a reason for hiding this comment

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

Projections doesn't do anything special for these.


namespace vt { namespace vrt { namespace collection {

template <typename ColT, typename IndexT, typename BaseProxyT>
Copy link
Collaborator

Choose a reason for hiding this comment

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

Can you add doxygen for these new methods here?

@JacobDomagala JacobDomagala force-pushed the 1051-add-local-invoke-for-proxies branch from 0523d66 to 30a7749 Compare November 28, 2020 19:03
@JacobDomagala
Copy link
Contributor Author

@PhilMiller @lifflander Currently invoke produces following traces:

  1. Creation event (let's say with trace_id == 2)
  2. Begin Processing (trace_id == 2)
    execute user's function
  3. End Processing (trace_id == 2)

So you're proposing we should add another Creation event like following?

  1. Creation event (let's say with trace_id == 2)
  2. Begin Processing (trace_id == 2)
    execute user's function
  3. End Processing (trace_id == 2)
  4. Creation event (trace_id == 3)

Or do you have something else in mind?

@JacobDomagala JacobDomagala force-pushed the 1051-add-local-invoke-for-proxies branch 2 times, most recently from 48b62ed to 139b844 Compare December 3, 2020 19:20
@JacobDomagala
Copy link
Contributor Author

PR updated

@JacobDomagala JacobDomagala force-pushed the 1051-add-local-invoke-for-proxies branch 2 times, most recently from ed923bd to 3cfcf22 Compare December 14, 2020 20:41
@lifflander
Copy link
Collaborator

PR updated

Looks good I think this is ready to rebase and merge

…y which instantly invokes the handler without going through scheduler
…iven handler inline without going through scheduler
@JacobDomagala JacobDomagala force-pushed the 1051-add-local-invoke-for-proxies branch from 3cfcf22 to e1d4ad4 Compare December 16, 2020 07:47
@JacobDomagala JacobDomagala merged commit 8acd899 into develop Dec 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add local invoke to proxies that trace and record LB
2 participants