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

planner: store jobid and jobtype in scheduled_point_t #590

Closed
milroy opened this issue Feb 11, 2020 · 2 comments
Closed

planner: store jobid and jobtype in scheduled_point_t #590

milroy opened this issue Feb 11, 2020 · 2 comments

Comments

@milroy
Copy link
Member

milroy commented Feb 11, 2020

This question and potential enhancement is related to (and may supersede) PR #584, as well as issues #576, #558, and #552.

Scheduling of adaptive and elastic jobs extends the intention of:

int64_t planner_avail_resources_during (planner_t *ctx, int64_t at,
Since different job types have different relative priorities, the number of available resources at each scheduled point depends on the job type being matched. Furthermore, the score of each vertex should depend on the number of elastic, adaptive, and rigid jobs allocated or reserved at the point in time in question.

So far I've been refactoring flux-sched to accommodate a planner_t for each job type. This approach has undesirable effects: the additional overhead of multiple planners, the code bloat of added logic related to checking which job types are running at various times (and their relative priorities), and the inelegance of querying the g[v].schedule.allocations or g[v].schedule.reservations to get jobids. Note that my testing indicates that the exclusive planner will also need a separate instance per job type.

Beyond that, if we allow adaptive jobs to hold reservations:

int dfu_impl_t::upd_plan (vtx_t u, const subsystem_t &s, unsigned int needs,
will need to check which and how many job types are allocated/reserved during jobmeta.at. Such functionality is not possible clumsy with the current planner design.

Should we extend planner and scheduled_point_t to store jobids and jobtypes? An inspection of planner.c suggests that this could be an involved undertaking.

@milroy
Copy link
Member Author

milroy commented Feb 11, 2020

@dongahn and I discussed this issue today. We decided that modifying planner to include the specified metadata will add significant, undesirable complexity. @dongahn suggested that I subsume this information and the logic checks for availability into planner_multi_t. The implication of this change is that each planner_t will need to be refactored to be a planner_multi_t.

@dongahn
Copy link
Member

dongahn commented Jul 16, 2020

Also probably old.

@dongahn dongahn closed this as completed Jul 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants