-
Notifications
You must be signed in to change notification settings - Fork 868
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
MPI_T Events #8057
Open
cchambreau
wants to merge
23
commits into
open-mpi:main
Choose a base branch
from
cchambreau:topic/mpi_t_events
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
MPI_T Events #8057
Changes from all commits
Commits
Show all changes
23 commits
Select commit
Hold shift + click to select a range
9fd3e4e
Modify PERUSE code to implement MPI_T Events based on MPI 4.0 proposal.
hjelmn ed1aead
Modifications for changes to proposed MPI_T Events API as well as min…
cchambreau 1564ea4
remove include of dss.h
hppritcha 45fe4a0
Remove non-conformant event_get_info extent argument and internal tra…
cchambreau 9350bee
Add user_data argument to MPI_T_event_handle_free function.
cchambreau a0a398e
Fix generation of event_get_info displacements and related copy_data …
cchambreau 4b953c4
Minor cleanup
cchambreau 2152799
mpi_t events: convert to new profiling approach
hppritcha 7d81266
mpi_t events fix some missing files for
hppritcha 50b84fc
pr review feedback
hppritcha fb8a5f5
pr feedback - switch to opal_clock_gettime
hppritcha f4ffec2
suppress a compiler warning
hppritcha 6cf3312
pr feedback - remove assert
cchambreau 12dca5d
pr feedback - corrected comment references to events
cchambreau e6a0389
pr feedback - added locking for setting dropped event handler
cchambreau 7e617d4
pr feedback - copyright consistency for all event files
cchambreau d91a7ee
Protect source data access with thread locking.
cchambreau 35e202a
Add OPAL_LIKELY
cchambreau 88c7717
Correct OSC event descriptions.
cchambreau 9ac3f5f
Ensure consistency between ompi and opal callback safety requirement
cchambreau 8853c60
Ensure thread safety for incremented variables.
cchambreau 750af0c
Add function to lookup ompi datatype from opal datatype id.
cchambreau 66b29d5
fix compile problem after rebase
hppritcha File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
/* -*- Mode: C; c-basic-offset:4 ; -*- */ | ||
/* | ||
* $COPYRIGHT$ | ||
* | ||
* Additional copyrights may follow | ||
* | ||
* $HEADER$ | ||
*/ | ||
|
||
#include "ompi_config.h" | ||
#include "ompi/datatype/ompi_datatype.h" | ||
#include "ompi/datatype/ompi_datatype_internal.h" | ||
|
||
|
||
ompi_datatype_t* ompi_datatype_lookup_by_opal_id( uint16_t opal_id ) | ||
{ | ||
int32_t i; | ||
const ompi_datatype_t* datatype = NULL; | ||
|
||
for (int j = 0 ; j < OMPI_DATATYPE_MPI_MAX_PREDEFINED ; ++j) { | ||
if (ompi_datatype_basicDatatypes[j]->super.id == opal_id) { | ||
datatype = (ompi_datatype_t *) ompi_datatype_basicDatatypes[j]; | ||
break; | ||
} | ||
} | ||
|
||
return datatype; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OPAL and OMPI datatypes are different things, and multiple OMPI datatypes will be mapped unto the same underlying OPAL datatype. Thus, looking for an OMPI datatype that matches a specific OPAL id, will give you the first OMPI datatype that matches that id, and that might be an OMPI datatype that is equivalent to your original one, but not necessarily the same. Why are you not always manipulating OMPI datatype id (which would be unique for each datatype).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@bosilca I see what you are saying. The underlying event support is implemented in opal/mca/base/mca_base_event.* with opal_datatype_t, which is a different size than ompi_datatype_t (uint16_t / uint32_t). The currently implemented events are in OMPI modules. Do you have a suggestion for tracking OMPI datatypes with the OPAL support?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the intent here is:
I think @bosilca is asking to maintain the clean separation between the two. Hence, you'll need to look up MPI datatypes as MPI datatypes -- not OPAL datatypes.
The same concept applies to the base MPI_T event support: it should be tracking MPI events and MPI datatypes and other MPI objects. If desirable, there could be an underlying OPAL "event tracking" engine that does things in an MPI-agnostic way (wholly independent of the MPI layer APIs and MPI semantics). This would be useful, for example, if we want to be able to track OPAL-level events that have no knowledge of the MPI layer (the BTLs seem like an obvious candidate here, for example).
The MPI_T functionality in the MPI layer should be able to call down into the OPAL "event tracking" engine to track MPI-level events.
The tricky part will then be how to correlate MPI-level events with OPAL-level events (e.g., how to correlate BTL events to specific MPI communicators, for example).