surf_callback(void, void) surfExitCallbacks;
s_surf_model_description_t surf_plugin_description[] = {
- {"Energy",
- "Cpu energy consumption.",
- sg_energy_plugin_init},
+ {"Energy", "Cpu energy consumption.", sg_energy_plugin_init},
{NULL, NULL, NULL} /* this array must be NULL terminated */
};
{"SMPI",
"Realistic network model specifically tailored for HPC settings (accurate modeling of slow start with correction factors on three intervals: < 1KiB, < 64 KiB, >= 64 KiB)",
surf_network_model_init_SMPI},
+ {"IB",
+ "Realistic network model specifically tailored for HPC settings, with Infiniband contention model",
+ surf_network_model_init_IB},
{"CM02",
"Legacy network analytic model (Very similar to LV08, but without corrective factors. The timings of small messages are thus poorly modeled).",
surf_network_model_init_CM02},
action->getMaxDuration());
if (min != -1) {
- action->heapRemove(p_actionHeap);
- action->heapInsert(p_actionHeap, min, max_dur_flag ? MAX_DURATION : NORMAL);
+ action->heapUpdate(p_actionHeap, min, max_dur_flag ? MAX_DURATION : NORMAL);
XBT_DEBUG("Insert at heap action(%p) min %f now %f", action, min,
now);
} else DIE_IMPOSSIBLE;
void Model::updateActionsStateLazy(double /*now*/, double /*delta*/)
{
+ THROW_UNIMPLEMENTED;
}
void Model::updateActionsStateFull(double /*now*/, double /*delta*/)
{
+ THROW_UNIMPLEMENTED;
}
/************
{
XBT_IN("(%p,%g)", this, bound);
if (p_variable)
- lmm_update_variable_bound(getModel()->getMaxminSystem(), getVariable(), bound);
+ lmm_update_variable_bound(getModel()->getMaxminSystem(), p_variable, bound);
if (getModel()->getUpdateMechanism() == UM_LAZY && getLastUpdate()!=surf_get_clock())
heapRemove(getModel()->getActionHeap());
}
}
+void Action::heapUpdate(xbt_heap_t heap, double key, enum heap_action_type hat)
+{
+ m_hat = hat;
+ if (m_indexHeap >= 0) {
+ xbt_heap_update(heap, m_indexHeap, key);
+ }else{
+ xbt_heap_push(heap, this, key);
+ }
+}
+
/* added to manage the communication action's heap */
void surf_action_lmm_update_index_heap(void *action, int i) {
((ActionPtr)action)->updateIndexHeap(i);
m_lastUpdate = now;
m_lastValue = lmm_variable_getvalue(getVariable());
}
-