X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/67d66b0cf79b9fc02c0450f254584693dbf21d3b..14395882a33613da82251cc43bce52f55f66c617:/include/simgrid/s4u/Host.hpp diff --git a/include/simgrid/s4u/Host.hpp b/include/simgrid/s4u/Host.hpp index b59ec85d10..a06ef845e2 100644 --- a/include/simgrid/s4u/Host.hpp +++ b/include/simgrid/s4u/Host.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2006-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2006-2023. The SimGrid Team. All rights reserved. */ /* 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. */ @@ -9,7 +9,6 @@ #include #include #include -#include #include #include @@ -87,7 +86,7 @@ public: static Host* current(); /** Retrieves the name of that host as a C++ string */ - xbt::string const& get_name() const; + std::string const& get_name() const; /** Retrieves the name of that host as a C string */ const char* get_cname() const; @@ -134,6 +133,14 @@ public: Host* set_state_profile(kernel::profile::Profile* p); Host* set_speed_profile(kernel::profile::Profile* p); + /** + * @brief Set the max amount of executions that can take place on this host at the same time + * + * Use -1 to set no limit. + */ + Host* set_concurrency_limit(int limit); + int get_concurrency_limit() const; + /** @brief Convert the CPU's speed from string to double */ static std::vector convert_pstate_speed_vector(const std::vector& speed_per_state); /** @@ -152,13 +159,19 @@ public: /** @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 set_speed_profile()), you must multiply the - * result of get_speed() by get_available_speed() to retrieve what a new computation would get. + * - The current pstate determines the maximal peak computing speed (use + * @verbatim embed:rst:inline :cpp:func:`get_pstate_speed() ` @endverbatim + * to retrieve the computing speed you would get at another pstate) + * - If you declared an external load (with + * @verbatim embed:rst:inline :cpp:func:`set_speed_profile() ` @endverbatim ), + * you must multiply the result of + * @verbatim embed:rst:inline :cpp:func:`get_speed() ` @endverbatim by + * @verbatim embed:rst:inline :cpp:func:`get_available_speed() ` @endverbatim + * 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(). + * You can retrieve the amount of tasks currently running on this host with + * @verbatim embed:rst:inline :cpp:func:`get_load() ` @endverbatim . * * The host may have multiple cores, and your executions may be able to use more than a single core. * @@ -167,7 +180,8 @@ public: double get_speed() const; /** @brief Get the available speed ratio, between 0 and 1. * - * This accounts for external load (see @ref set_speed_profile()). + * This accounts for external load (see + * @verbatim embed:rst:inline :cpp:func:`set_speed_profile() ` @endverbatim ). */ double get_available_speed() const; @@ -220,9 +234,12 @@ public: VirtualMachine* create_vm(const std::string& name, int core_amount); VirtualMachine* create_vm(const std::string& name, int core_amount, size_t ramsize); + /** Retrieve a VM running on this host from its name, or return nullptr */ + VirtualMachine* vm_by_name_or_null(const std::string& name); void route_to(const Host* dest, std::vector& links, double* latency) const; - void route_to(const Host* dest, std::vector& links, double* latency) const; + void route_to(const Host* dest, std::vector& links, double* latency) const; + std::pair, double> route_to(const Host* dest) const; /** * @brief Seal this host @@ -230,11 +247,6 @@ public: */ Host* seal(); -#ifndef DOXYGEN - XBT_ATTRIB_DEPRECATED_v331("Please use Comm::sendto()") void sendto(Host* dest, double byte_amount); - XBT_ATTRIB_DEPRECATED_v331("Please use Comm::sendto_async()") CommPtr sendto_async(Host* dest, double byte_amount); -#endif - NetZone* get_englobing_zone() const; /** Block the calling actor on an execution located on the called host *