pub trait DynamicPlacementStrategy {
// Required methods
fn on_stage_ready(
&mut self,
dag_id: usize,
stage_id: usize,
graph: &Dag,
input_data: &BTreeMap<usize, Vec<DataItem>>,
input_data_shuffled: &BTreeMap<usize, Vec<Vec<DataItem>>>,
dfs: &DistributedFileSystem,
compute_host_info: &BTreeMap<Id, ComputeHost>,
network: &Network
) -> Vec<StageActions>;
fn on_task_completed(
&mut self,
dag_id: usize,
stage_id: usize,
task: usize,
graph: &Dag,
input_data: &BTreeMap<usize, Vec<DataItem>>,
input_data_shuffled: &BTreeMap<usize, Vec<Vec<DataItem>>>,
dfs: &DistributedFileSystem,
compute_host_info: &BTreeMap<Id, ComputeHost>,
network: &Network
) -> Vec<StageActions>;
fn on_stage_completed(
&mut self,
dag_id: usize,
stage_id: usize,
graph: &Dag,
input_data: &BTreeMap<usize, Vec<DataItem>>,
input_data_shuffled: &BTreeMap<usize, Vec<Vec<DataItem>>>,
dfs: &DistributedFileSystem,
compute_host_info: &BTreeMap<Id, ComputeHost>,
network: &Network
) -> Vec<StageActions>;
// Provided method
fn register_dag(&mut self, _dag_id: usize, _graph: &Dag) { ... }
}Expand description
Dynamic placement strategy.
It receives callbacks for some simulation events and can place some unplaced tasks from ready or running stages in reponse.
Required Methods§
sourcefn on_stage_ready(
&mut self,
dag_id: usize,
stage_id: usize,
graph: &Dag,
input_data: &BTreeMap<usize, Vec<DataItem>>,
input_data_shuffled: &BTreeMap<usize, Vec<Vec<DataItem>>>,
dfs: &DistributedFileSystem,
compute_host_info: &BTreeMap<Id, ComputeHost>,
network: &Network
) -> Vec<StageActions>
fn on_stage_ready( &mut self, dag_id: usize, stage_id: usize, graph: &Dag, input_data: &BTreeMap<usize, Vec<DataItem>>, input_data_shuffled: &BTreeMap<usize, Vec<Vec<DataItem>>>, dfs: &DistributedFileSystem, compute_host_info: &BTreeMap<Id, ComputeHost>, network: &Network ) -> Vec<StageActions>
Callback when a stage of some DAG is ready.
sourcefn on_task_completed(
&mut self,
dag_id: usize,
stage_id: usize,
task: usize,
graph: &Dag,
input_data: &BTreeMap<usize, Vec<DataItem>>,
input_data_shuffled: &BTreeMap<usize, Vec<Vec<DataItem>>>,
dfs: &DistributedFileSystem,
compute_host_info: &BTreeMap<Id, ComputeHost>,
network: &Network
) -> Vec<StageActions>
fn on_task_completed( &mut self, dag_id: usize, stage_id: usize, task: usize, graph: &Dag, input_data: &BTreeMap<usize, Vec<DataItem>>, input_data_shuffled: &BTreeMap<usize, Vec<Vec<DataItem>>>, dfs: &DistributedFileSystem, compute_host_info: &BTreeMap<Id, ComputeHost>, network: &Network ) -> Vec<StageActions>
Callback when some task is completed.
sourcefn on_stage_completed(
&mut self,
dag_id: usize,
stage_id: usize,
graph: &Dag,
input_data: &BTreeMap<usize, Vec<DataItem>>,
input_data_shuffled: &BTreeMap<usize, Vec<Vec<DataItem>>>,
dfs: &DistributedFileSystem,
compute_host_info: &BTreeMap<Id, ComputeHost>,
network: &Network
) -> Vec<StageActions>
fn on_stage_completed( &mut self, dag_id: usize, stage_id: usize, graph: &Dag, input_data: &BTreeMap<usize, Vec<DataItem>>, input_data_shuffled: &BTreeMap<usize, Vec<Vec<DataItem>>>, dfs: &DistributedFileSystem, compute_host_info: &BTreeMap<Id, ComputeHost>, network: &Network ) -> Vec<StageActions>
Callback when some stage is completed.