A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[surf] Fix bad cast, CpuL07::getModel() is a CpuL07Model* not a HostL07Model*
[simgrid.git]
/
src
/
surf
/
host_ptask_L07.cpp
diff --git
a/src/surf/host_ptask_L07.cpp
b/src/surf/host_ptask_L07.cpp
index
3dcb404
..
20b4d50
100644
(file)
--- a/
src/surf/host_ptask_L07.cpp
+++ b/
src/surf/host_ptask_L07.cpp
@@
-4,6
+4,10
@@
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
+#include <cstdlib>
+
+#include <algorithm>
+
#include "host_ptask_L07.hpp"
#include "cpu_interface.hpp"
#include "host_ptask_L07.hpp"
#include "cpu_interface.hpp"
@@
-37,12
+41,15
@@
void surf_host_model_init_ptask_L07(void)
sg_platf_link_add_cb(ptask_netlink_parse_init);
sg_platf_postparse_add_cb(host_add_traces);
sg_platf_link_add_cb(ptask_netlink_parse_init);
sg_platf_postparse_add_cb(host_add_traces);
- surf_host_model = new HostL07Model();
- Model *model = surf_host_model;
+ surf_host_model = new
simgrid::surf::
HostL07Model();
+
simgrid::surf::
Model *model = surf_host_model;
xbt_dynar_push(all_existing_models, &model);
}
xbt_dynar_push(all_existing_models, &model);
}
+namespace simgrid {
+namespace surf {
+
HostL07Model::HostL07Model() : HostModel() {
if (!ptask_maxmin_system)
ptask_maxmin_system = lmm_system_new(1);
HostL07Model::HostL07Model() : HostModel() {
if (!ptask_maxmin_system)
ptask_maxmin_system = lmm_system_new(1);
@@
-263,22
+270,14
@@
Action *HostL07Model::executeParallelTask(int host_nb,
return action;
}
return action;
}
-Host *HostL07Model::createHost(const char *name)
+Host *HostL07Model::createHost(const char *name
,RoutingEdge *netElm, Cpu *cpu
)
{
{
- HostL07 *wk = NULL;
- sg_host_t sg_host = sg_host_by_name(name);
+ HostL07 *host = new HostL07(this, name, NULL, netElm, cpu);
- xbt_assert(!surf_host_resource_priv(sg_host),
- "Host '%s' declared several times in the platform file.",
- name);
+ surf_callback_emit(hostCreatedCallbacks, host);
+ simgrid::Host::get_host(name)->set_facet(SURF_HOST_LEVEL, host);
- wk = new HostL07(this, name, NULL,
- sg_host_edge(sg_host),
- sg_host_surfcpu(sg_host));
- surf_callback_emit(hostCreatedCallbacks, wk);
- xbt_lib_set(host_lib, name, SURF_HOST_LEVEL, wk);
-
- return wk;
+ return host;
}
Action *NetworkL07Model::communicate(RoutingEdge *src, RoutingEdge *dst,
}
Action *NetworkL07Model::communicate(RoutingEdge *src, RoutingEdge *dst,
@@
-317,10
+316,6
@@
Cpu *CpuL07Model::createCpu(const char *name, xbt_dynar_t powerPeak,
double power_initial = xbt_dynar_get_as(powerPeak, pstate, double);
sg_host_t sg_host = sg_host_by_name(name);
double power_initial = xbt_dynar_get_as(powerPeak, pstate, double);
sg_host_t sg_host = sg_host_by_name(name);
- xbt_assert(!surf_host_resource_priv(sg_host),
- "Host '%s' declared several times in the platform file.",
- name);
-
CpuL07 *cpu = new CpuL07(this, name, cpu_properties,
power_initial, power_scale, power_trace,
core, state_initial, state_trace);
CpuL07 *cpu = new CpuL07(this, name, cpu_properties,
power_initial, power_scale, power_trace,
core, state_initial, state_trace);
@@
-376,7
+371,7
@@
void HostL07Model::addTraces()
xbt_assert(host, "Host %s undefined", elm);
xbt_assert(trace, "Trace %s undefined", trace_name);
xbt_assert(host, "Host %s undefined", elm);
xbt_assert(trace, "Trace %s undefined", trace_name);
- host->p_
power
Event = tmgr_history_add_trace(history, trace, 0.0, 0, host);
+ host->p_
speed
Event = tmgr_history_add_trace(history, trace, 0.0, 0, host);
}
/* Connect traces relative to network */
}
/* Connect traces relative to network */
@@
-421,17
+416,17
@@
HostL07::HostL07(HostModel *model, const char* name, xbt_dict_t props, RoutingEd
}
CpuL07::CpuL07(CpuL07Model *model, const char* name, xbt_dict_t props,
}
CpuL07::CpuL07(CpuL07Model *model, const char* name, xbt_dict_t props,
- double
power_initial, double power_scale, tmgr_trace_t power_t
race,
+ double
speedInitial, double speedScale, tmgr_trace_t speedT
race,
int core, e_surf_resource_state_t state_initial, tmgr_trace_t state_trace)
int core, e_surf_resource_state_t state_initial, tmgr_trace_t state_trace)
- : Cpu(model, name, props, lmm_constraint_new(ptask_maxmin_system, this,
power_initial * power_s
cale),
- core,
power_initial, power_s
cale, state_initial)
+ : Cpu(model, name, props, lmm_constraint_new(ptask_maxmin_system, this,
speedInitial * speedS
cale),
+ core,
speedInitial, speedS
cale, state_initial)
{
{
- xbt_assert(m_
power
Scale > 0, "Power has to be >0");
+ xbt_assert(m_
speed
Scale > 0, "Power has to be >0");
- if (
power_t
race)
- p_
powerEvent = tmgr_history_add_trace(history, power_t
race, 0.0, 0, this);
+ if (
speedT
race)
+ p_
speedEvent = tmgr_history_add_trace(history, speedT
race, 0.0, 0, this);
else
else
- p_
power
Event = NULL;
+ p_
speed
Event = NULL;
if (state_trace)
p_stateEvent = tmgr_history_add_trace(history, state_trace, 0.0, 0, this);
if (state_trace)
p_stateEvent = tmgr_history_add_trace(history, state_trace, 0.0, 0, this);
@@
-470,9
+465,9
@@
Action *CpuL07::execute(double size)
host_list[0] = sg_host_by_name(getName());
flops_amount[0] = size;
host_list[0] = sg_host_by_name(getName());
flops_amount[0] = size;
- return static_cast<
HostL07Model*>(getModel())->executeParallelTask(1, host_list,
- flops_amount,
-
bytes_amount, -1);
+ return static_cast<
CpuL07Model*>(getModel())
+ ->p_hostModel
+
->executeParallelTask( 1, host_list, flops_amount,
bytes_amount, -1);
}
Action *CpuL07::sleep(double duration)
}
Action *CpuL07::sleep(double duration)
@@
-500,11
+495,11
@@
bool LinkL07::isUsed(){
void CpuL07::updateState(tmgr_trace_event_t event_type, double value, double /*date*/){
XBT_DEBUG("Updating cpu %s (%p) with value %g", getName(), this, value);
void CpuL07::updateState(tmgr_trace_event_t event_type, double value, double /*date*/){
XBT_DEBUG("Updating cpu %s (%p) with value %g", getName(), this, value);
- if (event_type == p_
power
Event) {
- m_
power
Scale = value;
- lmm_update_constraint_bound(ptask_maxmin_system, getConstraint(), m_
powerPeak * m_power
Scale);
+ if (event_type == p_
speed
Event) {
+ m_
speed
Scale = value;
+ lmm_update_constraint_bound(ptask_maxmin_system, getConstraint(), m_
speedPeak * m_speed
Scale);
if (tmgr_trace_event_free(event_type))
if (tmgr_trace_event_free(event_type))
- p_
power
Event = NULL;
+ p_
speed
Event = NULL;
} else if (event_type == p_stateEvent) {
if (value > 0)
setState(SURF_RESOURCE_ON);
} else if (event_type == p_stateEvent) {
if (value > 0)
setState(SURF_RESOURCE_ON);
@@
-559,11
+554,6
@@
void LinkL07::updateBandwidth(double value, double date)
lmm_update_constraint_bound(ptask_maxmin_system, getConstraint(), m_bwCurrent);
}
lmm_update_constraint_bound(ptask_maxmin_system, getConstraint(), m_bwCurrent);
}
-double LinkL07::getLatency()
-{
- return m_latCurrent;
-}
-
void LinkL07::updateLatency(double value, double date)
{
lmm_variable_t var = NULL;
void LinkL07::updateLatency(double value, double date)
{
lmm_variable_t var = NULL;
@@
-577,12
+567,6
@@
void LinkL07::updateLatency(double value, double date)
}
}
}
}
-
-bool LinkL07::isShared()
-{
- return lmm_constraint_is_shared(getConstraint());
-}
-
/**********
* Action *
**********/
/**********
* Action *
**********/
@@
-619,7
+603,8
@@
void L07Action::updateBound()
if (m_rate < 0)
lmm_update_variable_bound(ptask_maxmin_system, getVariable(), lat_bound);
else
if (m_rate < 0)
lmm_update_variable_bound(ptask_maxmin_system, getVariable(), lat_bound);
else
- lmm_update_variable_bound(ptask_maxmin_system, getVariable(), min(m_rate, lat_bound));
+ lmm_update_variable_bound(ptask_maxmin_system, getVariable(),
+ std::min(m_rate, lat_bound));
}
}
}
}
@@
-688,3
+673,6
@@
double L07Action::getRemains()
XBT_OUT();
return m_remains;
}
XBT_OUT();
return m_remains;
}
+
+}
+}