]> AND Public Git Repository - simgrid.git/blobdiff - src/kernel/lmm/bmf.hpp
Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
MC: make it clear that we only have the info about the ready-to-run actors in a given...
[simgrid.git] / src / kernel / lmm / bmf.hpp
index 3d0564fa94729d7c41a34e450aabab6857b052fc..dfc7ff98e21f4b15fc5b191ca7cd9b92ae4a2363 100644 (file)
@@ -7,12 +7,20 @@
 #define SIMGRID_KERNEL_LMM_BMF_HPP
 
 #include "src/kernel/lmm/System.hpp"
+
+#ifdef __clang__
+// Ignore deprecation warnings with Eigen < 4.0 (see https://gitlab.com/libeigen/eigen/-/issues/1850)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+#endif
 #include <Eigen/Dense>
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
 #include <unordered_set>
 
-namespace simgrid {
-namespace kernel {
-namespace lmm {
+namespace simgrid::kernel::lmm {
 
 /** @brief Generate all combinations of valid allocation */
 class XBT_PUBLIC AllocationGenerator {
@@ -96,9 +104,10 @@ private:
    * @brief Get maxmin share of the resource
    *
    * @param resource Internal index of resource in C_ vector
+   * @param bounded_players List of players that are externally bounded
    * @return maxmin share
    */
-  double get_maxmin_share(int resource) const;
+  double get_maxmin_share(int resource, const std::vector<int>& bounded_players) const;
   /**
    * @brief Auxiliary method to get list of bounded player from allocation
    *
@@ -185,7 +194,6 @@ private:
 
   std::set<std::vector<int>> allocations_; //!< set of already tested allocations, since last identified loop
   AllocationGenerator gen_;
-  std::vector<int> allocations_age_;
   static constexpr int NO_RESOURCE = -1;                    //!< flag to indicate player has selected no resource
   int max_iteration_;                                       //!< number maximum of iterations of BMF algorithm
 };
@@ -269,8 +277,6 @@ private:
   std::unordered_map<const Constraint*, int> cnst2idx_; //!< Conversely map constraint to index
 };
 
-} // namespace lmm
-} // namespace kernel
-} // namespace simgrid
+} // namespace simgrid::kernel::lmm
 
 #endif