Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
basic test for plugin link_cumload
authorMillian Poquet <millian.poquet@inria.fr>
Fri, 9 Oct 2020 22:03:39 +0000 (00:03 +0200)
committerMillian Poquet <millian.poquet@inria.fr>
Sat, 10 Oct 2020 11:46:48 +0000 (13:46 +0200)
examples/s4u/CMakeLists.txt
examples/s4u/plugin-link-cumload/s4u-plugin-link-cumload.cpp [new file with mode: 0644]
examples/s4u/plugin-link-cumload/s4u-plugin-link-cumload.tesh [new file with mode: 0644]

index 8b51493..eedf83c 100644 (file)
@@ -75,6 +75,7 @@ foreach (example actor-create actor-daemon actor-exiting actor-join actor-kill
                  io-async io-file-system io-file-remote io-disk-raw io-dependent
                  platform-failures platform-profile platform-properties
                  plugin-hostload
+                 plugin-link-cumload
                  replay-comm replay-io
                  routing-get-clusters
                  synchro-barrier synchro-condition-variable synchro-mutex synchro-semaphore)
diff --git a/examples/s4u/plugin-link-cumload/s4u-plugin-link-cumload.cpp b/examples/s4u/plugin-link-cumload/s4u-plugin-link-cumload.cpp
new file mode 100644 (file)
index 0000000..658add8
--- /dev/null
@@ -0,0 +1,109 @@
+/* Copyright (c) 2007-2020. 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/s4u.hpp"
+#include "simgrid/plugins/load.h"
+
+XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_test, "Messages specific for this s4u example");
+
+static void sender(const std::string & mailbox, uint64_t msg_size)
+{
+    auto mbox = simgrid::s4u::Mailbox::by_name(mailbox);
+    mbox->put((void*)1, msg_size);
+}
+
+static void receiver(const std::string & mailbox)
+{
+    auto mbox = simgrid::s4u::Mailbox::by_name(mailbox);
+    mbox->get();
+}
+
+static void run_transfer(simgrid::s4u::Host* src_host, simgrid::s4u::Host* dst_host,
+    const std::string & mailbox, uint64_t msg_size)
+{
+    XBT_INFO("Launching the transfer of %lu bytes", msg_size);
+    simgrid::s4u::Actor::create("sender", src_host, sender, mailbox, msg_size);
+    simgrid::s4u::Actor::create("receiver", dst_host, receiver, mailbox);
+}
+
+static void execute_load_test()
+{
+  auto host0 = simgrid::s4u::Host::by_name("node-0.simgrid.org");
+  auto host1 = simgrid::s4u::Host::by_name("node-1.simgrid.org");
+
+  simgrid::s4u::this_actor::sleep_for(1);
+  run_transfer(host0, host1, "1", 1000*1000*1000);
+
+  simgrid::s4u::this_actor::sleep_for(10);
+  run_transfer(host0, host1, "2", 1000*1000*1000);
+  simgrid::s4u::this_actor::sleep_for(3);
+  run_transfer(host0, host1, "3", 1000*1000*1000);
+}
+
+static void show_link_load(const std::string & link_name, const simgrid::s4u::Link* link)
+{
+    XBT_INFO("%s link load (cum, avg, min, max): (%g, %g, %g, %g)", link_name.c_str(),
+        sg_link_get_cum_load(link),
+        sg_link_get_avg_load(link),
+        sg_link_get_min_instantaneous_load(link),
+        sg_link_get_max_instantaneous_load(link)
+    );
+}
+
+static void monitor()
+{
+    auto link_backbone = simgrid::s4u::Link::by_name("cluster0_backbone");
+    auto link_host0 = simgrid::s4u::Link::by_name("cluster0_link_0_UP");
+    auto link_host1 = simgrid::s4u::Link::by_name("cluster0_link_1_DOWN");
+
+    XBT_INFO("Tracking desired links");
+    sg_link_cumload_track(link_backbone);
+    sg_link_cumload_track(link_host0);
+    sg_link_cumload_track(link_host1);
+
+    show_link_load("Backbone", link_backbone);
+    while (simgrid::s4u::Engine::get_clock() < 5)
+    {
+        simgrid::s4u::this_actor::sleep_for(1);
+        show_link_load("Backbone", link_backbone);
+    }
+
+    XBT_INFO("Untracking the backbone link");
+    sg_link_cumload_untrack(link_backbone);
+
+    show_link_load("Host0_UP", link_host0);
+    show_link_load("Host1_UP", link_host1);
+
+    XBT_INFO("Now resetting and probing host links each second.");
+
+    while (simgrid::s4u::Engine::get_clock() < 29)
+    {
+        sg_link_cumload_reset(link_host0);
+        sg_link_cumload_reset(link_host1);
+
+        simgrid::s4u::this_actor::sleep_for(1);
+
+        show_link_load("Host0_UP", link_host0);
+        show_link_load("Host1_UP", link_host1);
+    }
+}
+
+int main(int argc, char* argv[])
+{
+  simgrid::s4u::Engine e(&argc, argv);
+  sg_link_cumload_plugin_init();
+
+  xbt_assert(argc == 2, "Usage: %s platform_file\n\tExample: %s ../platforms/energy_platform.xml\n", argv[0], argv[0]);
+  e.load_platform(argv[1]);
+
+  simgrid::s4u::Actor::create("load_test", simgrid::s4u::Host::by_name("node-42.simgrid.org"), execute_load_test);
+  simgrid::s4u::Actor::create("monitor", simgrid::s4u::Host::by_name("node-51.simgrid.org"), monitor);
+
+  e.run();
+
+  XBT_INFO("Total simulation time: %.2f", simgrid::s4u::Engine::get_clock());
+
+  return 0;
+}
diff --git a/examples/s4u/plugin-link-cumload/s4u-plugin-link-cumload.tesh b/examples/s4u/plugin-link-cumload/s4u-plugin-link-cumload.tesh
new file mode 100644 (file)
index 0000000..43848c7
--- /dev/null
@@ -0,0 +1,68 @@
+#!/usr/bin/env tesh
+
+p This tests the LinkCumload plugin (this allows the user to get the cumulated load of a link)
+
+$ ${bindir:=.}/s4u-plugin-link-cumload ${platfdir}/cluster_backbone.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (2:monitor@node-51.simgrid.org) Tracking desired links
+> [  0.000000] (2:monitor@node-51.simgrid.org) Backbone link load (cum, avg, min, max): (0, 0, 0, 0)
+> [  1.000000] (2:monitor@node-51.simgrid.org) Backbone link load (cum, avg, min, max): (0, 0, 0, 0)
+> [  1.000000] (1:load_test@node-42.simgrid.org) Launching the transfer of 1000000000 bytes
+> [  2.000000] (2:monitor@node-51.simgrid.org) Backbone link load (cum, avg, min, max): (1.27313e+08, 6.36563e+07, 0, 1.27313e+08)
+> [  3.000000] (2:monitor@node-51.simgrid.org) Backbone link load (cum, avg, min, max): (2.54625e+08, 8.4875e+07, 0, 1.27313e+08)
+> [  4.000000] (2:monitor@node-51.simgrid.org) Backbone link load (cum, avg, min, max): (3.81938e+08, 9.54844e+07, 0, 1.27313e+08)
+> [  5.000000] (2:monitor@node-51.simgrid.org) Backbone link load (cum, avg, min, max): (5.0925e+08, 1.0185e+08, 0, 1.27313e+08)
+> [  5.000000] (2:monitor@node-51.simgrid.org) Untracking the backbone link
+> [  5.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (4.85e+08, 9.7e+07, 0, 1.2125e+08)
+> [  5.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (4.85e+08, 9.7e+07, 0, 1.2125e+08)
+> [  5.000000] (2:monitor@node-51.simgrid.org) Now resetting and probing host links each second.
+> [  6.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [  6.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [  7.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [  7.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [  8.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [  8.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [  9.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [  9.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 10.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (3.09465e+07, 3.09465e+07, 0, 1.2125e+08)
+> [ 10.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (3.09465e+07, 3.09465e+07, 0, 1.2125e+08)
+> [ 11.000000] (1:load_test@node-42.simgrid.org) Launching the transfer of 1000000000 bytes
+> [ 11.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (0, 0, 0, 0)
+> [ 11.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (0, 0, 0, 0)
+> [ 12.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 0, 1.2125e+08)
+> [ 12.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 0, 1.2125e+08)
+> [ 13.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 13.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 14.000000] (1:load_test@node-42.simgrid.org) Launching the transfer of 1000000000 bytes
+> [ 14.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 14.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 15.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 15.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 16.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 16.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 17.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 17.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 18.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 18.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 19.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 19.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 20.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 20.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 21.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 21.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 22.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 22.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 23.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 23.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 24.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 24.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 25.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 25.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 26.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 26.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 27.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 27.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (1.2125e+08, 1.2125e+08, 1.2125e+08, 1.2125e+08)
+> [ 28.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (6.09465e+07, 6.09465e+07, 0, 1.2125e+08)
+> [ 28.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (6.09465e+07, 6.09465e+07, 0, 1.2125e+08)
+> [ 29.000000] (2:monitor@node-51.simgrid.org) Host0_UP link load (cum, avg, min, max): (0, 0, 0, 0)
+> [ 29.000000] (2:monitor@node-51.simgrid.org) Host1_UP link load (cum, avg, min, max): (0, 0, 0, 0)
+> [ 29.000000] (0:maestro@) Total simulation time: 29.00