-/* Copyright (c) 2004-2022. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2004-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. */
#include "simgrid/kernel/resource/Action.hpp"
#include "simgrid/kernel/resource/Model.hpp"
-#include "simgrid/s4u/Link.hpp"
-#include "src/surf/surf_interface.hpp"
#include "xbt/asserts.h"
-#include "xbt/ex.h"
#include "xbt/mallocator.h"
#include <boost/intrusive/list.hpp>
#include <cmath>
#include <limits>
#include <memory>
+#include <string_view>
#include <vector>
+/* user-visible parameters */
+XBT_PUBLIC_DATA double sg_precision_workamount;
+XBT_PUBLIC_DATA double sg_precision_timing;
+XBT_PUBLIC_DATA int sg_concurrency_limit;
+
namespace simgrid::kernel::lmm {
-/** @addtogroup SURF_lmm
+/** @addtogroup Model_lmm
* @details
* A linear maxmin solver to resolve inequations systems.
*
* At the current state, each variable counts as 1 if its consumption weight is greater than 1.
*/
-/** @{ @ingroup SURF_lmm */
+/** @{ @ingroup Model_lmm */
/**
* @brief LMM element
*/
class XBT_PUBLIC Constraint {
public:
- enum class SharingPolicy { NONLINEAR = 2, SHARED = 1, FATPIPE = 0 };
+ enum class SharingPolicy { WIFI = 3, NONLINEAR = 2, SHARED = 1, FATPIPE = 0 };
Constraint(resource::Resource* id_value, double bound_value);
int get_concurrency_maximum() const
{
xbt_assert(concurrency_limit_ < 0 || concurrency_maximum_ <= concurrency_limit_,
- "Very bad: maximum observed concurrency is higher than limit. This is a bug of SURF, please report it.");
+ "Very bad: maximum observed concurrency is higher than limit. This is a bug, please report it.");
return concurrency_maximum_;
}
* @param selective_update Enables lazy updates
* @return pointer to System instance
*/
- static System* build(const std::string& solver_name, bool selective_update);
+ static System* build(std::string_view solver_name, bool selective_update);
/** @brief Validates solver configuration */
static void validate_solver(const std::string& solver_name);