-/* Copyright (c) 2010-2021. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2010-2022. 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. */
-/* This example shows how to build set customized communication factors
+/* This example shows how to build set custom communication factors
*
- * It uses the interface provided by NetworkModelIntf to register 2 callbacks that
- * are called everytime a communication occurs.
+ * It uses the netzone interface to register 2 callbacks that are called for every communications.
*
* These factors are used to change the communication time depending on the message size
* and destination.
*
* This example uses factors obtained by some experiments on dahu cluster in Grid'5000.
- * You must change the values according to the calibration of your enviroment.
+ * You should change the values according to the calibration of your enviroment.
*/
#include <map>
-#include <simgrid/kernel/resource/NetworkModelIntf.hpp>
#include <simgrid/s4u.hpp>
namespace sg4 = simgrid::s4u;
/* create host */
const sg4::Host* host = root->create_host(hostname, 1)->set_core_count(32)->seal();
/* create UP/DOWN link */
- sg4::Link* l = root->create_split_duplex_link(hostname, BW_REMOTE)->set_latency(LATENCY)->seal();
+ const sg4::Link* l = root->create_split_duplex_link(hostname, BW_REMOTE)->set_latency(LATENCY)->seal();
/* add link UP/DOWN for communications from the host */
- root->add_route(host->get_netpoint(), nullptr, nullptr, nullptr,
- std::vector<sg4::LinkInRoute>{{l, sg4::LinkInRoute::Direction::UP}}, true);
+ root->add_route(host->get_netpoint(), nullptr, nullptr, nullptr, {{l, sg4::LinkInRoute::Direction::UP}}, true);
- sg4::Link* loopback = root->create_link(hostname + "_loopback", BW_LOCAL)->set_latency(LATENCY)->seal();
- root->add_route(host->get_netpoint(), host->get_netpoint(), nullptr, nullptr,
- std::vector<sg4::LinkInRoute>{loopback});
+ const sg4::Link* loopback = root->create_link(hostname + "_loopback", BW_LOCAL)->set_latency(LATENCY)->seal();
+ root->add_route(host->get_netpoint(), host->get_netpoint(), nullptr, nullptr, {sg4::LinkInRoute(loopback)});
}
root->seal();
static double get_factor_from_map(const std::map<double, double>& factors, double size)
{
double factor = 1.0;
- for (auto const& fact : factors) {
- if (size < fact.first) {
+ for (auto const& [factor_size, factor_value] : factors) {
+ if (size < factor_size) {
break;
} else {
- factor = fact.second;
+ factor = factor_value;
}
}
return factor;
/* create platform */
load_platform();
/* setting network factors callbacks */
- simgrid::kernel::resource::NetworkModelIntf* model = e.get_netzone_root()->get_network_model();
- model->set_lat_factor_cb(latency_factor_cb);
- model->set_bw_factor_cb(bandwidth_factor_cb);
+ e.get_netzone_root()->set_latency_factor_cb(latency_factor_cb);
+ e.get_netzone_root()->set_bandwidth_factor_cb(bandwidth_factor_cb);
sg4::Host* host = e.host_by_name("dahu-1.grid5000.fr");
sg4::Host* host_remote = e.host_by_name("dahu-10.grid5000.fr");
- sg4::Actor::create(std::string("receiver-local"), host, Receiver());
- sg4::Actor::create(std::string("receiver-remote"), host_remote, Receiver());
- sg4::Actor::create(std::string("sender") + std::string(host->get_name()), host,
- Sender({host, host_remote}, crosstraffic));
+ sg4::Actor::create("receiver-local", host, Receiver());
+ sg4::Actor::create("receiver-remote", host_remote, Receiver());
+ sg4::Actor::create("sender" + host->get_name(), host, Sender({host, host_remote}, crosstraffic));
/* runs the simulation */
e.run();