The fleet scheduler's feasibility filter and score: why a program cannot run on a member, or the weighted terms of running it there
$ sexc add @ajax/mesh-sched-score- total 3
- drwxr-xr-x-../
- drwxr-xr-x-Oct 27 04:09v/# 1 version
- drwxr-xr-x-Oct 27 04:09files/# the files of 0.1.0
- latest
- 0.1.0, published Oct 27 04:09 by ajax
- owners
- ajax
- license
- MIT
- dependencies
- @ajax/mesh-check ^0.1.0, @ajax/mesh-mt ^0.1.0, @ajax/mesh-sched-member ^0.1.0, @ajax/mesh-sched-needs ^0.1.0, @ajax/mesh-sched-weights ^0.1.0, @ajax/mesh-abi-base ^0.1.0
- dependents
- @ajax/mesh-jobs-sched, @ajax/mesh-peer-relay, @ajax/mesh-sched-place, @ajax/mesh-sched-tracker
- keywords
- mesh alphaos fleet scheduler score filter
- homepage
- https://github.com/thomasdavis/alpha-c-mesh/tree/main/packages/mesh-sched-score
- repository
- https://github.com/thomasdavis/alpha-c-mesh
1# @ajax/mesh-sched-score 2 3The fleet scheduler's feasibility filter and score: 4 5- `msc_filter`: the executor a program would run on at a member, or the first reason it cannot run 6 there (down, cordoned, backends, arch, `min_mem_mb`, avoid, a GPU node too big for the member's GPU); 7- `msc_score_terms`: the weighted terms of running it there (the processor share it would get times 8 its measured speed, CPU headroom after the move, memory headroom, spread or pack, link RTT, prefer, 9 stickiness, the owner penalty), and `msc_explain` their text. 10 11The arithmetic keeps the Rust's f32 and f64 steps in the same order, so a C and a Rust leader decide 12the same from the same inputs. 13 14## Ported from 15 16[alpha-rust-mesh](https://github.com/rsafier/alpha-rust-mesh) `crates/mesh-host/src/sched.rs`: 17`filter`, `eligible`, `Score` (`explain`), `Cx` (`simple`), `score_terms`, `score`. 18 19## Tests 20 21`tests/score.c`: the Rust's `filter_keeps_the_first_reason`, `node_shape_filters_members` (its filter 22part) and `scores_follow_share_speed_load_and_prefer`; an explain text checked against the Rust. 23 24## Licence 25 26MIT. See the repository's LICENSE.