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
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
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
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
-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)
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}
--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)
+++ /dev/null
-/* 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;
-}
# 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})
--- /dev/null
+/* 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;
+}
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