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

Add trigger_thread_count #251

Open
mdorier opened this issue Mar 8, 2023 · 0 comments
Open

Add trigger_thread_count #251

mdorier opened this issue Mar 8, 2023 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@mdorier
Copy link
Contributor

mdorier commented Mar 8, 2023

Currently the progress loop runs both HG_Progress and HG_Trigger. When mixing Margo with pure-Mercury RPCs, this forces these RPCs to run in the context of the progress loop because they are not submitted as ULTs to RPC pools.

The solution would be to have a trigger_thread_count parameter in Margo, which would tell Margo to create a specified number of new ES, each running a ULT blocking on HG_Trigger. If trigger_thread_count=0 (default), HG_Trigger would be called in the context of the progress loop.

Note: Because HG_Trigger blocks in a way that will not yield to other ULTs, these extra ES should not be used to schedule work other than the trigger ULT (technically these extra ES could well be pthreads instead of ES, but I find it cleaner to use ES).

@mdorier mdorier added the enhancement New feature or request label Mar 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants