-
Notifications
You must be signed in to change notification settings - Fork 523
UCP/API: Flag to silence request leak check #6232
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
UCP/API: Flag to silence request leak check #6232
Conversation
|
@yosefe - Why MPI_Finalize does not cleanup the resources ? AFAIK, It supposed to track communicators and clean the resources. Adding @hppritcha |
src/ucp/api/ucp.h
Outdated
| * @ingroup UCP_WORKER | ||
| * @brief UCP worker flags | ||
| * | ||
| * This enumeration allows pecifying flags for @ref ucp_worker_params_t.flags, |
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.
specifying
src/ucp/core/ucp_worker.c
Outdated
|
|
||
| uct_thread_mode = UCS_THREAD_MODE_SINGLE; | ||
| worker->flags = 0; | ||
| worker->flags = (params->field_mask & UCP_WORKER_PARAM_FIELD_FLAGS) ? |
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.
minor: you can use UCP_PARAM_VALUE
| UCP_WORKER_FLAG_EXTERNAL_EVENT_FD = UCS_BIT(0), /**< worker event fd is external */ | ||
| UCP_WORKER_FLAG_EDGE_TRIGGERED = UCS_BIT(1), /**< events are edge-triggered */ | ||
| UCP_WORKER_FLAG_MT = UCS_BIT(2) /**< MT locking is required */ | ||
| /** MT locking is required */ |
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.
are values moved to allow combining with new params->flags?
Can you please add a comment and some check they are not mixed?
Some applications do not release all requests [even though required by MPI standard], and other MPI implementations do not warn about this. There are user applications that start to spew these warnings when ran with UCX, and users see this as UCX issue, and in cases just silence them by setting See similar reports:
Since that kind of leak does would not usually have side effects (MPI_Finalize is executed right before process exit), it would be better to not print it in case of MPI. |
|
I think part of the annoyance here (from user perspective) is that it generates tons of errors... Would it be better to generate one-liner error: your application leaked NN requests. @hppritcha @pavanbalaji is the preference from MPI community to silence this ? thanks ! |
MPICH only generates this when the user provides a special configure flag, not by default. From MPI's perspective, it doesn't matter if you throw an error in UCX or not. We keep track of MPI requests internally and would throw a warning (if the user specified the configure flag) anyway. The UCX warning would be redundant in that case. We could also release the UCX requests internally in |
As I read - MPICH detects the leak but does not really clean it up. |
preference for silence from the OMPI side. |
|
@shamisp are we good to go? |
|
👍 from my end. @tonycurtis can you please review documentation. |
tonycurtis
left a comment
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.
ucp.h:1137: could simplify to "if UCP_WORKER_......." not set, defaults to 0 ?
|
test output: |
|
@tonycurtis fixed the comment |
| return get_variant_value(0) == LEAK_IGNORE; | ||
| } | ||
|
|
||
| /// @override |
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.
minor extra / here and below
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.
it's supposed to be doxgen comment
https://www.doxygen.nl/manual/docblocks.html
A third alternative is to use a block of at least two C++ comment lines, where each line starts with an additional slash or an exclamation mark. Here are examples of the two cases:
///
/// ... text ...
///
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.
aa, ok
Some runtimes, such as MPI, allow exiting the application without releasing all allocated requests.
7a382c3 to
ebff59d
Compare
Why
Allow MPI runtime skip request leak check, which will silence errors like reported in open-mpi/ompi#8426