- bool isOn();
- /** Returns if that host is currently down and offline */
- bool isOff() { return not isOn(); }
-
- double getSpeed();
- double get_available_speed();
- int getCoreCount();
- std::map<std::string, std::string>* getProperties();
- const char* getProperty(const char* key);
- void setProperty(std::string key, std::string value);
- void getProcesses(std::vector<ActorPtr> * list);
- int get_actor_count();
- double getPstateSpeed(int pstate_index);
- int getPstatesCount() const;
- void setPstate(int pstate_index);
- int getPstate();
- std::vector<const char*> get_attached_storages();
- XBT_ATTRIB_DEPRECATED_v323("Please use Host::get_attached_storages() instead.") void getAttachedStorages(
- std::vector<const char*>* storages);
+ bool is_on() const;
+
+ const char* get_property(const std::string& key) const;
+ void set_property(const std::string& key, const std::string& value);
+ const std::unordered_map<std::string, std::string>* get_properties() const;
+ void set_properties(const std::map<std::string, std::string>& properties);
+
+ void set_state_profile(kernel::profile::Profile* p);
+ void set_speed_profile(kernel::profile::Profile* p);
+
+ /** @brief Get the peak computing speed in flops/s at the current pstate, NOT taking the external load into account.
+ *
+ * The amount of flops per second available for computing depends on several things:
+ * - The current pstate determines the maximal peak computing speed (use @ref get_pstate_speed() to retrieve the
+ * computing speed you would get at another pstate)
+ * - If you declared an external load (with @ref simgrid::surf::Cpu::set_speed_profile()), you must multiply the
+ * result of get_speed() by get_available_speed() to retrieve what a new computation would get.
+ *
+ * The remaining speed is then shared between the executions located on this host.
+ * You can retrieve the amount of tasks currently running on this host with @ref get_load().
+ *
+ * The host may have multiple cores, and your executions may be able to use more than a single core.
+ *
+ * Finally, executions of priority 2 get twice the amount of flops than executions of priority 1.
+ */
+ double get_speed() const;
+ /** @brief Get the available speed ratio, between 0 and 1.
+ *
+ * This accounts for external load (see @ref simgrid::surf::Cpu::set_speed_profile()).
+ */
+ double get_available_speed() const;
+ /** Returns the number of core of the processor. */
+ int get_core_count() const;
+ /** Returns the current computation load (in flops per second)
+ *
+ * The external load (coming from an availability trace) is not taken in account.
+ * You may also be interested in the load plugin.
+ */
+ double get_load() const;
+
+ double get_pstate_speed(int pstate_index) const;
+ int get_pstate_count() const;
+ void set_pstate(int pstate_index);
+ int get_pstate() const;
+
+ std::vector<Disk*> get_disks() const;
+ void add_disk(Disk* disk);
+ void remove_disk(const std::string& disk_name);
+
+ std::vector<const char*> get_attached_storages() const;