#include "simgrid/s4u/Host.hpp"
#include "src/surf/maxmin_private.hpp"
+#include <list>
+
/***********
* Classes *
***********/
*/
virtual simgrid::surf::Action *execution_start(double size)=0;
+ /**
+ * @brief Execute some quantity of computation on more than one core
+ *
+ * @param size The value of the processing amount (in flop) needed to process
+ * @param requestedCores The desired amount of cores. Must be >= 1
+ * @return The CpuAction corresponding to the processing
+ */
+ virtual simgrid::surf::Action* execution_start(double size, int requestedCores)
+ {
+ THROW_UNIMPLEMENTED;
+ return nullptr;
+ }
+
/**
* @brief Make a process sleep for duration (in seconds)
*
virtual void setStateTrace(tmgr_trace_t trace); /*< setup the trace file with states events (ON or OFF). Trace must contain boolean values (0 or 1). */
virtual void setSpeedTrace(tmgr_trace_t trace); /*< setup the trace file with availability events (peak speed changes due to external load). Trace must contain relative values (ratio between 0 and 1) */
- tmgr_trace_iterator_t stateEvent_ = nullptr;
+ tmgr_trace_event_t stateEvent_ = nullptr;
s_surf_metric_t speed_ = {1.0, 0, nullptr};
};
void updateRemainingLazy(double now) override;
std::list<Cpu*> cpus();
+
+ void suspend() override;
+ void resume() override;
};
}