-
Notifications
You must be signed in to change notification settings - Fork 146
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
Legion issues more frames than requested by mapper #1680
Comments
While this minimal reproducer eventually hits the expected steady state, I want to mention that my real application does not. Click here to expand a trace for the full application
Summarizing what I see in the trace:
In the rest of the application run (not shown in the excerpt), the number of outstanding frames seems to be unpredictable, and the application issues anywhere from 2 to 3 frames at a time. Note that these are quite long-running frames (about 30 seconds each), so there's plenty of time for Legion to get ahead. Note also that the full application has no blocking calls and that if I don't put in the frame calls Legion will happily run the entire top-level task to completion and exit before any timesteps execute. In short, the application does not reach a predictable steady state and it seems we issue varying frames and the limit goes up to 4. The void RHSTMapper::configure_context(const MapperContext ctx,
const Task& task,
ContextConfigOutput& output)
{
output.min_tasks_to_schedule = 256;
output.min_frames_to_schedule = 1;
output.max_window_size = 1024;
output.max_outstanding_frames = 2;
output.hysteresis_percentage = 0;
} |
This should be fixed now that |
Confirmed that S3D is behaving properly with frames now. |
Here is a reproducer for an application that uses frames, along with a mapper that uses
configure_context
to control the number of outstanding frames.The relevant code snippets are the application loop, which issues one frame per iteration:
And the mapper, which sets 1 min and 2 max frames outstanding:
The full code is here: https://gist.github.com/elliottslaughter/4497a197cb51b9ba0afca57313f3531c
Run it like this:
You can clearly see that the application immediately schedules 4 frames, contrary to the request of the mapper. We then complete 3 frames and issue 1 more, bringing us to the correct number 2. We then complete one, issue one, and repeat for the rest of the application (as expected).
The text was updated successfully, but these errors were encountered: