-/* 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. */
#include <boost/property_tree/ptree.hpp>
#include <map>
#include <random>
-#include <simgrid/kernel/resource/NetworkModelIntf.hpp>
#include <simgrid/s4u.hpp>
#include <smpi/smpi.h>
namespace sg4 = simgrid::s4u;
std::mt19937& gen_;
public:
- NormalMixture(std::mt19937& gen) : gen_(gen) {}
+ explicit NormalMixture(std::mt19937& gen) : gen_(gen) {}
void append(double mean, double stddev, double prob)
{
mixture_.push_back(std::normal_distribution<double>(mean, stddev));
prob_.push_back(prob);
}
- double sample()
+ double sample() override
{
std::discrete_distribution<> d(prob_.begin(), prob_.end());
int index = d(gen_);
*
* @param latency_base The base latency for this calibration (user-defined)
* @param seg Segmentation (user-defined)
- * @param size Message size (simgrid)
+ * @param size Message size (SimGrid)
*/
static double latency_factor_cb(double latency_base, const SegmentedRegression& seg, double size,
const sg4::Host* /*src*/, const sg4::Host* /*dst*/,
*
* @param bw_base The base bandwidth for this calibration (user-defined)
* @param seg Segmentation (user-defined)
- * @param size Message size (simgrid)
+ * @param size Message size (SimGrid)
*/
static double bw_factor_cb(double bw_base, const SegmentedRegression& seg, double size, const sg4::Host* /*src*/,
const sg4::Host* /*dst*/, const std::vector<sg4::Link*>& /*links*/,
double max = it.second.get_child("max_x").get_value<double>();
coefs[max] = it.second.get_child("coefficient").get_value<double>();
auto& mixture = mixtures[max];
- if (!mixture)
+ if (not mixture)
mixture = std::make_shared<NormalMixture>(gen);
mixture->append(it.second.get_child("mean").get_value<double>(), it.second.get_child("sd").get_value<double>(),
it.second.get_child("prob").get_value<double>());
static std::mt19937 gen(42); // remove it from stack, since we need it after this this load_platform function is over
/* setting network factors callbacks */
- simgrid::kernel::resource::NetworkModelIntf* model = e.get_netzone_root()->get_network_model();
+ auto* zone = e.get_netzone_root();
SegmentedRegression seg = read_json_file("pingpong_ckmeans.json", gen, false);
- model->set_lat_factor_cb(std::bind(&latency_factor_cb, lat_base, seg, std::placeholders::_1, std::placeholders::_2,
- std::placeholders::_3, std::placeholders::_4, std::placeholders::_5));
+ zone->set_latency_factor_cb(std::bind(&latency_factor_cb, lat_base, seg, std::placeholders::_1, std::placeholders::_2,
+ std::placeholders::_3, std::placeholders::_4, std::placeholders::_5));
- model->set_bw_factor_cb(std::bind(&bw_factor_cb, bw_base, seg, std::placeholders::_1, std::placeholders::_2,
- std::placeholders::_3, std::placeholders::_4, std::placeholders::_5));
+ zone->set_bandwidth_factor_cb(std::bind(&bw_factor_cb, bw_base, seg, std::placeholders::_1, std::placeholders::_2,
+ std::placeholders::_3, std::placeholders::_4, std::placeholders::_5));
seg = read_json_file("send_ckmeans.json", gen);
smpi_register_op_cost_callback(SmpiOperation::SEND, std::bind(&smpi_cost_cb, seg, std::placeholders::_1,
seg = read_json_file("recv_ckmeans.json", gen);
smpi_register_op_cost_callback(SmpiOperation::RECV, std::bind(&smpi_cost_cb, seg, std::placeholders::_1,
std::placeholders::_2, std::placeholders::_3));
-}
\ No newline at end of file
+}