XBT_DEBUG("Wait for execution of synchro %p, state %d", synchro, (int)synchro->state_);
/* Associate this simcall to the synchro */
XBT_DEBUG("Wait for execution of synchro %p, state %d", synchro, (int)synchro->state_);
/* Associate this simcall to the synchro */
{
if (timeout > 0 && not MC_is_active() && not MC_record_replay_is_active()) {
timeout_detector_ = hosts_.front()->pimpl_cpu->sleep(timeout);
{
if (timeout > 0 && not MC_is_active() && not MC_record_replay_is_active()) {
timeout_detector_ = hosts_.front()->pimpl_cpu->sleep(timeout);
} else {
surf_action_ = surf_host_model->execute_parallel(hosts_, flops_amounts_.data(), bytes_amounts_.data(), -1);
}
} else {
surf_action_ = surf_host_model->execute_parallel(hosts_, flops_amounts_.data(), bytes_amounts_.data(), -1);
}
double ExecImpl::get_seq_remaining_ratio()
{
return (surf_action_ == nullptr) ? 0 : surf_action_->get_remains() / surf_action_->get_cost();
double ExecImpl::get_seq_remaining_ratio()
{
return (surf_action_ == nullptr) ? 0 : surf_action_->get_remains() / surf_action_->get_cost();
resource::Action* old_action = this->surf_action_;
resource::Action* new_action = to->pimpl_cpu->execution_start(old_action->get_cost());
new_action->set_remains(old_action->get_remains());
resource::Action* old_action = this->surf_action_;
resource::Action* new_action = to->pimpl_cpu->execution_start(old_action->get_cost());
new_action->set_remains(old_action->get_remains());
new_action->set_priority(old_action->get_priority());
// FIXME: the user-defined bound seem to not be kept by LMM, that seem to overwrite it for the multi-core modeling.
// I hope that the user did not provide any.
new_action->set_priority(old_action->get_priority());
// FIXME: the user-defined bound seem to not be kept by LMM, that seem to overwrite it for the multi-core modeling.
// I hope that the user did not provide any.