skip to content
[readonly]

The fleet scheduler's feasibility filter and score: why a program cannot run on a member, or the weighted terms of running it there

sh
$ 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
==> README.md <==
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.