pub struct GornaArbitrator { /* private fields */ }Expand description
Arbitrates resource allocation between multiple ISAs.
The arbitrator implements a two-pass approach:
- Pass 1 (Negotiation): Collects strategy options from all agents.
- Pass 2 (Fitting): Selects the optimal strategy combination that fits within the global frame budget, respecting priorities and VRAM constraints.
Implementations§
Source§impl GornaArbitrator
impl GornaArbitrator
Sourcepub fn new(lock_timeout: Duration) -> Self
pub fn new(lock_timeout: Duration) -> Self
Creates a new arbitrator with the specified lock timeout.
The lock timeout determines how long to wait when acquiring locks on agents during negotiation and budget issuance. Agents that cannot be locked within this timeout are skipped.
Sourcepub fn arbitrate(
&self,
context: &Context,
report: &AnalysisReport,
agents: &mut [Arc<Mutex<dyn Agent>>],
)
pub fn arbitrate( &self, context: &Context, report: &AnalysisReport, agents: &mut [Arc<Mutex<dyn Agent>>], )
Performs a full GORNA arbitration round.
§Arguments
context: The current DCC situational model (phase, hardware, multiplier).report: The analysis report from theHeuristicEngine.agents: The registered ISA agents.
Auto Trait Implementations§
impl Freeze for GornaArbitrator
impl RefUnwindSafe for GornaArbitrator
impl Send for GornaArbitrator
impl Sync for GornaArbitrator
impl Unpin for GornaArbitrator
impl UnwindSafe for GornaArbitrator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more