X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/097befdbebacea302be3a7442afce30ae1a26937..f159a7002798e65df6c90c3b9f774f48920aa41b:/src/surf/host_ptask_L07.cpp diff --git a/src/surf/host_ptask_L07.cpp b/src/surf/host_ptask_L07.cpp index 69b9b75480..a66b50869b 100644 --- a/src/surf/host_ptask_L07.cpp +++ b/src/surf/host_ptask_L07.cpp @@ -202,7 +202,6 @@ L07Action::L07Action(Model *model, int host_nb, int nb_used_host = 0; /* Only the hosts with something to compute (>0 flops) are counted) */ double latency = 0.0; - xbt_dict_t ptask_parallel_task_link_set = xbt_dict_new_homogeneous(NULL); this->p_netcardList->reserve(host_nb); for (int i = 0; i 0) nb_used_host++; - XBT_DEBUG("Creating a parallel task (%p) with %d cpus and %d links.", - this, host_nb, nb_link); + XBT_DEBUG("Creating a parallel task (%p) with %d hosts and %d unique links.", this, host_nb, nb_link); this->p_computationAmount = flops_amount; this->p_communicationAmount = bytes_amount; this->m_latency = latency; this->m_rate = rate; this->p_variable = lmm_variable_new(model->getMaxminSystem(), this, 1.0, - (rate > 0 ? rate : -1.0), - host_nb + nb_link); + (rate > 0 ? rate : -1.0), + host_nb + nb_link); if (this->m_latency > 0) lmm_update_variable_weight(model->getMaxminSystem(), this->getVariable(), 0.0); for (int i = 0; i < host_nb; i++) - lmm_expand(model->getMaxminSystem(), - host_list[i]->pimpl_cpu->getConstraint(), - this->getVariable(), flops_amount[i]); + lmm_expand(model->getMaxminSystem(), host_list[i]->pimpl_cpu->getConstraint(), + this->getVariable(), flops_amount[i]); if(bytes_amount != NULL) { for (int i = 0; i < host_nb; i++) { @@ -298,9 +297,7 @@ Action *NetworkL07Model::communicate(NetCard *src, NetCard *dst, host_list[1] = sg_host_by_name(dst->getName()); bytes_amount[1] = size; - res = p_hostModel->executeParallelTask(2, host_list, - flops_amount, - bytes_amount, rate); + res = p_hostModel->executeParallelTask(2, host_list, flops_amount, bytes_amount, rate); return res; } @@ -349,22 +346,22 @@ void HostL07Model::addTraces() /* Connect traces relative to cpu */ xbt_dict_foreach(trace_connect_list_host_avail, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - CpuL07 *host = static_cast(sg_host_by_name(elm)->pimpl_cpu); + Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu; - xbt_assert(host, "Host %s undefined", elm); + xbt_assert(cpu, "Host %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); - host->p_stateEvent = future_evt_set->add_trace(trace, 0.0, host); + cpu->set_state_trace(trace); } - xbt_dict_foreach(trace_connect_list_power, cursor, trace_name, elm) { + xbt_dict_foreach(trace_connect_list_host_speed, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); - CpuL07 *host = static_cast(sg_host_by_name(elm)->pimpl_cpu); + Cpu *cpu = sg_host_by_name(elm)->pimpl_cpu; - xbt_assert(host, "Host %s undefined", elm); + xbt_assert(cpu, "Host %s undefined", elm); xbt_assert(trace, "Trace %s undefined", trace_name); - host->p_speedEvent = future_evt_set->add_trace(trace, 0.0, host); + cpu->set_speed_trace(trace); } /* Connect traces relative to network */ @@ -378,7 +375,7 @@ void HostL07Model::addTraces() link->p_stateEvent = future_evt_set->add_trace(trace, 0.0, link); } - xbt_dict_foreach(trace_connect_list_bandwidth, cursor, trace_name, elm) { + xbt_dict_foreach(trace_connect_list_link_bw, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); LinkL07 *link = static_cast(Link::byName(elm)); @@ -388,7 +385,7 @@ void HostL07Model::addTraces() link->p_bwEvent = future_evt_set->add_trace(trace, 0.0, link); } - xbt_dict_foreach(trace_connect_list_latency, cursor, trace_name, elm) { + xbt_dict_foreach(trace_connect_list_link_lat, cursor, trace_name, elm) { tmgr_trace_t trace = (tmgr_trace_t) xbt_dict_get_or_null(traces_set_list, trace_name); LinkL07 *link = static_cast(Link::byName(elm)); @@ -450,32 +447,25 @@ LinkL07::LinkL07(NetworkL07Model *model, const char* name, xbt_dict_t props, lmm_constraint_shared(getConstraint()); } -Action *CpuL07::execute(double size) +Action *CpuL07::execution_start(double size) { sg_host_t*host_list = xbt_new0(sg_host_t, 1); double *flops_amount = xbt_new0(double, 1); - double *bytes_amount = xbt_new0(double, 1); host_list[0] = getHost(); flops_amount[0] = size; - return static_cast(getModel()) - ->p_hostModel - ->executeParallelTask( 1, host_list, flops_amount, bytes_amount, -1); + return static_cast(getModel())->p_hostModel + ->executeParallelTask( 1, host_list, flops_amount, NULL, -1); } Action *CpuL07::sleep(double duration) { - L07Action *action = NULL; - - XBT_IN("(%s,%g)", getName(), duration); - - action = static_cast(execute(1.0)); + L07Action *action = static_cast(execution_start(1.0)); action->m_maxDuration = duration; action->m_suspended = 2; lmm_update_variable_weight(getModel()->getMaxminSystem(), action->getVariable(), 0.0); - XBT_OUT(); return action; } @@ -571,8 +561,7 @@ void LinkL07::updateLatency(double value, double date) **********/ L07Action::~L07Action(){ - if (p_communicationAmount != NULL) - free(p_communicationAmount); + free(p_communicationAmount); free(p_computationAmount); } @@ -624,46 +613,5 @@ int L07Action::unref() return 0; } -void L07Action::suspend() -{ - XBT_IN("(%p))", this); - if (m_suspended != 2) { - m_suspended = 1; - lmm_update_variable_weight(getModel()->getMaxminSystem(), getVariable(), 0.0); - } - XBT_OUT(); -} - -void L07Action::resume() -{ - XBT_IN("(%p)", this); - if (m_suspended != 2) { - lmm_update_variable_weight(getModel()->getMaxminSystem(), getVariable(), 1.0); - m_suspended = 0; - } - XBT_OUT(); -} - -void L07Action::setMaxDuration(double duration) -{ /* FIXME: should inherit */ - XBT_IN("(%p,%g)", this, duration); - m_maxDuration = duration; - XBT_OUT(); -} - -void L07Action::setPriority(double priority) -{ /* FIXME: should inherit */ - XBT_IN("(%p,%g)", this, priority); - m_priority = priority; - XBT_OUT(); -} - -double L07Action::getRemains() -{ - XBT_IN("(%p)", this); - XBT_OUT(); - return m_remains; -} - } }