Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Convert deprecated/msg/trace-categories to s4u/trace-categories.
authorArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 7 Dec 2020 09:46:09 +0000 (10:46 +0100)
committerArnaud Giersch <arnaud.giersch@univ-fcomte.fr>
Mon, 7 Dec 2020 15:46:19 +0000 (16:46 +0100)
.gitignore
MANIFEST.in
examples/deprecated/msg/CMakeLists.txt
examples/deprecated/msg/trace-categories/trace-categories.c [deleted file]
examples/s4u/CMakeLists.txt
examples/s4u/trace-categories/s4u-trace-categories.cpp [new file with mode: 0644]
examples/s4u/trace-categories/s4u-trace-categories.tesh [moved from examples/deprecated/msg/trace-categories/trace-categories.tesh with 66% similarity]

index 94d8c39..a8a9ba5 100644 (file)
@@ -166,7 +166,6 @@ examples/deprecated/msg/mc/bugged3
 examples/deprecated/msg/mc/centralized_mutex
 examples/deprecated/msg/mc/electric_fence
 examples/deprecated/msg/synchro-semaphore/synchro-semaphore
-examples/deprecated/msg/trace-categories/trace-categories
 examples/deprecated/msg/trace-host-user-variables/trace-host-user-variables
 examples/deprecated/msg/trace-link-user-variables/trace-link-user-variables
 examples/deprecated/msg/trace-masterworker/trace-masterworker
@@ -241,6 +240,7 @@ examples/s4u/synchro-barrier/s4u-synchro-barrier
 examples/s4u/synchro-condition-variable/s4u-synchro-condition-variable
 examples/s4u/synchro-mutex/s4u-synchro-mutex
 examples/s4u/synchro-semaphore/s4u-synchro-semaphore
+examples/s4u/trace-categories/s4u-trace-categories
 examples/s4u/trace-platform/s4u-trace-platform
 examples/deprecated/simdag/dag-dotload/sd_dag-dotload
 examples/deprecated/simdag/daxload/sd_daxload
index 8c7fb3c..986a8b5 100644 (file)
@@ -262,8 +262,6 @@ include examples/deprecated/msg/mc/centralized_mutex.tesh
 include examples/deprecated/msg/mc/deploy_bugged2_liveness.xml
 include examples/deprecated/msg/mc/deploy_centralized_mutex.xml
 include examples/deprecated/msg/mc/promela_bugged2_liveness
-include examples/deprecated/msg/trace-categories/trace-categories.c
-include examples/deprecated/msg/trace-categories/trace-categories.tesh
 include examples/deprecated/msg/trace-host-user-variables/trace-host-user-variables.c
 include examples/deprecated/msg/trace-host-user-variables/trace-host-user-variables.tesh
 include examples/deprecated/msg/trace-link-user-variables/trace-link-user-variables.c
@@ -519,6 +517,8 @@ include examples/s4u/synchro-mutex/s4u-synchro-mutex.cpp
 include examples/s4u/synchro-mutex/s4u-synchro-mutex.tesh
 include examples/s4u/synchro-semaphore/s4u-synchro-semaphore.cpp
 include examples/s4u/synchro-semaphore/s4u-synchro-semaphore.tesh
+include examples/s4u/trace-categories/s4u-trace-categories.cpp
+include examples/s4u/trace-categories/s4u-trace-categories.tesh
 include examples/s4u/trace-platform/s4u-trace-platform.cpp
 include examples/s4u/trace-platform/s4u-trace-platform.tesh
 include examples/smpi/NAS/DGraph.c
index bf222a7..d58c3b8 100644 (file)
@@ -1,4 +1,4 @@
-foreach(x trace-categories trace-route-user-variables trace-link-user-variables 
+foreach(x trace-route-user-variables trace-link-user-variables
         trace-masterworker trace-process-migration trace-host-user-variables)
   if(enable_msg)
     add_executable       (${x}  EXCLUDE_FROM_ALL ${x}/${x}.c)
@@ -15,7 +15,7 @@ set(txt_files     ${txt_files}     ${CMAKE_CURRENT_SOURCE_DIR}/README.doc
 set(tesh_files    ${tesh_files}    PARENT_SCOPE)
 
 if(enable_msg)
-  foreach (x trace-categories trace-route-user-variables trace-link-user-variables trace-masterworker 
+  foreach (x trace-route-user-variables trace-link-user-variables trace-masterworker
              trace-process-migration trace-host-user-variables)
     ADD_TESH(msg-${x} --setenv bindir=${CMAKE_BINARY_DIR}/examples/deprecated/msg/${x}
                       --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/deprecated/msg/${x} 
@@ -23,4 +23,4 @@ if(enable_msg)
                       --cd ${CMAKE_BINARY_DIR}/examples/deprecated/msg/${x}
                       ${CMAKE_HOME_DIRECTORY}/examples/deprecated/msg/${x}/${x}.tesh)
   endforeach()
-endif(enable_msg)
\ No newline at end of file
+endif(enable_msg)
diff --git a/examples/deprecated/msg/trace-categories/trace-categories.c b/examples/deprecated/msg/trace-categories/trace-categories.c
deleted file mode 100644 (file)
index f7d7c44..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (c) 2010-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/msg.h"
-
-static int master(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[])
-{
-  long number_of_tasks = 10;
-  long workers_count   = 1;
-
-  for (int i = 0; i < number_of_tasks; i++) {
-    msg_task_t task = NULL;
-
-    /* creating task and setting its category */
-    if (i % 2) {
-      task = MSG_task_create("task_compute", 10000000, 0, NULL);
-      MSG_task_set_category(task, "compute");
-    } else if (i % 3) {
-      task = MSG_task_create("task_request", 10, 10, NULL);
-      MSG_task_set_category(task, "request");
-    } else {
-      task = MSG_task_create("task_data", 10, 10000000, NULL);
-      MSG_task_set_category(task, "data");
-    }
-    MSG_task_send(task, "master_mailbox");
-  }
-
-  for (int i = 0; i < workers_count; i++) {
-    msg_task_t finalize = MSG_task_create("finalize", 0, 1000, 0);
-    MSG_task_set_category(finalize, "finalize");
-    MSG_task_send(finalize, "master_mailbox");
-  }
-
-  return 0;
-}
-
-static int worker(XBT_ATTRIB_UNUSED int argc, XBT_ATTRIB_UNUSED char* argv[])
-{
-  msg_task_t task = NULL;
-
-  while (1) {
-    MSG_task_receive(&(task), "master_mailbox");
-
-    if (strcmp(MSG_task_get_name(task), "finalize") == 0) {
-      MSG_task_destroy(task);
-      break;
-    }
-
-    MSG_task_execute(task);
-    MSG_task_destroy(task);
-    task = NULL;
-  }
-  return 0;
-}
-
-int main(int argc, char *argv[])
-{
-  MSG_init(&argc, argv);
-  xbt_assert(argc > 1, "Usage: %s platform_file\n \tExample: %s msg_platform.xml\n", argv[0], argv[0]);
-
-  MSG_create_environment(argv[1]);
-
-  /* declaring user categories with RGB colors */
-  TRACE_category_with_color ("compute", "1 0 0"); //red
-  TRACE_category_with_color ("request", "0 1 0"); //green
-  TRACE_category_with_color ("data", "0 0 1");    //blue
-  TRACE_category_with_color ("finalize", "0 0 0");//black
-
-  MSG_process_create("master", master, NULL, MSG_host_by_name("Tremblay"));
-  MSG_process_create("worker", worker, NULL, MSG_host_by_name("Fafard"));
-
-  MSG_main();
-  return 0;
-}
index 0e91ca6..c616c7c 100644 (file)
@@ -186,7 +186,7 @@ endif()
 # Examples not accepting factories
 ##################################
 
-foreach (example trace-platform)
+foreach (example trace-categories trace-platform)
   add_executable       (s4u-${example} EXCLUDE_FROM_ALL ${example}/s4u-${example}.cpp)
   target_link_libraries(s4u-${example} simgrid)
   set_target_properties(s4u-${example} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${example})
diff --git a/examples/s4u/trace-categories/s4u-trace-categories.cpp b/examples/s4u/trace-categories/s4u-trace-categories.cpp
new file mode 100644 (file)
index 0000000..27453a5
--- /dev/null
@@ -0,0 +1,76 @@
+/* Copyright (c) 2010-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. */
+
+/* This source code simply loads the platform. This is only useful to play
+ * with the tracing module. See the tesh file to see how to generate the
+ * traces.
+ */
+
+#include "simgrid/instr.h"
+#include "simgrid/s4u.hpp"
+
+struct Task {
+  std::string name;
+  std::string category;
+  double flops;
+  double bytes;
+};
+
+static void master()
+{
+  auto mbox                     = simgrid::s4u::Mailbox::by_name("master_mailbox");
+
+  for (int i = 0; i < 10; i++) {
+    Task task;
+    if (i % 2)
+      task = {"task_compute", "compute", 10000000, 0};
+    else if (i % 3)
+      task = {"task_request", "request", 10, 10};
+    else
+      task = {"task_data", "data", 10, 10000000};
+    mbox->put(new Task(task), task.bytes);
+  }
+
+  Task finalize = {"finalize", "finalize", 0, 1000};
+  mbox->put(new Task(finalize), finalize.bytes);
+}
+
+static void worker()
+{
+  auto mbox = simgrid::s4u::Mailbox::by_name("master_mailbox");
+  while (true) {
+    const auto* task = static_cast<Task*>(mbox->get());
+    if (task->name == "finalize") {
+      delete task;
+      break;
+    }
+    // creating task and setting its category
+    simgrid::s4u::this_actor::exec_init(task->flops)
+        ->set_name(task->name)
+        ->set_tracing_category(task->category)
+        ->wait();
+    delete task;
+  }
+}
+
+int main(int argc, char* argv[])
+{
+  simgrid::s4u::Engine e(&argc, argv);
+  xbt_assert(argc > 1, "Usage: %s platform_file\n \tExample: %s small_platform.xml\n", argv[0], argv[0]);
+
+  e.load_platform(argv[1]);
+
+  // declaring user categories with RGB colors
+  TRACE_category_with_color("compute", "1 0 0");  // red
+  TRACE_category_with_color("request", "0 1 0");  // green
+  TRACE_category_with_color("data", "0 0 1");     // blue
+  TRACE_category_with_color("finalize", "0 0 0"); // black
+
+  simgrid::s4u::Actor::create("master", simgrid::s4u::Host::by_name("Tremblay"), master);
+  simgrid::s4u::Actor::create("worker", simgrid::s4u::Host::by_name("Fafard"), worker);
+
+  e.run();
+  return 0;
+}
@@ -2,8 +2,10 @@
 
 p Tracing multiple categories master/worker application
 
-$ ${bindir:=.}/trace-categories --cfg=tracing:yes --cfg=tracing/filename:categories.trace --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes ${platfdir}/small_platform.xml
+$ ${bindir:=.}/s4u-trace-categories --cfg=tracing:yes --cfg=tracing/filename:categories.trace --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes ${platfdir}/small_platform.xml
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'categories.trace'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to 'yes'
+
+$ rm -f categories.trace