Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr/gitroot/simgrid/simgrid
authordegomme <augustin.degomme@unibas.ch>
Sun, 3 Apr 2016 22:16:36 +0000 (00:16 +0200)
committerdegomme <augustin.degomme@unibas.ch>
Sun, 3 Apr 2016 22:16:36 +0000 (00:16 +0200)
149 files changed:
.gitignore
doc/doxygen/platform.doc
examples/java/CMakeLists.txt
examples/java/app/centralizedmutex/Coordinator.java [moved from examples/java/mutualExclusion/Coordinator.java with 98% similarity]
examples/java/app/centralizedmutex/GrantTask.java [moved from examples/java/mutualExclusion/GrantTask.java with 91% similarity]
examples/java/app/centralizedmutex/Main.java [moved from examples/java/async/AsyncTest.java with 58% similarity]
examples/java/app/centralizedmutex/Node.java [moved from examples/java/mutualExclusion/Node.java with 97% similarity]
examples/java/app/centralizedmutex/ReleaseTask.java [moved from examples/java/mutualExclusion/ReleaseTask.java with 91% similarity]
examples/java/app/centralizedmutex/RequestTask.java [moved from examples/java/mutualExclusion/RequestTask.java with 93% similarity]
examples/java/app/centralizedmutex/app_centralizedmutex.tesh [new file with mode: 0644]
examples/java/app/centralizedmutex/centralizedmutex.xml [moved from examples/java/mutualExclusion/mutex_centralized_deployment.xml with 68% similarity]
examples/java/app/masterworker/Master.java
examples/java/app/masterworker/README
examples/java/app/masterworker/Worker.java
examples/java/app/pingpong/Main.java [moved from examples/java/pingPong/PingPongTest.java with 51% similarity]
examples/java/app/pingpong/PingPongTask.java [moved from examples/java/pingPong/PingPongTask.java with 97% similarity]
examples/java/app/pingpong/Receiver.java [moved from examples/java/pingPong/Receiver.java with 82% similarity]
examples/java/app/pingpong/Sender.java [moved from examples/java/pingPong/Sender.java with 87% similarity]
examples/java/app/pingpong/app_pingpong.tesh [new file with mode: 0644]
examples/java/async/CMakeLists.txt [deleted file]
examples/java/async/FinalizeTask.java [deleted file]
examples/java/async/Forwarder.java [deleted file]
examples/java/async/Master.java [deleted file]
examples/java/async/README [deleted file]
examples/java/async/Slave.java [deleted file]
examples/java/async/async.tesh [deleted file]
examples/java/async/asyncDeployment.xml [deleted file]
examples/java/async/dsend/Main.java [new file with mode: 0644]
examples/java/async/dsend/Receiver.java [new file with mode: 0644]
examples/java/async/dsend/Sender.java [new file with mode: 0644]
examples/java/async/dsend/async_dsend.tesh [new file with mode: 0644]
examples/java/cloud/CMakeLists.txt [deleted file]
examples/java/cloud/FinalizeTask.java [deleted file]
examples/java/cloud/masterworker/Main.java [moved from examples/java/cloud/Cloud.java with 87% similarity]
examples/java/cloud/masterworker/Master.java [moved from examples/java/cloud/Master.java with 79% similarity]
examples/java/cloud/masterworker/Worker.java [moved from examples/java/cloud/Slave.java with 83% similarity]
examples/java/cloud/masterworker/cloud_masterworker.tesh [moved from examples/java/cloud/cloud.tesh with 92% similarity]
examples/java/cloud/migration/CMakeLists.txt [deleted file]
examples/java/cloud/migration/Main.java
examples/java/cloud/migration/Test.java
examples/java/cloud/migration/cloud_migration.tesh [new file with mode: 0644]
examples/java/cloud/migration/deploy_simple.xml [deleted file]
examples/java/cloud/migration/migration.tesh [deleted file]
examples/java/mutualExclusion/CMakeLists.txt [deleted file]
examples/java/mutualExclusion/MutexCentral.java [deleted file]
examples/java/mutualExclusion/mutualexclusion.tesh [deleted file]
examples/java/pingPong/CMakeLists.txt [deleted file]
examples/java/pingPong/pingPongDeployment.xml [deleted file]
examples/java/pingPong/pingpong.tesh [deleted file]
examples/java/priority/CMakeLists.txt [deleted file]
examples/java/priority/priority.tesh [deleted file]
examples/java/priority/priorityDeployment.xml [deleted file]
examples/java/process/kill/Killer.java
examples/java/task/priority/Main.java [moved from examples/java/priority/Priority.java with 95% similarity]
examples/java/task/priority/Test.java [moved from examples/java/priority/Test.java with 97% similarity]
examples/java/task/priority/priority.xml [new file with mode: 0644]
examples/java/task/priority/task_priority.tesh [new file with mode: 0644]
examples/java/trace/pingpong/Main.java [moved from examples/java/tracing/TracingTest.java with 65% similarity]
examples/java/trace/pingpong/PingPongTask.java [moved from examples/java/tracing/PingPongTask.java with 97% similarity]
examples/java/trace/pingpong/Receiver.java [moved from examples/java/tracing/Receiver.java with 87% similarity]
examples/java/trace/pingpong/Sender.java [moved from examples/java/tracing/Sender.java with 91% similarity]
examples/java/trace/pingpong/trace_pingpong.tesh [new file with mode: 0644]
examples/java/tracing/CMakeLists.txt [deleted file]
examples/java/tracing/tracingPingPong.tesh [deleted file]
examples/java/tracing/tracingPingPongDeployment.xml [deleted file]
examples/msg/CMakeLists.txt
examples/msg/cloud/master_worker_vm.c
examples/msg/cloud/master_worker_vm.tesh
examples/msg/energy-ptask/energy-ptask.c
examples/msg/failures/failures.c
examples/msg/failures/failures.tesh
examples/msg/masterslave-mailbox/masterslave-mailbox-multicore_d.xml [deleted file]
examples/msg/masterslave-mailbox/masterslave-mailbox-vivaldi.tesh [deleted file]
examples/msg/masterslave-mailbox/masterslave-mailbox-vivaldi_d.xml [deleted file]
examples/msg/masterslave-mailbox/masterslave-mailbox_d.xml [deleted file]
examples/msg/masterslave/masterslave.tesh [deleted file]
examples/msg/masterslave/masterslave_cpu_ti.tesh [deleted file]
examples/msg/masterslave/masterslave_d.xml [deleted file]
examples/msg/masterworker-mailbox/masterworker-mailbox-multicore.tesh [moved from examples/msg/masterslave-mailbox/masterslave-mailbox-multicore.tesh with 51% similarity]
examples/msg/masterworker-mailbox/masterworker-mailbox-multicore_d.xml [new file with mode: 0644]
examples/msg/masterworker-mailbox/masterworker-mailbox-vivaldi.tesh [new file with mode: 0644]
examples/msg/masterworker-mailbox/masterworker-mailbox-vivaldi_d.xml [new file with mode: 0644]
examples/msg/masterworker-mailbox/masterworker-mailbox.c [moved from examples/msg/masterslave-mailbox/masterslave-mailbox.c with 85% similarity]
examples/msg/masterworker-mailbox/masterworker-mailbox.tesh [moved from examples/msg/masterslave-mailbox/masterslave-mailbox.tesh with 60% similarity]
examples/msg/masterworker-mailbox/masterworker-mailbox_d.xml [new file with mode: 0644]
examples/msg/masterworker/masterworker.c [moved from examples/msg/masterslave/masterslave.c with 74% similarity]
examples/msg/masterworker/masterworker.tesh [new file with mode: 0644]
examples/msg/masterworker/masterworker_cpu_ti.tesh [new file with mode: 0644]
examples/msg/masterworker/masterworker_d.xml [new file with mode: 0644]
examples/msg/ns3/3hosts_2links_d.xml
examples/msg/ns3/3links-timer_d.xml
examples/msg/ns3/3links_d.xml
examples/msg/ns3/crosstraffic_d.xml
examples/msg/ns3/dogbone_d.xml
examples/msg/ns3/ns3.c
examples/msg/ns3/ns3.tesh
examples/msg/ns3/one_cluster_d.xml
examples/msg/ns3/onelink_d.xml
examples/msg/ns3/two_clusters_d.xml
examples/msg/priority/priority_d.xml [deleted file]
examples/msg/task-priority/task-priority.c [moved from examples/msg/priority/priority.c with 77% similarity]
examples/msg/task-priority/task-priority.tesh [moved from examples/msg/priority/priority.tesh with 60% similarity]
examples/msg/task-priority/task-priority_d.xml [new file with mode: 0644]
examples/msg/token_ring/token_ring.c
examples/msg/trace-categories/trace-categories.c
examples/msg/trace-categories/trace-categories.tesh
examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c
examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.tesh
examples/msg/trace-link-user-variables/trace-link-user-variables.c
examples/msg/trace-link-user-variables/trace-link-user-variables.tesh
examples/msg/trace-masterworker/trace-masterworker.c [moved from examples/msg/trace-masterslave/trace-masterslave.c with 89% similarity]
examples/msg/trace-masterworker/trace-masterworker.tesh [moved from examples/msg/trace-masterslave/trace-masterslave.tesh with 62% similarity]
examples/msg/trace-user-variables/trace-user-variables.c
examples/msg/trace-user-variables/trace-user-variables.tesh
examples/platforms/config_tracing.xml
include/simgrid/s4u/host.hpp
include/xbt/config.h
src/instr/instr_config.cpp
src/mc/LivenessChecker.cpp
src/mc/LivenessChecker.hpp
src/mc/ModelChecker.cpp
src/mc/mc_compare.cpp
src/mc/mc_global.cpp
src/mc/mc_private.h
src/mc/mc_record.cpp
src/mc/mc_visited.cpp
src/mc/simgrid_mc.cpp
src/s4u/s4u_host.cpp
src/simgrid/sg_config.cpp [moved from src/simgrid/sg_config.c with 70% similarity]
src/surf/HostImpl.cpp
src/surf/HostImpl.hpp
src/surf/PropertyHolder.cpp
src/surf/PropertyHolder.hpp
src/surf/network_cm02.cpp
src/surf/network_cm02.hpp
src/surf/network_interface.hpp
src/surf/sg_platf.cpp
src/surf/surf_interface.hpp
src/surf/virtual_machine.cpp
src/surf/virtual_machine.hpp
src/surf/vm_hl13.cpp
src/surf/vm_hl13.hpp
src/xbt/config.c
src/xbt/log.c
teshsuite/smpi/mpich3-test/CMakeLists.txt
teshsuite/smpi/mpich3-test/attr/CMakeLists.txt
teshsuite/smpi/mpich3-test/comm/CMakeLists.txt
teshsuite/smpi/mpich3-test/datatype/CMakeLists.txt
tools/cmake/DefinePackages.cmake

index 792d54a..9d1bf7e 100644 (file)
@@ -29,7 +29,6 @@ examples/simdag/scheduling/sd_scheduling.jed
 teshsuite/simdag/platforms/simgrid.jed
 ### Libraries links 
 examples/lua/simgrid.so
-examples/msg/masterslave/simgrid.so
 examples/simdag/simgrid.so
 examples/lua/console/simgrid.so
 SimGrid-*.tar.gz
@@ -145,9 +144,9 @@ examples/msg/io-file-unlink/io-file-unlink
 examples/msg/io-remote/io-remote
 examples/msg/io-storage/io-storage
 examples/msg/failures/failures
-examples/msg/masterslave/masterslave
+examples/msg/masterworker/masterworker
 examples/msg/process-kill/process-kill
-examples/msg/masterslave-mailbox/masterslave-mailbox
+examples/msg/masterworker-mailbox/masterworker-mailbox
 examples/msg/mc/bugged1
 examples/msg/mc/bugged1_liveness
 examples/msg/mc/bugged1_stateful
@@ -167,21 +166,21 @@ examples/msg/process-migration/process-migration
 examples/msg/ms.trace
 examples/msg/ns3/ns3
 examples/msg/pmm/pmm
-examples/msg/priority/priority
+examples/msg/task-priority/task-priority
 examples/msg/procmig.trace
 examples/msg/properties/properties
 examples/msg/synchro/synchro
 examples/msg/sendrecv/sendrecv
 examples/msg/set-maestro/set-maestro
 examples/msg/simulation.trace
-examples/msg/start_kill_time/start_kill_time
+examples/msg/process-startkilltime/process-startkilltime
 examples/msg/process-suspend/process-suspend
 examples/msg/token_ring/token_ring
 examples/msg/trace/test_trace_integration
 examples/msg/trace-categories/trace-categories
 examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables
 examples/msg/trace-link-user-variables/trace-link-user-variables
-examples/msg/trace-masterslave/trace-masterslave
+examples/msg/trace-masterworker/trace-masterworker
 examples/msg/trace-process-migration/trace-process-migration
 examples/msg/trace-simple/trace-simple
 examples/msg/trace-platform/trace-platform
@@ -971,11 +970,13 @@ tools/tesh/tesh
 #########################################
 ## touched files to track the dependencies of java examples
 examples/java/app/bittorrent/java_app_bittorrent_compiled
+examples/java/app/centralizedmutex/java_app_centralizedmutex_compiled
 examples/java/app/masterworker/java_app_masterworker_compiled
-examples/java/async/java_async_compiled
+examples/java/app/pingpong/java_app_pingpong_compiled
+examples/java/async/dsend/java_async_dsend_compiled
 examples/java/dht/chord/java_dht_chord_compiled
 examples/java/dht/kademlia/java_dht_kademlia_compiled
-examples/java/cloud/java_cloud_compiled
+examples/java/cloud/masterworker/java_cloud_masterworker_compiled
 examples/java/cloud/migration/java_cloud_migration_compiled
 examples/java/energy/consumption/java_energy_consumption_compiled
 examples/java/energy/vm/java_energy_vm_compiled
@@ -984,11 +985,9 @@ examples/java/io/storage/java_io_storage_compiled
 examples/java/process/kill/java_process_kill_compiled
 examples/java/process/migration/java_process_migration_compiled
 examples/java/process/suspend/java_process_suspend_compiled
-examples/java/mutualExclusion/java_mutualExclusion_compiled
-examples/java/pingPong/java_pingPong_compiled
-examples/java/priority/java_priority_compiled
 examples/java/process/startkilltime/java_process_startkilltime_compiled
-examples/java/tracing/java_tracing_compiled
+examples/java/task/priority/java_task_priority_compiled
+examples/java/trace/pingpong/java_trace_pingpong_compiled
 /CMakeCache.txt
 examples/smpi/mc/smpi_bugged1
 examples/smpi/mc/smpi_bugged1_liveness
index 2c5e144..ce025a0 100644 (file)
@@ -1814,7 +1814,7 @@ characteristics (lookup : time to resolve a route):
 \li <b>Cluster</b>: Cluster routing, specific to cluster tag, should
     not be used.
 
-\subsection pf_switch I want to describe a switch but there is no switch tag !
+\subsection pf_switch How to describe a switch given that is no switch tag?
 
 Actually we did not include switch tag, ok. But when you're trying to
 simulate a switch, the only major impact it has when you're using
@@ -1826,6 +1826,26 @@ link one. That's why we are used to describe a switch using a link tag
 (as a link is not an edge by a hyperedge, you can connect more than 2
 other links to it).
 
+\subsection pf_multicabinets How to model multi-cabinets clusters?
+
+You have several possibilities, as usual when modeling things. If your
+cabinets are homogeneous and the intercabinet network negligible for
+your study, you should just create a larger cluster with all hosts at
+the same layer. 
+
+In the rare case where your hosts are not homogeneous between the
+cabinets, you can create your cluster completely manually. For that,
+create an As using the Cluster routing, and then use one
+&lt;cabinet&gt; for each cabinet. This cabinet tag can only be used an
+As using the Cluster routing schema, and creating 
+
+Be warned that creating a cluster manually from the XML with
+&lt;cabinet&gt;, &lt;backbone&gt; and friends is rather tedious. The
+easiest way to retrieve some control of your model without diving into
+the &lt;cluster&gt; internals is certainly to create one separate
+&lt;cluster&gt; per cabinet and interconnect them together. This is
+what we did in the G5K example platform for the Graphen cluster.
+
 \subsection pf_platform_multipath How to express multipath routing in platform files?
 
 It is unfortunately impossible to express the fact that there is more
index d8ed9bf..bcc30d7 100644 (file)
@@ -3,9 +3,27 @@ set(app_bittorrent_sources    ${srcdir}/Main.java  ${srcdir}/Common.java  ${srcd
                               ${srcdir}/MessageTask.java ${srcdir}/Peer.java  ${srcdir}/Tracker.java
                               ${srcdir}/TrackerTask.java)
 
+set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}/app/centralizedmutex)
+set(app_centralizedmutex_sources  ${srcdir}/Main.java  ${srcdir}/Coordinator.java  ${srcdir}/GrantTask.java
+                              ${srcdir}/Node.java ${srcdir}/ReleaseTask.java  ${srcdir}/RequestTask.java)
+
 set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}/app/masterworker)
 set(app_masterworker_sources   ${srcdir}/Main.java  ${srcdir}/Master.java ${srcdir}/Worker.java) 
 
+set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}/app/pingpong)
+set(app_pingpong_sources       ${srcdir}/Main.java  ${srcdir}/PingPongTask.java ${srcdir}/Receiver.java 
+                               ${srcdir}/Sender.java) 
+
+set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}/async/dsend)
+set(async_dsend_sources        ${srcdir}/Main.java  ${srcdir}/Receiver.java ${srcdir}/Sender.java)
+
+set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}/cloud/masterworker)
+set(cloud_masterworker_sources ${srcdir}/Main.java  ${srcdir}/Master.java ${srcdir}/Worker.java)
+
+set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}/cloud/migration)
+set(cloud_migration_sources    ${srcdir}/Main.java  ${srcdir}/Daemon.java ${srcdir}/Test.java
+                               ${srcdir}/TestHostOnOff.java ${srcdir}/XVM.java)
+
 set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord)
 set(dht_chord_sources          ${srcdir}/Main.java  ${srcdir}/ChordTask.java  ${srcdir}/Common.java
                                ${srcdir}/FindSuccessorAnswerTask.java  ${srcdir}/FindSuccessorTask.java
@@ -18,6 +36,10 @@ set(dht_kademlia_sources       ${srcdir}/Main.java  ${srcdir}/Answer.java  ${src
                                ${srcdir}/KademliaTask.java  ${srcdir}/Node.java  ${srcdir}/PingAnswerTask.java
                                ${srcdir}/PingTask.java  ${srcdir}/RoutingTable.java)
 
+set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}/trace/pingpong)
+set(trace_pingpong_sources     ${srcdir}/Main.java  ${srcdir}/PingPongTask.java ${srcdir}/Receiver.java 
+                               ${srcdir}/Sender.java) 
+
 set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}/energy/consumption)
 set(energy_consumption_sources ${srcdir}/Main.java  ${srcdir}/EnergyConsumer.java)
 
@@ -42,8 +64,12 @@ set(process_startkilltime_sources ${srcdir}/Main.java ${srcdir}/Sleeper.java)
 set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}/process/suspend)
 set(process_suspend_sources    ${srcdir}/Main.java  ${srcdir}/DreamMaster.java  ${srcdir}/LazyGuy.java)
 
-foreach (example app_bittorrent app_masterworker dht_chord dht_kademlia energy_consumption energy_vm io_file io_storage 
-         process_kill process_migration process_startkilltime process_suspend)
+set (srcdir ${CMAKE_CURRENT_SOURCE_DIR}/task/priority)
+set(task_priority_sources      ${srcdir}/Main.java  ${srcdir}/Test.java)
+
+foreach (example app_bittorrent app_centralizedmutex app_masterworker app_pingpong async_dsend
+         cloud_migration cloud_masterworker dht_chord dht_kademlia energy_consumption energy_vm io_file io_storage 
+         process_kill process_migration process_startkilltime process_suspend task_priority trace_pingpong)
   string (REPLACE "_" "/" example_dir ${example})
   if(enable_java)
     add_custom_command(
@@ -61,19 +87,23 @@ foreach (example app_bittorrent app_masterworker dht_chord dht_kademlia energy_c
   set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/${example_dir}/${example}.tesh)
 endforeach()
 
-set(examples_src  ${examples_src}                                                          PARENT_SCOPE)
-set(tesh_files    ${tesh_files}                                                            PARENT_SCOPE)
-set(bin_files     ${bin_files}     ${CMAKE_CURRENT_SOURCE_DIR}/app/bittorrent/generate.py  PARENT_SCOPE)
-set(txt_files     ${txt_files}     ${CMAKE_CURRENT_SOURCE_DIR}/app/masterworker/README     PARENT_SCOPE)
+set(examples_src  ${examples_src}                                                                          PARENT_SCOPE)
+set(tesh_files    ${tesh_files}                                                                            PARENT_SCOPE)
+set(bin_files     ${bin_files}     ${CMAKE_CURRENT_SOURCE_DIR}/app/bittorrent/generate.py                  PARENT_SCOPE)
+set(txt_files     ${txt_files}     ${CMAKE_CURRENT_SOURCE_DIR}/app/masterworker/README
+                                   ${CMAKE_CURRENT_SOURCE_DIR}/cloud/migration/README                      PARENT_SCOPE)
 set(xml_files     ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/app/bittorrent/bittorrent.xml
+                                   ${CMAKE_CURRENT_SOURCE_DIR}/app/centralizedmutex/centralizedmutex.xml
                                    ${CMAKE_CURRENT_SOURCE_DIR}/app/masterworker/masterworker.xml
                                    ${CMAKE_CURRENT_SOURCE_DIR}/dht/chord/chord.xml
                                    ${CMAKE_CURRENT_SOURCE_DIR}/dht/kademlia/kademlia.xml
-                                   ${CMAKE_CURRENT_SOURCE_DIR}/process/startkilltime/startkilltime.xml   PARENT_SCOPE)
+                                   ${CMAKE_CURRENT_SOURCE_DIR}/process/startkilltime/startkilltime.xml
+                                   ${CMAKE_CURRENT_SOURCE_DIR}/task/priority/priority.xml                  PARENT_SCOPE)
 
 if(enable_java)
-  foreach (example app_bittorrent app_masterworker dht_chord dht_kademlia energy_consumption energy_vm io_file 
-           io_storage process_kill process_migration process_startkilltime process_suspend)
+  foreach (example app_bittorrent app_centralizedmutex app_masterworker app_pingpong async_dsend
+           cloud_migration cloud_masterworker dht_chord dht_kademlia energy_consumption energy_vm io_file io_storage 
+           process_kill process_migration process_startkilltime process_suspend task_priority trace_pingpong)
     string (REPLACE "_" "/" example_dir ${example})
     ADD_TESH(java-${example}  --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/${example_dir}/${example}.tesh)
   endforeach()
@@ -4,7 +4,7 @@
 /* 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. */
 
-package mutualExclusion;
+package app.centralizedmutex;
 import java.util.LinkedList;
 
 import org.simgrid.msg.Msg;
@@ -4,5 +4,5 @@
 /* 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. */
 
-package mutualExclusion;
+package app.centralizedmutex;
 public class GrantTask extends org.simgrid.msg.Task {}
similarity index 58%
rename from examples/java/async/AsyncTest.java
rename to examples/java/app/centralizedmutex/Main.java
index 0c6d1fe..7a8a7ac 100644 (file)
@@ -1,27 +1,24 @@
-/* Copyright (c) 2006-2014, 2016. The SimGrid Team.
+/* Copyright (c) 2012-2014, 2016. 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. */
 
-package async;
+package app.centralizedmutex;
 
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.NativeException;
 
-public class AsyncTest {
+public class Main {
   public static void main(String[] args) throws NativeException {
     Msg.init(args);
 
-    if (args.length < 2) {
-    Msg.info("Usage   : AsyncTest platform_file deployment_file");
-    Msg.info("example : AsyncTest ../platforms/platform.xml asyncDeployment.xml");
-    System.exit(1);
-  }
+    String platf  = args.length > 1 ? args[0] : "../platforms/small_platform.xml";
+    String deploy =  args.length > 1 ? args[1] : "./centralizedmutex.xml";
 
     /* construct the platform and deploy the application */
-    Msg.createEnvironment(args[0]);
-    Msg.deployApplication(args[1]);
+    Msg.createEnvironment(platf);
+    Msg.deployApplication(deploy);
 
     /*  execute the simulation. */
     Msg.run();
similarity index 97%
rename from examples/java/mutualExclusion/Node.java
rename to examples/java/app/centralizedmutex/Node.java
index 353dfd7..b8fd1d1 100644 (file)
@@ -4,7 +4,7 @@
 /* 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. */
 
-package mutualExclusion;
+package app.centralizedmutex;
 
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Host;
@@ -4,5 +4,5 @@
 /* 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. */
 
-package mutualExclusion;
+package app.centralizedmutex;
 public class ReleaseTask extends org.simgrid.msg.Task {}
@@ -4,7 +4,7 @@
 /* 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. */
 
-package mutualExclusion;
+package app.centralizedmutex;
 import org.simgrid.msg.Task;
 
 public class RequestTask extends Task {
diff --git a/examples/java/app/centralizedmutex/app_centralizedmutex.tesh b/examples/java/app/centralizedmutex/app_centralizedmutex.tesh
new file mode 100644 (file)
index 0000000..feaf851
--- /dev/null
@@ -0,0 +1,14 @@
+#! tesh
+
+! output sort 19
+
+$ java -classpath ${classpath:=.} app/centralizedmutex/Main ${srcdir:=.}/../platforms/small_platform.xml ${srcdir:=.}/app/centralizedmutex/centralizedmutex.xml
+> [0.000000] [jmsg/INFO] Using regular java threads.
+> [Jupiter:app.centralizedmutex.Node:(2) 0.000000] [jmsg/INFO] Send a request to the coordinator
+> [Fafard:app.centralizedmutex.Node:(3) 0.000000] [jmsg/INFO] Send a request to the coordinator
+> [Tremblay:app.centralizedmutex.Coordinator:(1) 0.019014] [jmsg/INFO] Got a request from app.centralizedmutex.Node. Queue empty: grant it
+> [Jupiter:app.centralizedmutex.Node:(2) 0.019014] [jmsg/INFO] Wait for a grant from the coordinator
+> [Fafard:app.centralizedmutex.Node:(3) 0.063737] [jmsg/INFO] Wait for a grant from the coordinator
+> [Tremblay:app.centralizedmutex.Coordinator:(1) 0.063737] [jmsg/INFO] Got a request from app.centralizedmutex.Node. Queue empty: grant it
+> [Tremblay:app.centralizedmutex.Coordinator:(1) 0.134167] [jmsg/INFO] we should shutdown the simulation now
+> [0.134167] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
@@ -1,14 +1,14 @@
 <?xml version='1.0'?>
 <!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
 <platform version="4">
-  <process host="Tremblay" function="mutualExclusion.Coordinator">
+  <process host="Tremblay" function="app.centralizedmutex.Coordinator">
     <argument value="2"/> <!-- Amount of CS to serve -->
   </process>
-  <process host="Jupiter" function="mutualExclusion.Node">
+  <process host="Jupiter" function="app.centralizedmutex.Node">
     <argument value="2"/> <!-- initial sleep time -->
     <argument value="5"/> <!-- CS time -->
   </process>
-  <process host="Fafard" function="mutualExclusion.Node">
+  <process host="Fafard" function="app.centralizedmutex.Node">
     <argument value="2"/> <!-- initial sleep time -->
     <argument value="5"/> <!-- CS time -->
   </process>
index a030b69..6c2b872 100644 (file)
@@ -1,4 +1,4 @@
-/* Master of a basic master/slave example in Java */
+/* Master of a basic master/worker example in Java */
 
 /* Copyright (c) 2006-2014. The SimGrid Team.
  * All rights reserved.                                                     */
index 14bc4c4..56d2f29 100644 (file)
@@ -1,7 +1,7 @@
 This is a somehow basic master/workers example.
 
 There is 2 kind of processes:
- * Master: creates some tasks, and dispatches them to its slaves
+ * Master: creates some tasks, and dispatches them to its workers
  * Worker: get tasks from the master and run them
 
 At the end of the execution:
index 9ca9a2d..ff68aac 100644 (file)
@@ -26,7 +26,7 @@ public class Worker extends Process {
     }
 
     int num = Integer.valueOf(args[0]).intValue();
-    //Msg.info("Receiving on 'slave_"+num+"'");
+    //Msg.info("Receiving on 'worker_"+num+"'");
 
     while(true) {  
       Task task = Task.receive("worker_"+num);
similarity index 51%
rename from examples/java/pingPong/PingPongTest.java
rename to examples/java/app/pingpong/Main.java
index cb7ef02..cce0555 100644 (file)
@@ -4,24 +4,24 @@
 /* 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. */
 
-package pingPong;
+package app.pingpong;
 import org.simgrid.msg.Msg;
+import org.simgrid.msg.MsgException;
 import org.simgrid.msg.NativeException;
  
-public class PingPongTest {
-  public static void main(String[] args) throws NativeException {
+public class Main {
+  public static void main(String[] args) throws MsgException, NativeException{
     Msg.init(args);
-    if(args.length < 2) {
-      Msg.info("Usage   : PingPongTest platform_file deployment_file");
-      Msg.info("example : PingPongTest ../platforms/platform.xml pingPongDeployment.xml");
+    if(args.length < 1) {
+      Msg.info("Usage   : Main platform_file");
+      Msg.info("example : Main ../platforms/platform.xml");
       System.exit(1);
     }
 
-    /* construct the platform and deploy the application */
     Msg.createEnvironment(args[0]);
-    Msg.deployApplication(args[1]);
-    
-    /*  execute the simulation. */
+    new Sender("Jacquelin", "Sender", new String[] {"Boivin"}).start();
+    new Receiver ("Boivin", "Receiver", null).start();
+
     Msg.run();
   }
 }
similarity index 97%
rename from examples/java/pingPong/PingPongTask.java
rename to examples/java/app/pingpong/PingPongTask.java
index 17f2bed..f4a556f 100644 (file)
@@ -4,7 +4,7 @@
 /* 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. */
 
-package pingPong;
+package app.pingpong;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.NativeException;
 
similarity index 82%
rename from examples/java/pingPong/Receiver.java
rename to examples/java/app/pingpong/Receiver.java
index 0d6f1ce..7bb0d29 100644 (file)
@@ -4,18 +4,20 @@
 /* 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. */
 
-package pingPong;
+package app.pingpong;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
 import org.simgrid.msg.MsgException;
+import org.simgrid.msg.NativeException;
+import org.simgrid.msg.HostNotFoundException;
 
 public class Receiver extends Process {
   final double commSizeLat = 1;
   final double commSizeBw = 100000000;
-  public Receiver(Host host, String name, String[]args) {
-    super(host,name,args);
+  public Receiver(String hostname, String name, String[]args) throws HostNotFoundException, NativeException{
+    super(hostname,name,args);
   }
 
   public void main(String[] args) throws MsgException {
similarity index 87%
rename from examples/java/pingPong/Sender.java
rename to examples/java/app/pingpong/Sender.java
index 530b67a..9644b4d 100644 (file)
@@ -4,19 +4,20 @@
 /* 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. */
 
-package pingPong;
+package app.pingpong;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Host;
 import org.simgrid.msg.Process;
 import org.simgrid.msg.MsgException;
+import org.simgrid.msg.NativeException;
 import org.simgrid.msg.HostNotFoundException;
 
 public class Sender extends Process {
   private final double commSizeLat = 1;
   final double commSizeBw = 100000000;
 
-  public Sender(Host host, String name, String[] args) {
-    super(host,name,args);
+  public Sender(String hostname, String name, String[] args) throws HostNotFoundException, NativeException {
+    super(hostname,name,args);
   }
 
   public void main(String[] args) throws MsgException {
diff --git a/examples/java/app/pingpong/app_pingpong.tesh b/examples/java/app/pingpong/app_pingpong.tesh
new file mode 100644 (file)
index 0000000..0c704bf
--- /dev/null
@@ -0,0 +1,18 @@
+#! tesh
+
+! output sort 19
+
+$ java -classpath ${classpath:=.} app/pingpong/Main ${srcdir:=.}/../platforms/platform.xml
+> [0.000000] [jmsg/INFO] Using regular java threads.
+> [1.048882] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
+> [Boivin:Receiver:(2) 0.000000] [jmsg/INFO] hello!
+> [Boivin:Receiver:(2) 0.000000] [jmsg/INFO] try to get a task
+> [Boivin:Receiver:(2) 1.048882] [jmsg/INFO] Got at time 1.0488818628325232
+> [Boivin:Receiver:(2) 1.048882] [jmsg/INFO] Was sent at time 0.0
+> [Boivin:Receiver:(2) 1.048882] [jmsg/INFO] Communication time : 1.0488818628325232
+> [Boivin:Receiver:(2) 1.048882] [jmsg/INFO]  --- bw 9.533962169004269E7 ----
+> [Boivin:Receiver:(2) 1.048882] [jmsg/INFO] goodbye!
+> [Jacquelin:Sender:(1) 0.000000] [jmsg/INFO] hello!
+> [Jacquelin:Sender:(1) 0.000000] [jmsg/INFO] host count: 1
+> [Jacquelin:Sender:(1) 0.000000] [jmsg/INFO] sender time: 0.0
+> [Jacquelin:Sender:(1) 1.048882] [jmsg/INFO] goodbye!
diff --git a/examples/java/async/CMakeLists.txt b/examples/java/async/CMakeLists.txt
deleted file mode 100644 (file)
index 4167099..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-set(example java_async)
-set(sources ${CMAKE_CURRENT_SOURCE_DIR}/AsyncTest.java  ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java
-            ${CMAKE_CURRENT_SOURCE_DIR}/Forwarder.java  ${CMAKE_CURRENT_SOURCE_DIR}/Master.java
-            ${CMAKE_CURRENT_SOURCE_DIR}/Slave.java)
-
-if(enable_java)
-  add_custom_command(
-    COMMENT "Building ${example}..."
-    OUTPUT ${example}_compiled
-    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -classpath ${SIMGRID_JAR} -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
-    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
-    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
-  )
-  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
-  ADD_TESH(java-async --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/async/async.tesh)
-endif()
-
-
-set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/async.tesh           PARENT_SCOPE)
-set(xml_files     ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/asyncDeployment.xml  PARENT_SCOPE)
-set(examples_src  ${examples_src}  ${sources}                                       PARENT_SCOPE)
-set(txt_files     ${txt_files}     ${CMAKE_CURRENT_SOURCE_DIR}/README               PARENT_SCOPE)
diff --git a/examples/java/async/FinalizeTask.java b/examples/java/async/FinalizeTask.java
deleted file mode 100644 (file)
index 39b1a4f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright (c) 2006-2014, 2016. 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. */
-
-package async;
-import org.simgrid.msg.Task;
-
-public class FinalizeTask extends Task {
-  public FinalizeTask() {
-    super("finalize",0,0);
-  }
-}
diff --git a/examples/java/async/Forwarder.java b/examples/java/async/Forwarder.java
deleted file mode 100644 (file)
index 965bb8c..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (c) 2006-2014, 2016. 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. */
-
-package async;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.Host;
-import org.simgrid.msg.Task;
-import org.simgrid.msg.Process;
-import org.simgrid.msg.MsgException;
-
-public class Forwarder extends Process {
-  public Forwarder(Host host, String name, String[]args) {
-    super(host,name,args);
-  }
-
-  public void main(String[] args) throws MsgException {
-    if (args.length < 3) {   
-      Msg.info("Forwarder needs 3 arguments (input mailbox, first output mailbox, last one)");
-      Msg.info("Got "+args.length+" instead");
-      System.exit(1);
-    }
-    int input = Integer.valueOf(args[0]).intValue();
-    int firstOutput = Integer.valueOf(args[1]).intValue();
-    int lastOutput = Integer.valueOf(args[2]).intValue();
-
-    int taskCount = 0;
-    int slavesCount = lastOutput - firstOutput + 1;
-    Msg.info("Receiving on 'slave_"+input+"'");
-    while(true) {
-      Task task = Task.receive("slave_"+input);
-
-      if (task instanceof FinalizeTask) {
-        Msg.info("Got a finalize task. Let's forward (asynchronously) that we're done, and then sleep 20 seconds"+
-                 " so that nobody gets a message from a terminated process.");
-
-        for (int cpt = firstOutput; cpt<=lastOutput; cpt++) {
-          Task tf = new FinalizeTask();
-          tf.dsend("slave_"+cpt);
-        }
-        waitFor(20);
-        break;
-      }
-      int dest = firstOutput + (taskCount % slavesCount);
-
-      Msg.info("Sending \"" + task.getName() + "\" to \"slave_" + dest + "\"");
-      task.send("slave_"+dest);
-
-      taskCount++;
-    }
-
-    Msg.info("I'm done. See you!");
-  }
-}
-
diff --git a/examples/java/async/Master.java b/examples/java/async/Master.java
deleted file mode 100644 (file)
index 19e66ea..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (c) 2006-2014, 2016. 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. */
-
-package async;
-import java.util.ArrayList;
-
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.Comm;
-import org.simgrid.msg.Host;
-import org.simgrid.msg.Task;
-import org.simgrid.msg.Process;
-import org.simgrid.msg.MsgException;
-
-public class Master extends Process {
-  public Master(Host host, String name, String[]args) {
-    super(host,name,args);
-  }
-
-  public void main(String[] args) throws MsgException {
-    if (args.length < 4) {
-      Msg.info("Master needs 4 arguments");
-      System.exit(1);
-    }
-
-    int tasksCount = Integer.valueOf(args[0]).intValue();    
-    double taskComputeSize = Double.valueOf(args[1]).doubleValue();    
-    double taskCommunicateSize = Double.valueOf(args[2]).doubleValue();
-
-    int slavesCount = Integer.valueOf(args[3]).intValue();
-
-    Msg.info("Hello! Got "+  slavesCount + " slaves and "+tasksCount+" tasks to process");
-    ArrayList<Comm> comms = new ArrayList<Comm>();
-
-    for (int i = 0; i < tasksCount; i++) {
-      Task task = new Task("Task_" + i, taskComputeSize, taskCommunicateSize); 
-      Msg.info("Sending \"" + task.getName()+ "\" to \"slave_" + i % slavesCount + "\"");
-      Comm comm = task.isend("slave_"+(i%slavesCount));
-      comms.add(comm);
-    }
-
-    while (comms.size() > 0) {
-      for (int i = 0; i < comms.size(); i++) {
-        try {
-          if (comms.get(i).test()) {
-            comms.remove(i);
-            i--;
-          }
-        }
-        catch (Exception e) {
-          e.printStackTrace();
-        }
-      }
-      waitFor(1);
-    }
-    Msg.info("All tasks have been dispatched. Let's tell (asynchronously) everybody the computation is over,"+
-             " and sleep 20s so that nobody gets a message from a terminated process.");
-
-    for (int i = 0; i < slavesCount; i++) {
-      FinalizeTask task = new FinalizeTask();
-      task.dsend("slave_"+(i%slavesCount));
-    }
-    waitFor(20);
-
-    Msg.info("Goodbye now!");
-  }
-}
diff --git a/examples/java/async/README b/examples/java/async/README
deleted file mode 100644 (file)
index 0d6dcc2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-This is another version of the master/slaves example, using asynchronous communications.
-
-There is 3 kind of processes:
- * Master: creates some tasks, and dispatches them to its slaves
- * Forwarder: get tasks from master, and dispatch them further
- * Slave: get tasks from either master or forwarder, and run them
-
-At the end of the execution:
- - the master sends FinalizeTask to every known slave to stop them,
-   using dsend instead of send. That's non-blocking with no way to
-   know if/when the communication succeeds. It is intended for
-   communications where you don't care to know whether your message got 
-   received or not. The process then sleeps 20 seconds because we have
-   a strange bug for now when the receiver gets a message from a
-   terminated process. This should not be the case, actually, that's a
-   JAVA specific bug, but I don't really have the time to dig in right
-   now.
-
- - On reception of FT, forwarders dsend FT to every slave, and stop
-   after a little while.
- - On reception of FinalizeTask, slaves stop.
-Other non-blocking primitives will get used here as soon as they are 
-added to the bindings.
\ No newline at end of file
diff --git a/examples/java/async/Slave.java b/examples/java/async/Slave.java
deleted file mode 100644 (file)
index 3d32d2a..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (c) 2006-2007, 2010, 2013-2014, 2016. 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. */
-
-package async;
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.Comm;
-import org.simgrid.msg.Host;
-import org.simgrid.msg.Task;
-import org.simgrid.msg.Process;
-import org.simgrid.msg.HostFailureException;
-import org.simgrid.msg.TaskCancelledException;
-import org.simgrid.msg.TimeoutException;
-import org.simgrid.msg.TransferFailureException;
-
-public class Slave extends Process {
-  public Slave(Host host, String name, String[]args) {
-    super(host,name,args);
-  }
-
-  public void main(String[] args) throws TransferFailureException, HostFailureException, TimeoutException {
-    if (args.length < 1) {
-      Msg.info("Slave needs 1 argument (its number)");
-      System.exit(1);
-    }
-    int num = Integer.valueOf(args[0]).intValue();
-    Comm comm = null;
-    boolean slaveFinished = false;
-    while(!slaveFinished) {  
-      try {
-        if (comm == null) {
-          Msg.info("Receiving on 'slave_" + num + "'");
-          comm = Task.irecv("slave_" + num);
-        } else {
-          if (comm.test()) {
-            Task task = comm.getTask();
-
-            if (task instanceof FinalizeTask) {
-              comm = null;
-              break;
-            }
-            Msg.info("Received a task");
-            Msg.info("Received \"" + task.getName() +  "\". Processing it.");
-            try {
-              task.execute();
-            } catch (TaskCancelledException e) {
-            
-            }
-            comm = null;
-          } else {
-            waitFor(1);
-          }
-        }
-      }
-      catch (Exception e) {
-        e.printStackTrace();
-      }
-    }
-    Msg.info("Received Finalize. I'm done. See you!");
-    waitFor(20);
-  }
-}
\ No newline at end of file
diff --git a/examples/java/async/async.tesh b/examples/java/async/async.tesh
deleted file mode 100644 (file)
index 8a33bbb..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#! tesh
-
-! output sort 19
-! timeout 30
-$ java -classpath ${classpath:=.} async/AsyncTest ${srcdir:=.}/../platforms/platform.xml ${srcdir:=.}/async/asyncDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Using regular java threads.
-> [  0.000000] (10:async.Slave@Robert) Receiving on 'slave_8'
-> [  0.000000] (11:async.Slave@Sirois) Receiving on 'slave_9'
-> [  0.000000] (12:async.Slave@Monique) Receiving on 'slave_10'
-> [  0.000000] (1:async.Master@Jacquelin) Hello! Got 7 slaves and 5 tasks to process
-> [  0.000000] (1:async.Master@Jacquelin) Sending "Task_0" to "slave_0"
-> [  0.000000] (1:async.Master@Jacquelin) Sending "Task_1" to "slave_1"
-> [  0.000000] (1:async.Master@Jacquelin) Sending "Task_2" to "slave_2"
-> [  0.000000] (1:async.Master@Jacquelin) Sending "Task_3" to "slave_3"
-> [  0.000000] (1:async.Master@Jacquelin) Sending "Task_4" to "slave_4"
-> [  0.000000] (2:async.Forwarder@Jackson) Receiving on 'slave_0'
-> [  0.000000] (3:async.Forwarder@Casavant) Receiving on 'slave_1'
-> [  0.000000] (4:async.Slave@iRMX) Receiving on 'slave_2'
-> [  0.000000] (5:async.Slave@Bousquet) Receiving on 'slave_3'
-> [  0.000000] (6:async.Slave@Soucy) Receiving on 'slave_4'
-> [  0.000000] (7:async.Slave@Kuenning) Receiving on 'slave_5'
-> [  0.000000] (8:async.Slave@Browne) Receiving on 'slave_6'
-> [  0.000000] (9:async.Slave@Stephen) Receiving on 'slave_7'
-> [  0.851467] (2:async.Forwarder@Jackson) Sending "Task_0" to "slave_7"
-> [  1.357014] (3:async.Forwarder@Casavant) Sending "Task_1" to "slave_9"
-> [  2.000000] (11:async.Slave@Sirois) Received a task
-> [  2.000000] (11:async.Slave@Sirois) Received "Task_1". Processing it.
-> [  2.000000] (5:async.Slave@Bousquet) Received a task
-> [  2.000000] (5:async.Slave@Bousquet) Received "Task_3". Processing it.
-> [  2.000000] (6:async.Slave@Soucy) Received a task
-> [  2.000000] (6:async.Slave@Soucy) Received "Task_4". Processing it.
-> [  2.000364] (6:async.Slave@Soucy) Receiving on 'slave_4'
-> [  2.000437] (11:async.Slave@Sirois) Receiving on 'slave_9'
-> [  2.001165] (5:async.Slave@Bousquet) Receiving on 'slave_3'
-> [  4.000000] (4:async.Slave@iRMX) Received a task
-> [  4.000000] (4:async.Slave@iRMX) Received "Task_2". Processing it.
-> [  4.000000] (9:async.Slave@Stephen) Received a task
-> [  4.000000] (9:async.Slave@Stephen) Received "Task_0". Processing it.
-> [  4.000728] (4:async.Slave@iRMX) Receiving on 'slave_2'
-> [  4.000728] (9:async.Slave@Stephen) Receiving on 'slave_7'
-> [  5.000000] (1:async.Master@Jacquelin) All tasks have been dispatched. Let's tell (asynchronously) everybody the computation is over, and sleep 20s so that nobody gets a message from a terminated process.
-> [  5.851463] (2:async.Forwarder@Jackson) Got a finalize task. Let's forward (asynchronously) that we're done, and then sleep 20 seconds so that nobody gets a message from a terminated process.
-> [  6.000000] (7:async.Slave@Kuenning) Received Finalize. I'm done. See you!
-> [  6.000000] (8:async.Slave@Browne) Received Finalize. I'm done. See you!
-> [  6.357007] (3:async.Forwarder@Casavant) Got a finalize task. Let's forward (asynchronously) that we're done, and then sleep 20 seconds so that nobody gets a message from a terminated process.
-> [  7.000364] (6:async.Slave@Soucy) Received Finalize. I'm done. See you!
-> [  7.000437] (11:async.Slave@Sirois) Received Finalize. I'm done. See you!
-> [  7.001165] (5:async.Slave@Bousquet) Received Finalize. I'm done. See you!
-> [  8.000000] (12:async.Slave@Monique) Received Finalize. I'm done. See you!
-> [  9.000000] (10:async.Slave@Robert) Received Finalize. I'm done. See you!
-> [  9.000728] (4:async.Slave@iRMX) Received Finalize. I'm done. See you!
-> [  9.000728] (9:async.Slave@Stephen) Received Finalize. I'm done. See you!
-> [ 25.000000] (1:async.Master@Jacquelin) Goodbye now!
-> [ 25.851463] (2:async.Forwarder@Jackson) I'm done. See you!
-> [ 26.357007] (3:async.Forwarder@Casavant) I'm done. See you!
-> [ 29.000728] (0:maestro@) MSG_main finished; Cleaning up the simulation...
diff --git a/examples/java/async/asyncDeployment.xml b/examples/java/async/asyncDeployment.xml
deleted file mode 100644 (file)
index 7ef4d13..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4">
-  <process host="Jacquelin" function="async.Master">
-     <argument value="5"/>     <!-- Amount of tasks to dispatch -->
-     <argument value="50000"/> <!-- Computation size of each task -->
-     <argument value="10"/>    <!-- Communication size of each one -->
-     <argument value="7"/>     <!-- Amount of slaves waiting for orders -->
-  </process>
-
-  <process host="Jackson" function="async.Forwarder">
-     <argument value="0"/>  <!-- Input mailbox -->
-     <argument value="7"/>  <!-- First output mailbox -->
-     <argument value="8"/>  <!-- Last output mailbox -->
-  </process>
-  <process host="Casavant" function="async.Forwarder">
-     <argument value="1"/>  <!-- Input mailbox -->
-     <argument value="9"/>  <!-- First output mailbox -->
-     <argument value="10"/> <!-- Last output mailbox -->
-  </process>
-
-  <process host="iRMX" function="async.Slave">
-     <argument value="2"/>  <!-- Input mailbox -->
-  </process>
-  <process host="Bousquet" function="async.Slave">
-     <argument value="3"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Soucy" function="async.Slave">
-     <argument value="4"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Kuenning" function="async.Slave">
-     <argument value="5"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Browne" function="async.Slave">
-     <argument value="6"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Stephen" function="async.Slave">
-     <argument value="7"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Robert" function="async.Slave">
-     <argument value="8"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Sirois" function="async.Slave">
-     <argument value="9"/>  <!-- Input mailbox -->
-  </process>  
-  <process host="Monique" function="async.Slave">
-     <argument value="10"/>  <!-- Input mailbox -->
-  </process>  
-</platform>
diff --git a/examples/java/async/dsend/Main.java b/examples/java/async/dsend/Main.java
new file mode 100644 (file)
index 0000000..09d441a
--- /dev/null
@@ -0,0 +1,34 @@
+/* Copyright (c) 2006-2014, 2016. 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. */
+
+package async.dsend;
+
+import org.simgrid.msg.Msg;
+import org.simgrid.msg.Host;
+import org.simgrid.msg.NativeException;
+import org.simgrid.msg.HostNotFoundException;
+
+public class Main {
+  public static void main(String[] args) throws NativeException, HostNotFoundException {
+    Msg.init(args);
+
+    if (args.length < 1) {
+    Msg.info("Usage   : Main platform_file");
+    Msg.info("example : Main ../platforms/small_platform.xml");
+    System.exit(1);
+  }
+
+    /* construct the platform and deploy the application */
+    Msg.createEnvironment(args[0]);
+    Host[] hosts = Host.all();
+    new Sender(hosts[0],"Sender").start();
+    for (int i=1; i < hosts.length; i++){
+      new Receiver(hosts[i], "Receiver").start();
+    }
+    /*  execute the simulation. */
+    Msg.run();
+  }
+}
diff --git a/examples/java/async/dsend/Receiver.java b/examples/java/async/dsend/Receiver.java
new file mode 100644 (file)
index 0000000..4f6c3f0
--- /dev/null
@@ -0,0 +1,28 @@
+/* Copyright (c) 2006-2007, 2010, 2013-2014, 2016. 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. */
+
+package async.dsend;
+import org.simgrid.msg.Msg;
+import org.simgrid.msg.Comm;
+import org.simgrid.msg.Host;
+import org.simgrid.msg.Task;
+import org.simgrid.msg.Process;
+import org.simgrid.msg.HostFailureException;
+import org.simgrid.msg.TaskCancelledException;
+import org.simgrid.msg.TimeoutException;
+import org.simgrid.msg.TransferFailureException;
+
+public class Receiver extends Process {
+  public Receiver (Host host, String name) {
+    super(host,name);
+  }
+
+  public void main(String[] args) throws TransferFailureException, HostFailureException, TimeoutException {
+    Msg.info("Receiving on '"+ getHost().getName() + "'");
+    Task.receive(getHost().getName());
+    Msg.info("Received a task. I'm done. See you!");
+  }
+}
\ No newline at end of file
diff --git a/examples/java/async/dsend/Sender.java b/examples/java/async/dsend/Sender.java
new file mode 100644 (file)
index 0000000..d80429a
--- /dev/null
@@ -0,0 +1,43 @@
+/* Copyright (c) 2006-2014, 2016. 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. */
+
+package async.dsend;
+import java.util.ArrayList;
+
+import org.simgrid.msg.Msg;
+import org.simgrid.msg.Comm;
+import org.simgrid.msg.Host;
+import org.simgrid.msg.Task;
+import org.simgrid.msg.Process;
+import org.simgrid.msg.MsgException;
+
+public class Sender extends Process {
+  public Sender (Host host, String name){
+    super(host,name);
+  }
+
+  public void main(String[] args) throws MsgException {
+    double taskComputeSize =0;
+    double taskCommunicateSize = 5000000;
+    Host[] hosts = Host.all();
+    int receiverCount = hosts.length - 1;
+
+    Msg.info("Hello! Got "+ receiverCount + " receivers to contact");
+
+    for (int i = 1; i <= receiverCount; i++) {
+      Task task = new Task("Task_" + i, taskComputeSize, taskCommunicateSize); 
+      Msg.info("Sending \"" + task.getName()+ "\" to \"" + hosts[i].getName() + "\"");
+      task.dsend(hosts[i].getName());
+    }
+
+    Msg.info("All tasks have been (asynchronously) dispatched."+
+             " Let's sleep for 10s so that nobody gets a message from a terminated process.");
+
+    waitFor(10);
+
+    Msg.info("Goodbye now!");
+  }
+}
diff --git a/examples/java/async/dsend/async_dsend.tesh b/examples/java/async/dsend/async_dsend.tesh
new file mode 100644 (file)
index 0000000..484f90b
--- /dev/null
@@ -0,0 +1,22 @@
+#! tesh
+
+! output sort 19
+! timeout 30
+$ java -classpath ${classpath:=.} async/dsend/Main ${srcdir:=.}/../platforms/small_platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (0:maestro@) Using regular java threads.
+> [  0.000000] (1:Sender@Fafard) Hello! Got 4 receivers to contact
+> [  0.000000] (1:Sender@Fafard) Sending "Task_1" to "Tremblay"
+> [  0.000000] (1:Sender@Fafard) Sending "Task_2" to "Bourassa"
+> [  0.000000] (1:Sender@Fafard) Sending "Task_3" to "Jupiter"
+> [  0.000000] (1:Sender@Fafard) Sending "Task_4" to "Ginette"
+> [  0.000000] (1:Sender@Fafard) All tasks have been (asynchronously) dispatched. Let's sleep for 10s so that nobody gets a message from a terminated process.
+> [  0.000000] (2:Receiver@Tremblay) Receiving on 'Tremblay'
+> [  0.000000] (3:Receiver@Bourassa) Receiving on 'Bourassa'
+> [  0.000000] (4:Receiver@Jupiter) Receiving on 'Jupiter'
+> [  0.000000] (5:Receiver@Ginette) Receiving on 'Ginette'
+> [  1.947550] (3:Receiver@Bourassa) Received a task. I'm done. See you!
+> [  2.084248] (5:Receiver@Ginette) Received a task. I'm done. See you!
+> [  2.432373] (2:Receiver@Tremblay) Received a task. I'm done. See you!
+> [  2.690554] (4:Receiver@Jupiter) Received a task. I'm done. See you!
+> [ 10.000000] (0:maestro@) MSG_main finished; Cleaning up the simulation...
+> [ 10.000000] (1:Sender@Fafard) Goodbye now!
diff --git a/examples/java/cloud/CMakeLists.txt b/examples/java/cloud/CMakeLists.txt
deleted file mode 100644 (file)
index 6ffe068..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-set(example java_cloud)
-set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Cloud.java  ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java
-            ${CMAKE_CURRENT_SOURCE_DIR}/Master.java ${CMAKE_CURRENT_SOURCE_DIR}/Slave.java)
-
-if(enable_java)
-  add_custom_command(
-    COMMENT "Building ${example}..."
-    OUTPUT ${example}_compiled
-    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -classpath ${SIMGRID_JAR} -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
-    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
-    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
-  )
-  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
-  ADD_TESH(java-cloud --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/cloud/cloud.tesh)
-endif()
-
-set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/cloud.tesh  PARENT_SCOPE)
-set(examples_src  ${examples_src}  ${sources}                              PARENT_SCOPE)
diff --git a/examples/java/cloud/FinalizeTask.java b/examples/java/cloud/FinalizeTask.java
deleted file mode 100644 (file)
index d0cebd0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Copyright (c) 2012-2014,2016. 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. */
-
-package cloud;
-
-import org.simgrid.msg.Task;
-
-public class FinalizeTask extends Task {
-  public FinalizeTask(double compSize, double commSize) {
-    super("Finalize",compSize,commSize);
-  }
-}
\ No newline at end of file
similarity index 87%
rename from examples/java/cloud/Cloud.java
rename to examples/java/cloud/masterworker/Main.java
index f5f2cd9..c241c78 100644 (file)
@@ -4,13 +4,13 @@
 /* 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. */
 
-package cloud;
+package cloud.masterworker;
 
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Host;
 import org.simgrid.msg.MsgException;
 
-public class Cloud {
+public class Main {
   public static final double task_comp_size = 10;
   public static final double task_comm_size = 10;
   public static final int hostNB = 2 ; 
@@ -18,8 +18,8 @@ public class Cloud {
     Msg.init(args); 
 
     if (args.length < 1) {
-      Msg.info("Usage   : Cloud platform_file");
-      Msg.info("Usage  : Cloud ../platforms/platform.xml");
+      Msg.info("Usage   : Main platform_file");
+      Msg.info("Usage  : Main ../platforms/platform.xml");
       System.exit(1);
     }
 
similarity index 79%
rename from examples/java/cloud/Master.java
rename to examples/java/cloud/masterworker/Master.java
index 211b17b..c783dec 100644 (file)
@@ -4,7 +4,7 @@
 /* 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. */
 
-package cloud;
+package cloud.masterworker;
 
 import java.util.ArrayList;
 
@@ -24,24 +24,24 @@ public class Master extends Process {
   }
 
   public void main(String[] args) throws MsgException {
-    int slavesCount = Cloud.hostNB;
+    int workersCount = Main.hostNB;
     ArrayList<VM> vms = new ArrayList<VM>();
 
     // Create one VM per host and bind a process inside each one. 
-    for (int i = 0; i < slavesCount; i++) {
+    for (int i = 0; i < workersCount; i++) {
       Msg.info("create VM0"+i);  
       VM vm = new VM(hosts[i+1],"VM0"+i);
       vm.start();
       vms.add(vm);
-      Slave slave = new Slave(vm,i);
-      Msg.info("Put Worker "+slave.getName()+ " on "+vm.getName());
-      slave.start();
+      Worker worker= new Worker(vm,i);
+      Msg.info("Put Worker "+worker.getName()+ " on "+vm.getName());
+      worker.start();
     }
 
     Msg.info("Launched " + vms.size() + " VMs");
 
     Msg.info("Send a first batch of work to everyone");
-    workBatch(slavesCount);
+    workBatch(workersCount);
 
     Msg.info("Suspend all VMs");
     for (int i = 0; i < vms.size(); i++) {
@@ -63,11 +63,11 @@ public class Master extends Process {
 /*    Msg.info("Add one more process per VM.");
     for (int i = 0; i < vms.size(); i++) {
       VM vm = vms.get(i);
-      Slave slave = new Slave(vm,i + vms.size());
-      slave.start();
+      Worker worker = new Worker(vm,i + vms.size());
+      worker.start();
     }
 
-    workBatch(slavesCount * 2);
+    workBatch(workersCount * 2);
 */
 
     Msg.info("Migrate everyone to "+hosts[3].getName());
@@ -85,9 +85,9 @@ public class Master extends Process {
     Msg.info("Master done.");
   }
 
-  public void workBatch(int slavesCount) throws MsgException {
-    for (int i = 0; i < slavesCount; i++) {
-      Task task = new Task("Task0" + i, Cloud.task_comp_size, Cloud.task_comm_size);
+  public void workBatch(int workersCount) throws MsgException {
+    for (int i = 0; i < workersCount; i++) {
+      Task task = new Task("Task0" + i, Main.task_comp_size, Main.task_comm_size);
       Msg.info("Sending to WRK0" + i);
       task.send("MBOX:WRK0" + i);
     }
similarity index 83%
rename from examples/java/cloud/Slave.java
rename to examples/java/cloud/masterworker/Worker.java
index b8b3728..2220730 100644 (file)
@@ -4,7 +4,7 @@
 /* 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. */
 
-package cloud;
+package cloud.masterworker;
 
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Host;
@@ -12,9 +12,9 @@ import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
 import org.simgrid.msg.MsgException;
 
-public class Slave extends Process {
+public class Worker extends Process {
   private int number;
-  public Slave(Host host, int number) {
+  public Worker(Host host, int number) {
     super(host,"WRK0" + number,null);
     this.number = number;
   }
@@ -29,10 +29,6 @@ public class Slave extends Process {
         Msg.debug("Received failed. I'm done. See you!");
         break;
       }
-      if (task instanceof FinalizeTask) {
-        Msg.info("Received Finalize. I'm done. See you!");
-        break;
-      }
       Msg.info("Received \"" + task.getName() +  "\". Processing it.");
       try {
         task.execute();
similarity index 92%
rename from examples/java/cloud/cloud.tesh
rename to examples/java/cloud/masterworker/cloud_masterworker.tesh
index 7dd261f..2b38e95 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort 19
 
-$ java -classpath ${classpath:=.} cloud/Cloud ${srcdir:=.}/../platforms/platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -classpath ${classpath:=.} cloud/masterworker/Main ${srcdir:=.}/../platforms/platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:maestro@) Using regular java threads.
 > [  0.000000] (0:maestro@) Start2  hosts
 > [  0.000000] (1:Master@Jacquelin) create VM00
diff --git a/examples/java/cloud/migration/CMakeLists.txt b/examples/java/cloud/migration/CMakeLists.txt
deleted file mode 100644 (file)
index 104b39e..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-set(example java_cloud_migration)
-set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Daemon.java ${CMAKE_CURRENT_SOURCE_DIR}/Main.java
-            ${CMAKE_CURRENT_SOURCE_DIR}/Test.java   ${CMAKE_CURRENT_SOURCE_DIR}/TestHostOnOff.java
-            ${CMAKE_CURRENT_SOURCE_DIR}/XVM.java)
-
-if(enable_java)
-  add_custom_command(
-    COMMENT "Building ${example}..."
-    OUTPUT ${example}_compiled
-    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -classpath ${SIMGRID_JAR} -d ${CMAKE_CURRENT_BINARY_DIR}/../.. ${sources}
-    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
-    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
-  )
-  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
-  ADD_TESH(java-cloud-migration --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/cloud/migration/migration.tesh)
-endif()
-
-set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/migration.tesh     PARENT_SCOPE)
-set(xml_files     ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/deploy_simple.xml  PARENT_SCOPE)
-set(examples_src  ${examples_src}  ${sources}                                     PARENT_SCOPE)
-set(txt_files     ${txt_files}     ${CMAKE_CURRENT_SOURCE_DIR}/README             PARENT_SCOPE)
index df35b64..244569f 100644 (file)
@@ -9,7 +9,7 @@ package cloud.migration;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Host;
 import org.simgrid.msg.HostNotFoundException;
-import org.simgrid.msg.NativeException;
+import org.simgrid.msg.MsgException;
 
 public class Main {
   private static boolean endOfTest = false;
@@ -22,18 +22,17 @@ public class Main {
     return endOfTest;
   }
 
-  public static void main(String[] args) throws NativeException {
+  public static void main(String[] args) throws MsgException {
     Msg.init(args);
 
-    if (args.length < 2) {
-      Msg.info("Usage  : Main platform_file.xml dployment_file.xml");
+    if (args.length < 1) {
+      Msg.info("Usage  : Main platform_file.xml");
       System.exit(1);
     }
 
     /* construct the platform and deploy the application */
     Msg.createEnvironment(args[0]);
-    Msg.deployApplication(args[1]);
-
+    new cloud.migration.Test("host0","Test").start();
     Msg.run();
   }
 }
index e67b32c..c9ccc6e 100644 (file)
@@ -14,8 +14,8 @@ import org.simgrid.msg.Process;
 
 public class Test extends Process{
 
-  Test(Host host, String name, String[] args) throws HostNotFoundException, NativeException  {
-    super(host, name, args);
+  Test(String hostname, String name) throws HostNotFoundException, NativeException  {
+    super(hostname, name);
   }
 
   public void main(String[] strings) throws MsgException {
diff --git a/examples/java/cloud/migration/cloud_migration.tesh b/examples/java/cloud/migration/cloud_migration.tesh
new file mode 100644 (file)
index 0000000..73aec7c
--- /dev/null
@@ -0,0 +1,33 @@
+#! tesh
+
+$ java -classpath ${classpath:=.} cloud/migration/Main ${srcdir:=.}/../platforms/two_hosts_platform.xml
+> [0.000000] [jmsg/INFO] Using regular java threads.
+> [host0:Test:(1) 0.000000] [jmsg/INFO] This example evaluates the migration time of a VM in presence of collocated VMs on the source and the dest nodes
+> [host0:Test:(1) 0.000000] [jmsg/INFO] The migrated VM has a memory intensity rate of 70% of the network BW and a cpu load of 90% " (see cloudcom 2013 paper "Adding a Live Migration Model Into SimGrid" for further information) 
+> [host0:Test:(1) 0.000000] [jmsg/INFO] Load of collocated VMs fluctuate between 0 and 90% in order to create a starvation issue and see whether it impacts or not the migration time
+> [host0:Test:(1) 0.000000] [jmsg/INFO] Round trip of VM1 (load 90%)
+> [host0:Test:(1) 0.000000] [jmsg/INFO]      - Launch migration from host 0 to host 1
+> [host0:Test:(1) 0.000000] [jmsg/INFO] Start migration of VM vm0 to host1
+> [host0:Test:(1) 0.000000] [jmsg/INFO]     currentLoad:90/ramSize:2048/dpIntensity:70/remaining:8.10E+11
+> [host0:Test:(1) 35.084170] [jmsg/INFO] End of migration of VM vm0 to node host1
+> [host0:Test:(1) 35.084170] [jmsg/INFO]      - End of Migration from host 0 to host 1 (duration:35.0841702956701)
+> [host0:Test:(1) 35.084170] [jmsg/INFO]      - Launch migration from host 1 to host 0
+> [host0:Test:(1) 35.084170] [jmsg/INFO] Start migration of VM vm0 to host0
+> [host0:Test:(1) 35.084170] [jmsg/INFO]     currentLoad:90/ramSize:2048/dpIntensity:70/remaining:6.22E+11
+> [host0:Test:(1) 67.551019] [jmsg/INFO] End of migration of VM vm0 to node host0
+> [host0:Test:(1) 67.551019] [jmsg/INFO]      - End of Migration from host 1 to host 0 (duration:32.46684874546391)
+> [host0:Test:(1) 67.551019] [jmsg/INFO] 
+> [host0:Test:(1) 67.551019] [jmsg/INFO] 
+> [host0:Test:(1) 67.551019] [jmsg/INFO] Round trip of VM1 (load 80%)
+> [host0:Test:(1) 67.551019] [jmsg/INFO]      - Launch migration from host 0 to host 1
+> [host0:Test:(1) 67.551019] [jmsg/INFO] Start migration of VM vm0 to host1
+> [host0:Test:(1) 67.551019] [jmsg/INFO]     currentLoad:80/ramSize:2048/dpIntensity:70/remaining:4.64E+11
+> [host0:Test:(1) 102.635189] [jmsg/INFO] End of migration of VM vm0 to node host1
+> [host0:Test:(1) 102.635189] [jmsg/INFO]      - End of Migration from host 0 to host 1 (duration:35.08417029567006)
+> [host0:Test:(1) 102.635189] [jmsg/INFO]      - Launch migration from host 1 to host 0
+> [host0:Test:(1) 102.635189] [jmsg/INFO] Start migration of VM vm0 to host0
+> [host0:Test:(1) 102.635189] [jmsg/INFO]     currentLoad:80/ramSize:2048/dpIntensity:70/remaining:2.77E+11
+> [host0:Test:(1) 135.102038] [jmsg/INFO] End of migration of VM vm0 to node host0
+> [host0:Test:(1) 135.102038] [jmsg/INFO]      - End of Migration from host 1 to host 0 (duration:32.46684874546395)
+> [host0:Test:(1) 135.102038] [jmsg/INFO] Forcefully destroy VMs
+> [135.102038] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
diff --git a/examples/java/cloud/migration/deploy_simple.xml b/examples/java/cloud/migration/deploy_simple.xml
deleted file mode 100644 (file)
index 0b5dffa..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4">
-  <process host="host0" function="cloud/migration/Test"/>
-</platform>
diff --git a/examples/java/cloud/migration/migration.tesh b/examples/java/cloud/migration/migration.tesh
deleted file mode 100644 (file)
index 0368370..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#! tesh
-
-$ java -classpath ${classpath:=.} cloud/migration/Main ${srcdir:=.}/../platforms/two_hosts_platform.xml ${srcdir:=.}/cloud/migration/deploy_simple.xml
-> [0.000000] [jmsg/INFO] Using regular java threads.
-> [host0:cloud/migration/Test:(1) 0.000000] [jmsg/INFO] This example evaluates the migration time of a VM in presence of collocated VMs on the source and the dest nodes
-> [host0:cloud/migration/Test:(1) 0.000000] [jmsg/INFO] The migrated VM has a memory intensity rate of 70% of the network BW and a cpu load of 90% " (see cloudcom 2013 paper "Adding a Live Migration Model Into SimGrid" for further information) 
-> [host0:cloud/migration/Test:(1) 0.000000] [jmsg/INFO] Load of collocated VMs fluctuate between 0 and 90% in order to create a starvation issue and see whether it impacts or not the migration time
-> [host0:cloud/migration/Test:(1) 0.000000] [jmsg/INFO] Round trip of VM1 (load 90%)
-> [host0:cloud/migration/Test:(1) 0.000000] [jmsg/INFO]      - Launch migration from host 0 to host 1
-> [host0:cloud/migration/Test:(1) 0.000000] [jmsg/INFO] Start migration of VM vm0 to host1
-> [host0:cloud/migration/Test:(1) 0.000000] [jmsg/INFO]     currentLoad:90/ramSize:2048/dpIntensity:70/remaining:8.10E+11
-> [host0:cloud/migration/Test:(1) 35.084170] [jmsg/INFO] End of migration of VM vm0 to node host1
-> [host0:cloud/migration/Test:(1) 35.084170] [jmsg/INFO]      - End of Migration from host 0 to host 1 (duration:35.0841702956701)
-> [host0:cloud/migration/Test:(1) 35.084170] [jmsg/INFO]      - Launch migration from host 1 to host 0
-> [host0:cloud/migration/Test:(1) 35.084170] [jmsg/INFO] Start migration of VM vm0 to host0
-> [host0:cloud/migration/Test:(1) 35.084170] [jmsg/INFO]     currentLoad:90/ramSize:2048/dpIntensity:70/remaining:6.22E+11
-> [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO] End of migration of VM vm0 to node host0
-> [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO]      - End of Migration from host 1 to host 0 (duration:32.46684874546391)
-> [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO] 
-> [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO] 
-> [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO] Round trip of VM1 (load 80%)
-> [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO]      - Launch migration from host 0 to host 1
-> [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO] Start migration of VM vm0 to host1
-> [host0:cloud/migration/Test:(1) 67.551019] [jmsg/INFO]     currentLoad:80/ramSize:2048/dpIntensity:70/remaining:4.64E+11
-> [host0:cloud/migration/Test:(1) 102.635189] [jmsg/INFO] End of migration of VM vm0 to node host1
-> [host0:cloud/migration/Test:(1) 102.635189] [jmsg/INFO]      - End of Migration from host 0 to host 1 (duration:35.08417029567006)
-> [host0:cloud/migration/Test:(1) 102.635189] [jmsg/INFO]      - Launch migration from host 1 to host 0
-> [host0:cloud/migration/Test:(1) 102.635189] [jmsg/INFO] Start migration of VM vm0 to host0
-> [host0:cloud/migration/Test:(1) 102.635189] [jmsg/INFO]     currentLoad:80/ramSize:2048/dpIntensity:70/remaining:2.77E+11
-> [host0:cloud/migration/Test:(1) 135.102038] [jmsg/INFO] End of migration of VM vm0 to node host0
-> [host0:cloud/migration/Test:(1) 135.102038] [jmsg/INFO]      - End of Migration from host 1 to host 0 (duration:32.46684874546395)
-> [host0:cloud/migration/Test:(1) 135.102038] [jmsg/INFO] Forcefully destroy VMs
-> [135.102038] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
diff --git a/examples/java/mutualExclusion/CMakeLists.txt b/examples/java/mutualExclusion/CMakeLists.txt
deleted file mode 100644 (file)
index a5e9bed..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-set(example java_mutualExclusion)
-set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Coordinator.java   ${CMAKE_CURRENT_SOURCE_DIR}/GrantTask.java
-            ${CMAKE_CURRENT_SOURCE_DIR}/MutexCentral.java  ${CMAKE_CURRENT_SOURCE_DIR}/Node.java
-            ${CMAKE_CURRENT_SOURCE_DIR}/ReleaseTask.java   ${CMAKE_CURRENT_SOURCE_DIR}/RequestTask.java)
-
-if(enable_java)
-  add_custom_command(
-    COMMENT "Building ${example}..."
-    OUTPUT ${example}_compiled
-    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -classpath ${SIMGRID_JAR} -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
-    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
-    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
-  )
-  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
-  ADD_TESH(java-mutualExclusion --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/mutualExclusion/mutualexclusion.tesh)
-endif()
-
-set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/mutualexclusion.tesh              PARENT_SCOPE)
-set(xml_files     ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/mutex_centralized_deployment.xml  PARENT_SCOPE)
-set(examples_src  ${examples_src}  ${sources}                                                    PARENT_SCOPE)
diff --git a/examples/java/mutualExclusion/MutexCentral.java b/examples/java/mutualExclusion/MutexCentral.java
deleted file mode 100644 (file)
index ef1fc02..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright (c) 2012-2014, 2016. 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. */
-
-package mutualExclusion;
-
-import org.simgrid.msg.Msg;
-import org.simgrid.msg.NativeException;
-
-public class MutexCentral {
-  public static void main(String[] args) throws NativeException {
-    Msg.init(args);
-
-    if(args.length < 2) {
-      Msg.info("Usage: MutexCentral platform_file deployment_file");
-      Msg.info("Fallback to default values");
-      Msg.createEnvironment("../platform/small_platform.xml");
-      Msg.deployApplication("mutex_centralized_deployment.xml");
-    } else {
-      /* construct the platform and deploy the application */
-      Msg.createEnvironment(args[0]);
-      Msg.deployApplication(args[1]);
-    }
-
-    /*  execute the simulation. */
-    Msg.run();
-  }
-}
diff --git a/examples/java/mutualExclusion/mutualexclusion.tesh b/examples/java/mutualExclusion/mutualexclusion.tesh
deleted file mode 100644 (file)
index 1c03a20..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#! tesh
-
-! output sort 19
-
-$ java -classpath ${classpath:=.} mutualExclusion/MutexCentral ${srcdir:=.}/../platforms/small_platform.xml ${srcdir:=.}/mutualExclusion/mutex_centralized_deployment.xml
-> [0.000000] [jmsg/INFO] Using regular java threads.
-> [Jupiter:mutualExclusion.Node:(2) 0.000000] [jmsg/INFO] Send a request to the coordinator
-> [Fafard:mutualExclusion.Node:(3) 0.000000] [jmsg/INFO] Send a request to the coordinator
-> [Tremblay:mutualExclusion.Coordinator:(1) 0.019014] [jmsg/INFO] Got a request from mutualExclusion.Node. Queue empty: grant it
-> [Jupiter:mutualExclusion.Node:(2) 0.019014] [jmsg/INFO] Wait for a grant from the coordinator
-> [Fafard:mutualExclusion.Node:(3) 0.063737] [jmsg/INFO] Wait for a grant from the coordinator
-> [Tremblay:mutualExclusion.Coordinator:(1) 0.063737] [jmsg/INFO] Got a request from mutualExclusion.Node. Queue empty: grant it
-> [Tremblay:mutualExclusion.Coordinator:(1) 0.134167] [jmsg/INFO] we should shutdown the simulation now
-> [0.134167] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
diff --git a/examples/java/pingPong/CMakeLists.txt b/examples/java/pingPong/CMakeLists.txt
deleted file mode 100644 (file)
index 910bedb..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-set(example java_pingPong)
-set(sources ${CMAKE_CURRENT_SOURCE_DIR}/PingPongTest.java ${CMAKE_CURRENT_SOURCE_DIR}/PingPongTask.java
-            ${CMAKE_CURRENT_SOURCE_DIR}/Receiver.java     ${CMAKE_CURRENT_SOURCE_DIR}/Sender.java)
-
-if(enable_java)
-  add_custom_command(
-    COMMENT "Building ${example}..."
-    OUTPUT ${example}_compiled
-    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -classpath ${SIMGRID_JAR} -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
-    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
-    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
-  )
-  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
-  ADD_TESH(java-pingPong --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/pingPong/pingpong.tesh)
-endif()
-
-set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/pingpong.tesh           PARENT_SCOPE)
-set(xml_files     ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/pingPongDeployment.xml  PARENT_SCOPE)
-set(examples_src  ${examples_src}  ${sources}                                          PARENT_SCOPE)
diff --git a/examples/java/pingPong/pingPongDeployment.xml b/examples/java/pingPong/pingPongDeployment.xml
deleted file mode 100644 (file)
index c7eec34..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4">
-  <process host="Jacquelin" function="pingPong.Sender">
-    <argument value="Boivin"/>
-  </process>
-  <process host="Boivin" function="pingPong.Receiver"/>
-</platform>
diff --git a/examples/java/pingPong/pingpong.tesh b/examples/java/pingPong/pingpong.tesh
deleted file mode 100644 (file)
index 93643a7..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#! tesh
-
-! output sort 19
-
-$ java -classpath ${classpath:=.} pingPong/PingPongTest ${srcdir:=.}/../platforms/platform.xml ${srcdir:=.}/pingPong/pingPongDeployment.xml
-> [0.000000] [jmsg/INFO] Using regular java threads.
-> [1.048882] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
-> [Boivin:pingPong.Receiver:(2) 0.000000] [jmsg/INFO] hello!
-> [Boivin:pingPong.Receiver:(2) 0.000000] [jmsg/INFO] try to get a task
-> [Boivin:pingPong.Receiver:(2) 1.048882] [jmsg/INFO] Got at time 1.0488818628325232
-> [Boivin:pingPong.Receiver:(2) 1.048882] [jmsg/INFO] Was sent at time 0.0
-> [Boivin:pingPong.Receiver:(2) 1.048882] [jmsg/INFO] Communication time : 1.0488818628325232
-> [Boivin:pingPong.Receiver:(2) 1.048882] [jmsg/INFO]  --- bw 9.533962169004269E7 ----
-> [Boivin:pingPong.Receiver:(2) 1.048882] [jmsg/INFO] goodbye!
-> [Jacquelin:pingPong.Sender:(1) 0.000000] [jmsg/INFO] hello!
-> [Jacquelin:pingPong.Sender:(1) 0.000000] [jmsg/INFO] host count: 1
-> [Jacquelin:pingPong.Sender:(1) 0.000000] [jmsg/INFO] sender time: 0.0
-> [Jacquelin:pingPong.Sender:(1) 1.048882] [jmsg/INFO] goodbye!
diff --git a/examples/java/priority/CMakeLists.txt b/examples/java/priority/CMakeLists.txt
deleted file mode 100644 (file)
index f254e91..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-set(example java_priority)
-set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Priority.java ${CMAKE_CURRENT_SOURCE_DIR}/Test.java)
-
-if(enable_java)
-  add_custom_command(
-    COMMENT "Building ${example}..."
-    OUTPUT ${example}_compiled
-    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -classpath ${SIMGRID_JAR} -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
-    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
-    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
-  )
-  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
-  ADD_TESH(java-priority --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/priority/priority.tesh)
-endif()
-
-set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/priority.tesh           PARENT_SCOPE)
-set(xml_files     ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/priorityDeployment.xml  PARENT_SCOPE)
-set(examples_src  ${examples_src}  ${sources}                                          PARENT_SCOPE)
diff --git a/examples/java/priority/priority.tesh b/examples/java/priority/priority.tesh
deleted file mode 100644 (file)
index 004ef19..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#! tesh
-
-! output sort 19
-
-$ java -classpath ${classpath:=.} priority/Priority ${srcdir:=.}/../platforms/platform.xml ${srcdir:=.}/priority/priorityDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Using regular java threads.
-> [  0.000000] (1:priority.Test@Fafard) Hello! Running a task of size 7.6296E7 with priority 1.0
-> [  0.000000] (2:priority.Test@Fafard) Hello! Running a task of size 7.6296E7 with priority 2.0
-> [  0.833332] (2:priority.Test@Fafard) Goodbye now!
-> [  1.111109] (0:maestro@) MSG_main finished; Cleaning up the simulation...
-> [  1.111109] (1:priority.Test@Fafard) Goodbye now!
diff --git a/examples/java/priority/priorityDeployment.xml b/examples/java/priority/priorityDeployment.xml
deleted file mode 100644 (file)
index ddf55b5..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4">
-  <process host="Fafard" function="priority.Test">
-       <argument value="76296000"/>
-       <argument value="1.0"/>
-  </process>
-  <process host="Fafard" function="priority.Test">
-       <argument value="76296000"/>
-       <argument value="2.0"/>
-  </process>
-</platform>
index b465908..35c7990 100644 (file)
@@ -1,5 +1,3 @@
-/* Master of a basic master/slave example in Java */
-
 /* Copyright (c) 2006-2014. The SimGrid Team.
  * All rights reserved.                                                     */
 
similarity index 95%
rename from examples/java/priority/Priority.java
rename to examples/java/task/priority/Main.java
index 10fa76a..adf7fc2 100644 (file)
@@ -4,12 +4,12 @@
 /* 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. */
 
-package priority;
+package task.priority;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.NativeException;
 
 /* Demonstrates the use of Task.setPriority to change the computation priority of a task */ 
-public class Priority  {
+public class Main {
   public static void main(String[] args) throws NativeException {
     Msg.init(args);
     if(args.length < 2) {
similarity index 97%
rename from examples/java/priority/Test.java
rename to examples/java/task/priority/Test.java
index 8fb44d3..7edd279 100644 (file)
@@ -4,7 +4,7 @@
 /* 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. */
 
-package priority;
+package task.priority;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
diff --git a/examples/java/task/priority/priority.xml b/examples/java/task/priority/priority.xml
new file mode 100644 (file)
index 0000000..a2784b2
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Fafard" function="task.priority.Test"> <argument value="76296000"/> <argument value="1.0"/> </process>
+  <process host="Fafard" function="task.priority.Test"> <argument value="76296000"/> <argument value="2.0"/> </process>
+</platform>
diff --git a/examples/java/task/priority/task_priority.tesh b/examples/java/task/priority/task_priority.tesh
new file mode 100644 (file)
index 0000000..c859505
--- /dev/null
@@ -0,0 +1,11 @@
+#! tesh
+
+! output sort 19
+
+$ java -classpath ${classpath:=.} task/priority/Main ${srcdir:=.}/../platforms/small_platform.xml ${srcdir:=.}/task/priority/priority.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (0:maestro@) Using regular java threads.
+> [  0.000000] (1:task.priority.Test@Fafard) Hello! Running a task of size 7.6296E7 with priority 1.0
+> [  0.000000] (2:task.priority.Test@Fafard) Hello! Running a task of size 7.6296E7 with priority 2.0
+> [  1.500000] (2:task.priority.Test@Fafard) Goodbye now!
+> [  2.000000] (0:maestro@) MSG_main finished; Cleaning up the simulation...
+> [  2.000000] (1:task.priority.Test@Fafard) Goodbye now!
similarity index 65%
rename from examples/java/tracing/TracingTest.java
rename to examples/java/trace/pingpong/Main.java
index 5a033e3..1e82ea8 100644 (file)
@@ -4,23 +4,26 @@
 /* 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. */
 
-package tracing;
+package trace.pingpong;
 import org.simgrid.msg.Msg;
 import org.simgrid.trace.Trace;
+import org.simgrid.msg.MsgException;
 import org.simgrid.msg.NativeException;
 
-public class TracingTest  {
-  public static void main(String[] args) throws NativeException {      
+public class Main  {
+  public static void main(String[] args) throws MsgException, NativeException {
     Msg.init(args);
-    if(args.length < 2) {
-      Msg.info("Usage   : TracingTest platform_file deployment_file");
-      Msg.info("example : TracingTest ../platforms/platform.xml tracingPingPongDeployment.xml");
+    if(args.length < 1) {
+      Msg.info("Usage   : TracingTest platform_file");
+      Msg.info("example : TracingTest ../platforms/platform.xml");
       System.exit(1);
     }
 
     /* construct the platform and deploy the application */
     Msg.createEnvironment(args[0]);
-    Msg.deployApplication(args[1]);
+    new Sender("Jacquelin", "Sender", new String[] {"Boivin", "Marcel"}).start();
+    new Receiver ("Boivin", "Receiver", null).start();
+    new Receiver ("Marcel", "Receiver", null).start();
 
     /* Initialize some state for the hosts */
     Trace.hostStateDeclare ("PM_STATE"); 
similarity index 97%
rename from examples/java/tracing/PingPongTask.java
rename to examples/java/trace/pingpong/PingPongTask.java
index 22ee817..e6ea4bb 100644 (file)
@@ -4,7 +4,7 @@
 /* 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. */
 
-package tracing;
+package trace.pingpong;
 import org.simgrid.msg.NativeException;
 import org.simgrid.msg.Task;
 
similarity index 87%
rename from examples/java/tracing/Receiver.java
rename to examples/java/trace/pingpong/Receiver.java
index 725d9cf..0a57d52 100644 (file)
@@ -4,10 +4,12 @@
 /* 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. */
 
-package tracing;
+package trace.pingpong;
 import org.simgrid.msg.Host;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.MsgException;
+import org.simgrid.msg.NativeException;
+import org.simgrid.msg.HostNotFoundException;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
 import org.simgrid.trace.Trace;
@@ -16,8 +18,8 @@ public class Receiver extends Process {
   private  final double commSizeLat = 1;
   private final double commSizeBw = 100000000;
 
-  public Receiver(Host host, String name, String[]args) {
-    super(host,name,args);
+  public Receiver(String hostname, String name, String[]args) throws HostNotFoundException, NativeException{
+    super(hostname,name,args);
   }
 
   public void main(String[] args) throws MsgException {
similarity index 91%
rename from examples/java/tracing/Sender.java
rename to examples/java/trace/pingpong/Sender.java
index 8d9206b..f17cabd 100644 (file)
@@ -4,12 +4,13 @@
 /* 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. */
 
-package tracing;
+package trace.pingpong;
 import org.simgrid.msg.Msg;
 import org.simgrid.msg.Host;
 import org.simgrid.msg.Task;
 import org.simgrid.msg.Process;
 import org.simgrid.msg.MsgException;
+import org.simgrid.msg.NativeException;
 import org.simgrid.msg.HostNotFoundException;
 import org.simgrid.trace.Trace;
 
@@ -17,8 +18,8 @@ public class Sender extends Process {
   private final double commSizeLat = 1;
   private final double commSizeBw = 100000000;
 
-  public Sender(Host host, String name, String[] args) {
-    super(host,name,args);
+  public Sender(String hostname, String name, String[] args) throws HostNotFoundException, NativeException {
+    super(hostname,name,args);
   }
 
   public void main(String[] args) throws MsgException {
diff --git a/examples/java/trace/pingpong/trace_pingpong.tesh b/examples/java/trace/pingpong/trace_pingpong.tesh
new file mode 100644 (file)
index 0000000..e302f26
--- /dev/null
@@ -0,0 +1,39 @@
+#! tesh
+
+! output sort 19
+
+$ java -classpath ${classpath:=.} trace/pingpong/Main ${srcdir:=.}/../platforms/platform.xml --cfg=tracing:yes  --cfg=tracing/filename:simulation.trace --cfg=tracing/platform:yes
+> [0.000000] [jmsg/INFO] Using regular java threads.
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'simulation.trace'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to 'yes'
+> [4.474401] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
+> [Boivin:Receiver:(2) 0.000000] [jmsg/INFO] hello!
+> [Boivin:Receiver:(2) 0.000000] [jmsg/INFO] try to get a task
+> [Boivin:Receiver:(2) 1.048882] [jmsg/INFO] Got at time 1.0488818628325232
+> [Boivin:Receiver:(2) 1.048882] [jmsg/INFO] Was sent at time 0.0
+> [Boivin:Receiver:(2) 1.048882] [jmsg/INFO] Communication time : 1.0488818628325232
+> [Boivin:Receiver:(2) 1.048882] [jmsg/INFO]  --- bw 9.533962169004269E7 ----
+> [Boivin:Receiver:(2) 2.097764] [jmsg/INFO] goodbye!
+> [Jacquelin:Sender:(1) 0.000000] [jmsg/INFO] hello !
+> [Jacquelin:Sender:(1) 0.000000] [jmsg/INFO] host count: 2
+> [Jacquelin:Sender:(1) 0.000000] [jmsg/INFO] sender time: 0.0
+> [Jacquelin:Sender:(1) 2.097764] [jmsg/INFO] Got at time 2.0977637256650463
+> [Jacquelin:Sender:(1) 2.097764] [jmsg/INFO] Was sent at time 0.0
+> [Jacquelin:Sender:(1) 2.097764] [jmsg/INFO] Communication time : 2.0977637256650463
+> [Jacquelin:Sender:(1) 2.097764] [jmsg/INFO]  --- bw 4.7669810845021345E7 ----
+> [Jacquelin:Sender:(1) 2.097764] [jmsg/INFO] sender time: 2.0977637256650463
+> [Jacquelin:Sender:(1) 4.474401] [jmsg/INFO] Got at time 4.47440072325564
+> [Jacquelin:Sender:(1) 4.474401] [jmsg/INFO] Was sent at time 2.0977637256650463
+> [Jacquelin:Sender:(1) 4.474401] [jmsg/INFO] Communication time : 2.376636997590594
+> [Jacquelin:Sender:(1) 4.474401] [jmsg/INFO]  --- bw 4.2076261583648995E7 ----
+> [Jacquelin:Sender:(1) 4.474401] [jmsg/INFO] goodbye!
+> [Marcel:Receiver:(3) 0.000000] [jmsg/INFO] hello!
+> [Marcel:Receiver:(3) 0.000000] [jmsg/INFO] try to get a task
+> [Marcel:Receiver:(3) 3.057925] [jmsg/INFO] Got at time 3.0579254576553434
+> [Marcel:Receiver:(3) 3.057925] [jmsg/INFO] Was sent at time 2.0977637256650463
+> [Marcel:Receiver:(3) 3.057925] [jmsg/INFO] Communication time : 0.9601617319902971
+> [Marcel:Receiver:(3) 3.057925] [jmsg/INFO]  --- bw 1.0414912057858452E8 ----
+> [Marcel:Receiver:(3) 4.474401] [jmsg/INFO] goodbye!
+
+$ rm -rf simulation.trace
diff --git a/examples/java/tracing/CMakeLists.txt b/examples/java/tracing/CMakeLists.txt
deleted file mode 100644 (file)
index 1bb938c..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-set(example java_tracing)
-set(sources ${CMAKE_CURRENT_SOURCE_DIR}/PingPongTask.java ${CMAKE_CURRENT_SOURCE_DIR}/Receiver.java
-            ${CMAKE_CURRENT_SOURCE_DIR}/Sender.java       ${CMAKE_CURRENT_SOURCE_DIR}/TracingTest.java)
-
-if(enable_java)
-  add_custom_command(
-    COMMENT "Building ${example}..."
-    OUTPUT ${example}_compiled
-    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -classpath ${SIMGRID_JAR} -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
-    COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
-    COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
-    )
-  add_custom_target(${example} ALL DEPENDS ${example}_compiled)
-  ADD_TESH(java-tracing --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/java --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/examples/java ${CMAKE_HOME_DIRECTORY}/examples/java/tracing/tracingPingPong.tesh)
-endif()
-
-set(tesh_files    ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/tracingPingPong.tesh           PARENT_SCOPE)
-set(xml_files     ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/tracingPingPongDeployment.xml  PARENT_SCOPE)
-set(examples_src  ${examples_src}  ${sources}                                                 PARENT_SCOPE)
diff --git a/examples/java/tracing/tracingPingPong.tesh b/examples/java/tracing/tracingPingPong.tesh
deleted file mode 100644 (file)
index 4b0937c..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#! tesh
-
-! output sort 19
-
-$ java -classpath ${classpath:=.} tracing/TracingTest ${srcdir:=.}/../platforms/platform.xml ${srcdir:=.}/tracing/tracingPingPongDeployment.xml --cfg=tracing:yes  --cfg=tracing/filename:simulation.trace --cfg=tracing/platform:yes
-> [0.000000] [jmsg/INFO] Using regular java threads.
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'simulation.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to 'yes'
-> [4.474401] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
-> [Boivin:tracing.Receiver:(2) 0.000000] [jmsg/INFO] hello!
-> [Boivin:tracing.Receiver:(2) 0.000000] [jmsg/INFO] try to get a task
-> [Boivin:tracing.Receiver:(2) 1.048882] [jmsg/INFO] Got at time 1.0488818628325232
-> [Boivin:tracing.Receiver:(2) 1.048882] [jmsg/INFO] Was sent at time 0.0
-> [Boivin:tracing.Receiver:(2) 1.048882] [jmsg/INFO] Communication time : 1.0488818628325232
-> [Boivin:tracing.Receiver:(2) 1.048882] [jmsg/INFO]  --- bw 9.533962169004269E7 ----
-> [Boivin:tracing.Receiver:(2) 2.097764] [jmsg/INFO] goodbye!
-> [Jacquelin:tracing.Sender:(1) 0.000000] [jmsg/INFO] hello !
-> [Jacquelin:tracing.Sender:(1) 0.000000] [jmsg/INFO] host count: 2
-> [Jacquelin:tracing.Sender:(1) 0.000000] [jmsg/INFO] sender time: 0.0
-> [Jacquelin:tracing.Sender:(1) 2.097764] [jmsg/INFO] Got at time 2.0977637256650463
-> [Jacquelin:tracing.Sender:(1) 2.097764] [jmsg/INFO] Was sent at time 0.0
-> [Jacquelin:tracing.Sender:(1) 2.097764] [jmsg/INFO] Communication time : 2.0977637256650463
-> [Jacquelin:tracing.Sender:(1) 2.097764] [jmsg/INFO]  --- bw 4.7669810845021345E7 ----
-> [Jacquelin:tracing.Sender:(1) 2.097764] [jmsg/INFO] sender time: 2.0977637256650463
-> [Jacquelin:tracing.Sender:(1) 4.474401] [jmsg/INFO] Got at time 4.47440072325564
-> [Jacquelin:tracing.Sender:(1) 4.474401] [jmsg/INFO] Was sent at time 2.0977637256650463
-> [Jacquelin:tracing.Sender:(1) 4.474401] [jmsg/INFO] Communication time : 2.376636997590594
-> [Jacquelin:tracing.Sender:(1) 4.474401] [jmsg/INFO]  --- bw 4.2076261583648995E7 ----
-> [Jacquelin:tracing.Sender:(1) 4.474401] [jmsg/INFO] goodbye!
-> [Marcel:tracing.Receiver:(3) 0.000000] [jmsg/INFO] hello!
-> [Marcel:tracing.Receiver:(3) 0.000000] [jmsg/INFO] try to get a task
-> [Marcel:tracing.Receiver:(3) 3.057925] [jmsg/INFO] Got at time 3.0579254576553434
-> [Marcel:tracing.Receiver:(3) 3.057925] [jmsg/INFO] Was sent at time 2.0977637256650463
-> [Marcel:tracing.Receiver:(3) 3.057925] [jmsg/INFO] Communication time : 0.9601617319902971
-> [Marcel:tracing.Receiver:(3) 3.057925] [jmsg/INFO]  --- bw 1.0414912057858452E8 ----
-> [Marcel:tracing.Receiver:(3) 4.474401] [jmsg/INFO] goodbye!
-
-$ rm -rf simulation.trace
diff --git a/examples/java/tracing/tracingPingPongDeployment.xml b/examples/java/tracing/tracingPingPongDeployment.xml
deleted file mode 100644 (file)
index ed7db68..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4">
-  <process host="Jacquelin" function="tracing.Sender">
-    <argument value="Boivin"/>
-    <argument value="Marcel"/>
-  </process>
-  <process host="Boivin" function="tracing.Receiver"/>
-  <process host="Marcel" function="tracing.Receiver"/>
-</platform>
index 1cbec02..1021e69 100644 (file)
@@ -1,8 +1,8 @@
 foreach(x actions-mpi actions-storage async-wait async-waitall async-waitany dht-chord dht-pastry exception 
           energy-consumption energy-onoff energy-pstate energy-ptask energy-vm failures io-file io-file-unlink io-remote
-          io-storage masterslave masterslave-mailbox pmm priority process-kill process-migration process-suspend 
+          io-storage masterworker masterworker-mailbox pmm task-priority process-kill process-migration process-suspend 
           properties sendrecv set-maestro process-startkilltime synchro token_ring trace-categories 
-          trace-link-srcdst-user-variables trace-link-user-variables trace-masterslave trace-platform 
+          trace-link-srcdst-user-variables trace-link-user-variables trace-masterworker trace-platform 
           trace-process-migration trace-simple trace-user-variables)
   add_executable       (${x}     ${x}/${x}.c)
   target_link_libraries(${x}     simgrid)
@@ -39,7 +39,8 @@ foreach (file answer dht-kademlia node routing_table task)
 endforeach()
 
 foreach (file actions-mpi actions-storage async-wait async-waitall async-waitany bittorrent chainsend dht-chord 
-         dht-kademlia dht-pastry io-remote masterslave masterslave-mailbox priority properties sendrecv set-maestro)
+         dht-kademlia dht-pastry io-remote masterworker masterworker-mailbox properties sendrecv set-maestro
+         task-priority)
   set(xml_files    ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/${file}/${file}_d.xml)
 endforeach()
 
@@ -57,17 +58,17 @@ set(examples_src ${examples_src}  ${CMAKE_CURRENT_SOURCE_DIR}/chainsend/chainsen
 set(tesh_files   ${tesh_files}    ${CMAKE_CURRENT_SOURCE_DIR}/bittorrent/bittorrent.tesh
                                   ${CMAKE_CURRENT_SOURCE_DIR}/chainsend/chainsend.tesh
                                   ${CMAKE_CURRENT_SOURCE_DIR}/dht-kademlia/dht-kademlia.tesh
-                                  ${CMAKE_CURRENT_SOURCE_DIR}/masterslave/masterslave_cpu_ti.tesh
-                                  ${CMAKE_CURRENT_SOURCE_DIR}/masterslave-mailbox/masterslave-mailbox-multicore.tesh
-                                  ${CMAKE_CURRENT_SOURCE_DIR}/masterslave-mailbox/masterslave-mailbox-vivaldi.tesh
+                                  ${CMAKE_CURRENT_SOURCE_DIR}/masterworker/masterworker_cpu_ti.tesh
+                                  ${CMAKE_CURRENT_SOURCE_DIR}/masterworker-mailbox/masterworker-mailbox-multicore.tesh
+                                  ${CMAKE_CURRENT_SOURCE_DIR}/masterworker-mailbox/masterworker-mailbox-vivaldi.tesh
                                   ${CMAKE_CURRENT_SOURCE_DIR}/ns3/ns3.tesh                                 PARENT_SCOPE)
 set(xml_files    ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/actions-mpi/actions-mpi_split_d.xml
                                   ${CMAKE_CURRENT_SOURCE_DIR}/async-wait/async-wait2_d.xml
                                   ${CMAKE_CURRENT_SOURCE_DIR}/async-wait/async-wait3_d.xml
                                   ${CMAKE_CURRENT_SOURCE_DIR}/async-wait/async-wait4_d.xml
                                   ${CMAKE_CURRENT_SOURCE_DIR}/energy-onoff/platform_onoff.xml
-                                  ${CMAKE_CURRENT_SOURCE_DIR}/masterslave-mailbox/masterslave-mailbox-multicore_d.xml
-                                  ${CMAKE_CURRENT_SOURCE_DIR}/masterslave-mailbox/masterslave-mailbox-vivaldi_d.xml
+                                  ${CMAKE_CURRENT_SOURCE_DIR}/masterworker-mailbox/masterworker-mailbox-multicore_d.xml
+                                  ${CMAKE_CURRENT_SOURCE_DIR}/masterworker-mailbox/masterworker-mailbox-vivaldi_d.xml
                                   ${CMAKE_CURRENT_SOURCE_DIR}/ns3/3hosts_2links_d.xml
                                   ${CMAKE_CURRENT_SOURCE_DIR}/ns3/3links-timer_d.xml
                                   ${CMAKE_CURRENT_SOURCE_DIR}/ns3/3links_d.xml
@@ -82,7 +83,7 @@ set(xml_files    ${xml_files}     ${CMAKE_CURRENT_SOURCE_DIR}/actions-mpi/action
                                   ${CMAKE_CURRENT_SOURCE_DIR}/process-startkilltime/start_kill_d.xml       PARENT_SCOPE)
 
 foreach(x actions-mpi actions-storage async-wait async-waitall async-waitany bittorrent chainsend dht-chord dht-kademlia
-        failures io-file io-file-unlink io-remote io-storage masterslave masterslave-mailbox priority process-kill 
+        failures io-file io-file-unlink io-remote io-storage masterworker masterworker-mailbox task-priority process-kill 
         process-migration process-suspend properties sendrecv synchro process-startkilltime token_ring)
   ADD_TESH_FACTORIES(msg-${x} "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/${x} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/${x} ${x}.tesh)
 endforeach()
@@ -91,7 +92,7 @@ foreach (example consumption onoff pstate vm)
   ADD_TESH_FACTORIES(msg-energy-${example} "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy-${example}/energy-${example}.tesh)
 endforeach()
 
-foreach (x categories link-srcdst-user-variables link-user-variables masterslave platform process-migration simple user-variables)
+foreach (x categories link-srcdst-user-variables link-user-variables masterworker platform process-migration simple user-variables)
   ADD_TESH(msg-trace-${x} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/trace-${x} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/trace-${x} trace-${x}.tesh)
 endforeach()
 
@@ -103,11 +104,11 @@ ADD_TESH_FACTORIES(msg-energy-consumption-ptask        "thread;ucontext;raw;boos
 ADD_TESH_FACTORIES(msg-energy-ptask                    "thread;ucontext;raw" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy-ptask/energy-ptask.tesh)
 ADD_TESH_FACTORIES(msg-set-maestro                     "thread" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/set-maestro/set-maestro.tesh)
 
-ADD_TESH_FACTORIES(msg-masterslave-mailbox-multicore   "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave-mailbox/masterslave-mailbox-multicore.tesh)
-ADD_TESH_FACTORIES(msg-masterslave-mailbox-vivaldi     "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave-mailbox/masterslave-mailbox-vivaldi.tesh)
+ADD_TESH_FACTORIES(msg-masterworker-mailbox-multicore   "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterworker-mailbox/masterworker-mailbox-multicore.tesh)
+ADD_TESH_FACTORIES(msg-masterworker-mailbox-vivaldi     "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterworker-mailbox/masterworker-mailbox-vivaldi.tesh)
 
 # Weird issue with this one ...
-#ADD_TESH_FACTORIES(msg-masterslave-cpu-ti              "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/masterslave --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave masterslave_cpu_ti.tesh)
+#ADD_TESH_FACTORIES(msg-masterworker-cpu-ti              "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/masterworker --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/masterworker masterworker_cpu_ti.tesh)
 
 ADD_TESH(msg-pmm  --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/pmm/pmm.tesh)
 
index bd0bfc7..0137bdf 100644 (file)
@@ -12,7 +12,7 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example")
 
 /** @addtogroup MSG_examples
  *
- *  - <b>cloud/masterslave_virtual_machines.c: Master/workers
+ *  - <b>cloud/master_worker_vm.c: Master/workers
  *    example on a cloud</b>. The classical example revisited to demonstrate the use of virtual machines.
  */
 
index 37b2eb0..9187794 100644 (file)
@@ -1,6 +1,6 @@
 #! ./tesh
 
-p Testing the Cloud API with a simple masterslave
+p Testing the Cloud API with a simple master/workers
 
 $ $SG_TEST_EXENV ${bindir:=.}/master_worker_vm$EXEEXT --log=no_loc ${srcdir:=.}/../../platforms/platform.xml
 > [Jacquelin:master:(1) 0.000000] [msg_test/INFO] # Launch 2 VMs
index 46990fa..522ed98 100644 (file)
@@ -20,49 +20,47 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example")
 static int runner(int argc, char *argv[])
 {
   /* Retrieve the list of all hosts as an array of hosts */
-  xbt_dynar_t slaves_dynar = MSG_hosts_as_dynar();
-  int slaves_count = xbt_dynar_length(slaves_dynar);
-  msg_host_t *slaves = xbt_dynar_to_array(slaves_dynar);
+  int hosts_count = MSG_get_host_number();
+  msg_host_t *hosts = xbt_dynar_to_array(MSG_hosts_as_dynar());
 
   XBT_INFO("First, build a classical parallel task, with 1 Gflop to execute on each node, "
            "and 10MB to exchange between each pair");
-  double *computation_amounts = xbt_new0(double, slaves_count);
-  double *communication_amounts = xbt_new0(double, slaves_count * slaves_count);
+  double *computation_amounts = xbt_new0(double, hosts_count);
+  double *communication_amounts = xbt_new0(double, hosts_count * hosts_count);
 
-  for (int i = 0; i < slaves_count; i++)
+  for (int i = 0; i < hosts_count; i++)
     computation_amounts[i] = 1e9; // 1 Gflop
 
-  for (int i = 0; i < slaves_count; i++)
-    for (int j = i + 1; j < slaves_count; j++)
-      communication_amounts[i * slaves_count + j] = 1e7; // 10 MB
+  for (int i = 0; i < hosts_count; i++)
+    for (int j = i + 1; j < hosts_count; j++)
+      communication_amounts[i * hosts_count + j] = 1e7; // 10 MB
 
   msg_task_t ptask =
-    MSG_parallel_task_create("parallel task", slaves_count, slaves, computation_amounts, communication_amounts, NULL);
+    MSG_parallel_task_create("parallel task", hosts_count, hosts, computation_amounts, communication_amounts, NULL);
   MSG_parallel_task_execute(ptask);
   MSG_task_destroy(ptask);
   /* The arrays communication_amounts and computation_amounts are not to be freed manually */
 
   XBT_INFO("Then, build a parallel task involving only computations and no communication (1 Gflop per node)");
-  computation_amounts = xbt_new0(double, slaves_count);
-  for (int i = 0; i < slaves_count; i++)
+  computation_amounts = xbt_new0(double, hosts_count);
+  for (int i = 0; i < hosts_count; i++)
     computation_amounts[i] = 1e9; // 1 Gflop
-  ptask =
-    MSG_parallel_task_create("parallel exec", slaves_count, slaves, computation_amounts, NULL/* no comm */, NULL);
+  ptask = MSG_parallel_task_create("parallel exec", hosts_count, hosts, computation_amounts, NULL/* no comm */, NULL);
   MSG_parallel_task_execute(ptask);
   MSG_task_destroy(ptask);
 
-  XBT_INFO("Finally, trick the ptask to do a 'remote execution', on host %s", MSG_host_get_name(slaves[1]));
+  XBT_INFO("Finally, trick the ptask to do a 'remote execution', on host %s", MSG_host_get_name(hosts[1]));
   computation_amounts = xbt_new0(double, 1);
   computation_amounts[0] = 1e9; // 1 Gflop
   msg_host_t *remote = xbt_new(msg_host_t,1);
-  remote[0] = slaves[1];
+  remote[0] = hosts[1];
   ptask = MSG_parallel_task_create("remote exec", 1, remote, computation_amounts, NULL/* no comm */, NULL);
   MSG_parallel_task_execute(ptask);
   MSG_task_destroy(ptask);
   free(remote);
 
   XBT_INFO("Goodbye now!");
-  free(slaves);
+  free(hosts);
   return 0;
 }
 
index 070d75a..4a261ce 100644 (file)
@@ -12,8 +12,8 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example")
 
 static int master(int argc, char *argv[])
 {
-  int slaves_count = 0;
-  msg_host_t *slaves = NULL;
+  int workers_count = 0;
+  msg_host_t *workers = NULL;
   int number_of_tasks = 0;
   double task_comp_size = 0;
   double task_comm_size = 0;
@@ -28,21 +28,21 @@ static int master(int argc, char *argv[])
   xbt_assert(read, "Invalid argument %s\n", argv[3]);
 
   {                             /* Process organization */
-    slaves_count = argc - 4;
-    slaves = xbt_new0(msg_host_t, slaves_count);
+    workers_count = argc - 4;
+    workers = xbt_new0(msg_host_t, workers_count);
 
     for (i = 4; i < argc; i++) {
-      slaves[i - 4] = MSG_host_by_name(argv[i]);
-      if (slaves[i - 4] == NULL) {
+      workers[i - 4] = MSG_host_by_name(argv[i]);
+      if (workers[i - 4] == NULL) {
         XBT_INFO("Unknown host %s. Stopping Now! ", argv[i]);
         abort();
       }
     }
   }
 
-  XBT_INFO("Got %d slave(s) :", slaves_count);
-  for (i = 0; i < slaves_count; i++)
-    XBT_INFO("%s", MSG_host_get_name(slaves[i]));
+  XBT_INFO("Got %d worker(s) :", workers_count);
+  for (i = 0; i < workers_count; i++)
+    XBT_INFO("%s", MSG_host_get_name(workers[i]));
 
   XBT_INFO("Got %d task to process :", number_of_tasks);
 
@@ -50,7 +50,7 @@ static int master(int argc, char *argv[])
     msg_task_t task = MSG_task_create("Task", task_comp_size, task_comm_size, xbt_new0(double, 1));
     *((double *) task->data) = MSG_get_clock();
 
-    msg_error_t a = MSG_task_send_with_timeout(task,MSG_host_get_name(slaves[i % slaves_count]),10.0);
+    msg_error_t a = MSG_task_send_with_timeout(task,MSG_host_get_name(workers[i % workers_count]),10.0);
 
     if (a == MSG_OK) {
       XBT_INFO("Send completed");
@@ -58,16 +58,16 @@ static int master(int argc, char *argv[])
       XBT_INFO("Gloups. The cpu on which I'm running just turned off!. See you!");
       free(task->data);
       MSG_task_destroy(task);
-      free(slaves);
+      free(workers);
       return 0;
     } else if (a == MSG_TRANSFER_FAILURE) {
       XBT_INFO("Mmh. Something went wrong with '%s'. Nevermind. Let's keep going!",
-               MSG_host_get_name(slaves[i % slaves_count]));
+               MSG_host_get_name(workers[i % workers_count]));
       free(task->data);
       MSG_task_destroy(task);
     } else if (a == MSG_TIMEOUT) {
       XBT_INFO ("Mmh. Got timeouted while speaking to '%s'. Nevermind. Let's keep going!",
-              MSG_host_get_name(slaves[i % slaves_count]));
+              MSG_host_get_name(workers[i % workers_count]));
       free(task->data);
       MSG_task_destroy(task);
     } else {
@@ -77,35 +77,35 @@ static int master(int argc, char *argv[])
   }
 
   XBT_INFO("All tasks have been dispatched. Let's tell everybody the computation is over.");
-  for (i = 0; i < slaves_count; i++) {
+  for (i = 0; i < workers_count; i++) {
     msg_task_t task = MSG_task_create("finalize", 0, 0, FINALIZE);
-    int a = MSG_task_send_with_timeout(task,MSG_host_get_name(slaves[i]),1.0);
+    int a = MSG_task_send_with_timeout(task,MSG_host_get_name(workers[i]),1.0);
     if (a == MSG_OK)
       continue;
     if (a == MSG_HOST_FAILURE) {
       XBT_INFO("Gloups. The cpu on which I'm running just turned off!. See you!");
       MSG_task_destroy(task);
-      free(slaves);
+      free(workers);
       return 0;
     } else if (a == MSG_TRANSFER_FAILURE) {
-      XBT_INFO("Mmh. Can't reach '%s'! Nevermind. Let's keep going!", MSG_host_get_name(slaves[i]));
+      XBT_INFO("Mmh. Can't reach '%s'! Nevermind. Let's keep going!", MSG_host_get_name(workers[i]));
       MSG_task_destroy(task);
     } else if (a == MSG_TIMEOUT) {
       XBT_INFO("Mmh. Got timeouted while speaking to '%s'. Nevermind. Let's keep going!",
-               MSG_host_get_name(slaves[i % slaves_count]));
+               MSG_host_get_name(workers[i % workers_count]));
       MSG_task_destroy(task);
     } else {
       XBT_INFO("Hey ?! What's up ? ");
-      xbt_die("Unexpected behavior with '%s': %d", MSG_host_get_name(slaves[i]), a);
+      xbt_die("Unexpected behavior with '%s': %d", MSG_host_get_name(workers[i]), a);
     }
   }
 
   XBT_INFO("Goodbye now!");
-  free(slaves);
+  free(workers);
   return 0;
 }
 
-static int slave(int argc, char *argv[])
+static int worker(int argc, char *argv[])
 {
   while (1) {
     msg_task_t task = NULL;
@@ -164,7 +164,7 @@ int main(int argc, char *argv[])
   MSG_create_environment(argv[1]);
 
   MSG_function_register("master", master);
-  MSG_function_register("slave", slave);
+  MSG_function_register("worker", worker);
   MSG_launch_application(argv[2]);
 
   res = MSG_main();
index 7d80ba5..77da016 100644 (file)
@@ -1,11 +1,11 @@
 #! ./tesh
 
-p Testing a simple master/slave example application handling failures TCP crosstraffic DISABLED
+p Testing a simple master/worker example application handling failures TCP crosstraffic DISABLED
 
 ! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/failures$EXEEXT --log=xbt_cfg.thres:critical --log=no_loc ${srcdir:=.}/small_platform_with_failures.xml ${srcdir:=.}/../msg/masterslave/masterslave_d.xml --cfg=path:${srcdir} --cfg=network/crosstraffic:0 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Cannot launch process 'slave' on failed host 'Fafard'
-> [  0.000000] (1:master@Tremblay) Got 5 slave(s) :
+$ $SG_TEST_EXENV ${bindir:=.}/failures$EXEEXT --log=xbt_cfg.thres:critical --log=no_loc ${srcdir:=.}/small_platform_with_failures.xml ${srcdir:=.}/../msg/masterworker/masterworker_d.xml --cfg=path:${srcdir} --cfg=network/crosstraffic:0 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (0:maestro@) Cannot launch process 'worker' on failed host 'Fafard'
+> [  0.000000] (1:master@Tremblay) Got 5 worker(s) :
 > [  0.000000] (1:master@Tremblay) Jupiter
 > [  0.000000] (1:master@Tremblay) Fafard
 > [  0.000000] (1:master@Tremblay) Ginette
@@ -14,99 +14,99 @@ $ $SG_TEST_EXENV ${bindir:=.}/failures$EXEEXT --log=xbt_cfg.thres:critical --log
 > [  0.000000] (1:master@Tremblay) Got 20 task to process :
 > [  1.000000] (0:maestro@) Restart processes on host: Fafard
 > [  1.000000] (1:master@Tremblay) Mmh. Something went wrong with 'Jupiter'. Nevermind. Let's keep going!
-> [  1.000000] (3:slave@Jupiter) Gloups. The cpu on which I'm running just turned off!. See you!
+> [  1.000000] (3:worker@Jupiter) Gloups. The cpu on which I'm running just turned off!. See you!
 > [  2.000000] (0:maestro@) Restart processes on host: Jupiter
 > [ 11.000000] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 12.030928] (1:master@Tremblay) Send completed
-> [ 12.030928] (4:slave@Ginette) Received "Task"
-> [ 12.030928] (4:slave@Ginette) Communication time : "1.030928"
-> [ 12.030928] (4:slave@Ginette) Processing "Task"
+> [ 12.030928] (4:worker@Ginette) Received "Task"
+> [ 12.030928] (4:worker@Ginette) Communication time : "1.030928"
+> [ 12.030928] (4:worker@Ginette) Processing "Task"
 > [ 13.061856] (1:master@Tremblay) Send completed
-> [ 13.061856] (5:slave@Bourassa) Received "Task"
-> [ 13.061856] (5:slave@Bourassa) Communication time : "1.030928"
-> [ 13.061856] (5:slave@Bourassa) Processing "Task"
+> [ 13.061856] (5:worker@Bourassa) Received "Task"
+> [ 13.061856] (5:worker@Bourassa) Communication time : "1.030928"
+> [ 13.061856] (5:worker@Bourassa) Processing "Task"
 > [ 13.072165] (1:master@Tremblay) Send completed
-> [ 13.072165] (2:slave@Tremblay) Received "Task"
-> [ 13.072165] (2:slave@Tremblay) Communication time : "0.010309"
-> [ 13.072165] (2:slave@Tremblay) Processing "Task"
-> [ 14.030928] (4:slave@Ginette) "Task" done
+> [ 13.072165] (2:worker@Tremblay) Received "Task"
+> [ 13.072165] (2:worker@Tremblay) Communication time : "0.010309"
+> [ 13.072165] (2:worker@Tremblay) Processing "Task"
+> [ 14.030928] (4:worker@Ginette) "Task" done
 > [ 14.103093] (1:master@Tremblay) Send completed
-> [ 14.103093] (6:slave@Jupiter) Received "Task"
-> [ 14.103093] (6:slave@Jupiter) Communication time : "1.030928"
-> [ 14.103093] (6:slave@Jupiter) Processing "Task"
-> [ 15.061856] (5:slave@Bourassa) "Task" done
-> [ 15.072165] (2:slave@Tremblay) "Task" done
-> [ 16.103093] (6:slave@Jupiter) "Task" done
+> [ 14.103093] (6:worker@Jupiter) Received "Task"
+> [ 14.103093] (6:worker@Jupiter) Communication time : "1.030928"
+> [ 14.103093] (6:worker@Jupiter) Processing "Task"
+> [ 15.061856] (5:worker@Bourassa) "Task" done
+> [ 15.072165] (2:worker@Tremblay) "Task" done
+> [ 16.103093] (6:worker@Jupiter) "Task" done
 > [ 24.103093] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 24.103093] (1:master@Tremblay) Mmh. Something went wrong with 'Ginette'. Nevermind. Let's keep going!
-> [ 24.103093] (4:slave@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 24.103093] (4:worker@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
 > [ 25.134021] (1:master@Tremblay) Send completed
-> [ 25.134021] (5:slave@Bourassa) Received "Task"
-> [ 25.134021] (5:slave@Bourassa) Communication time : "1.030928"
-> [ 25.134021] (5:slave@Bourassa) Processing "Task"
+> [ 25.134021] (5:worker@Bourassa) Received "Task"
+> [ 25.134021] (5:worker@Bourassa) Communication time : "1.030928"
+> [ 25.134021] (5:worker@Bourassa) Processing "Task"
 > [ 25.144330] (1:master@Tremblay) Send completed
-> [ 25.144330] (2:slave@Tremblay) Received "Task"
-> [ 25.144330] (2:slave@Tremblay) Communication time : "0.010309"
-> [ 25.144330] (2:slave@Tremblay) Processing "Task"
+> [ 25.144330] (2:worker@Tremblay) Received "Task"
+> [ 25.144330] (2:worker@Tremblay) Communication time : "0.010309"
+> [ 25.144330] (2:worker@Tremblay) Processing "Task"
 > [ 26.175258] (1:master@Tremblay) Send completed
-> [ 26.175258] (6:slave@Jupiter) Received "Task"
-> [ 26.175258] (6:slave@Jupiter) Communication time : "1.030928"
-> [ 26.175258] (6:slave@Jupiter) Processing "Task"
-> [ 27.134021] (5:slave@Bourassa) "Task" done
-> [ 27.144330] (2:slave@Tremblay) "Task" done
-> [ 28.175258] (6:slave@Jupiter) "Task" done
+> [ 26.175258] (6:worker@Jupiter) Received "Task"
+> [ 26.175258] (6:worker@Jupiter) Communication time : "1.030928"
+> [ 26.175258] (6:worker@Jupiter) Processing "Task"
+> [ 27.134021] (5:worker@Bourassa) "Task" done
+> [ 27.144330] (2:worker@Tremblay) "Task" done
+> [ 28.175258] (6:worker@Jupiter) "Task" done
 > [ 36.175258] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 37.206186] (1:master@Tremblay) Send completed
 > [ 37.206186] (1:master@Tremblay) Mmh. Something went wrong with 'Bourassa'. Nevermind. Let's keep going!
-> [ 37.206186] (4:slave@Ginette) Received "Task"
-> [ 37.206186] (4:slave@Ginette) Communication time : "1.030928"
-> [ 37.206186] (4:slave@Ginette) Processing "Task"
-> [ 37.206186] (5:slave@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 37.206186] (4:worker@Ginette) Received "Task"
+> [ 37.206186] (4:worker@Ginette) Communication time : "1.030928"
+> [ 37.206186] (4:worker@Ginette) Processing "Task"
+> [ 37.206186] (5:worker@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
 > [ 37.216495] (1:master@Tremblay) Send completed
-> [ 37.216495] (2:slave@Tremblay) Received "Task"
-> [ 37.216495] (2:slave@Tremblay) Communication time : "0.010309"
-> [ 37.216495] (2:slave@Tremblay) Processing "Task"
+> [ 37.216495] (2:worker@Tremblay) Received "Task"
+> [ 37.216495] (2:worker@Tremblay) Communication time : "0.010309"
+> [ 37.216495] (2:worker@Tremblay) Processing "Task"
 > [ 38.247423] (1:master@Tremblay) Send completed
-> [ 38.247423] (6:slave@Jupiter) Received "Task"
-> [ 38.247423] (6:slave@Jupiter) Communication time : "1.030928"
-> [ 38.247423] (6:slave@Jupiter) Processing "Task"
-> [ 39.206186] (4:slave@Ginette) "Task" done
-> [ 39.216495] (2:slave@Tremblay) "Task" done
-> [ 40.247423] (6:slave@Jupiter) "Task" done
+> [ 38.247423] (6:worker@Jupiter) Received "Task"
+> [ 38.247423] (6:worker@Jupiter) Communication time : "1.030928"
+> [ 38.247423] (6:worker@Jupiter) Processing "Task"
+> [ 39.206186] (4:worker@Ginette) "Task" done
+> [ 39.216495] (2:worker@Tremblay) "Task" done
+> [ 40.247423] (6:worker@Jupiter) "Task" done
 > [ 48.247423] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 49.278351] (1:master@Tremblay) Send completed
-> [ 49.278351] (4:slave@Ginette) Received "Task"
-> [ 49.278351] (4:slave@Ginette) Communication time : "1.030928"
-> [ 49.278351] (4:slave@Ginette) Processing "Task"
-> [ 50.000000] (4:slave@Ginette) Gloups. The cpu on which I'm running just turned off!. See you!
+> [ 49.278351] (4:worker@Ginette) Received "Task"
+> [ 49.278351] (4:worker@Ginette) Communication time : "1.030928"
+> [ 49.278351] (4:worker@Ginette) Processing "Task"
+> [ 50.000000] (4:worker@Ginette) Gloups. The cpu on which I'm running just turned off!. See you!
 > [ 50.309278] (1:master@Tremblay) Send completed
-> [ 50.309278] (5:slave@Bourassa) Received "Task"
-> [ 50.309278] (5:slave@Bourassa) Communication time : "1.030928"
-> [ 50.309278] (5:slave@Bourassa) Processing "Task"
+> [ 50.309278] (5:worker@Bourassa) Received "Task"
+> [ 50.309278] (5:worker@Bourassa) Communication time : "1.030928"
+> [ 50.309278] (5:worker@Bourassa) Processing "Task"
 > [ 50.319588] (1:master@Tremblay) Send completed
 > [ 50.319588] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [ 50.319588] (2:slave@Tremblay) Received "Task"
-> [ 50.319588] (2:slave@Tremblay) Communication time : "0.010309"
-> [ 50.319588] (2:slave@Tremblay) Processing "Task"
-> [ 50.319588] (6:slave@Jupiter) Received "finalize"
-> [ 50.319588] (6:slave@Jupiter) I'm done. See you!
+> [ 50.319588] (2:worker@Tremblay) Received "Task"
+> [ 50.319588] (2:worker@Tremblay) Communication time : "0.010309"
+> [ 50.319588] (2:worker@Tremblay) Processing "Task"
+> [ 50.319588] (6:worker@Jupiter) Received "finalize"
+> [ 50.319588] (6:worker@Jupiter) I'm done. See you!
 > [ 51.319588] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
-> [ 52.309278] (5:slave@Bourassa) "Task" done
+> [ 52.309278] (5:worker@Bourassa) "Task" done
 > [ 52.319588] (0:maestro@) Simulation time 52.3196
 > [ 52.319588] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Ginette'. Nevermind. Let's keep going!
 > [ 52.319588] (1:master@Tremblay) Goodbye now!
-> [ 52.319588] (2:slave@Tremblay) "Task" done
-> [ 52.319588] (2:slave@Tremblay) Received "finalize"
-> [ 52.319588] (2:slave@Tremblay) I'm done. See you!
-> [ 52.319588] (5:slave@Bourassa) Received "finalize"
-> [ 52.319588] (5:slave@Bourassa) I'm done. See you!
+> [ 52.319588] (2:worker@Tremblay) "Task" done
+> [ 52.319588] (2:worker@Tremblay) Received "finalize"
+> [ 52.319588] (2:worker@Tremblay) I'm done. See you!
+> [ 52.319588] (5:worker@Bourassa) Received "finalize"
+> [ 52.319588] (5:worker@Bourassa) I'm done. See you!
 
-p Testing a simple master/slave example application handling failures. TCP crosstraffic ENABLED
+p Testing a simple master/worker example application handling failures. TCP crosstraffic ENABLED
 
 ! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/failures$EXEEXT --log=xbt_cfg.thres:critical --log=no_loc ${srcdir:=.}/small_platform_with_failures.xml ${srcdir:=.}/../msg/masterslave/masterslave_d.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Cannot launch process 'slave' on failed host 'Fafard'
-> [  0.000000] (1:master@Tremblay) Got 5 slave(s) :
+$ $SG_TEST_EXENV ${bindir:=.}/failures$EXEEXT --log=xbt_cfg.thres:critical --log=no_loc ${srcdir:=.}/small_platform_with_failures.xml ${srcdir:=.}/../msg/masterworker/masterworker_d.xml --cfg=path:${srcdir} "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (0:maestro@) Cannot launch process 'worker' on failed host 'Fafard'
+> [  0.000000] (1:master@Tremblay) Got 5 worker(s) :
 > [  0.000000] (1:master@Tremblay) Jupiter
 > [  0.000000] (1:master@Tremblay) Fafard
 > [  0.000000] (1:master@Tremblay) Ginette
@@ -115,99 +115,99 @@ $ $SG_TEST_EXENV ${bindir:=.}/failures$EXEEXT --log=xbt_cfg.thres:critical --log
 > [  0.000000] (1:master@Tremblay) Got 20 task to process :
 > [  1.000000] (0:maestro@) Restart processes on host: Fafard
 > [  1.000000] (1:master@Tremblay) Mmh. Something went wrong with 'Jupiter'. Nevermind. Let's keep going!
-> [  1.000000] (3:slave@Jupiter) Gloups. The cpu on which I'm running just turned off!. See you!
+> [  1.000000] (3:worker@Jupiter) Gloups. The cpu on which I'm running just turned off!. See you!
 > [  2.000000] (0:maestro@) Restart processes on host: Jupiter
 > [ 11.000000] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 12.082474] (1:master@Tremblay) Send completed
-> [ 12.082474] (4:slave@Ginette) Received "Task"
-> [ 12.082474] (4:slave@Ginette) Communication time : "1.082474"
-> [ 12.082474] (4:slave@Ginette) Processing "Task"
+> [ 12.082474] (4:worker@Ginette) Received "Task"
+> [ 12.082474] (4:worker@Ginette) Communication time : "1.082474"
+> [ 12.082474] (4:worker@Ginette) Processing "Task"
 > [ 13.164948] (1:master@Tremblay) Send completed
-> [ 13.164948] (5:slave@Bourassa) Received "Task"
-> [ 13.164948] (5:slave@Bourassa) Communication time : "1.082474"
-> [ 13.164948] (5:slave@Bourassa) Processing "Task"
+> [ 13.164948] (5:worker@Bourassa) Received "Task"
+> [ 13.164948] (5:worker@Bourassa) Communication time : "1.082474"
+> [ 13.164948] (5:worker@Bourassa) Processing "Task"
 > [ 13.175773] (1:master@Tremblay) Send completed
-> [ 13.175773] (2:slave@Tremblay) Received "Task"
-> [ 13.175773] (2:slave@Tremblay) Communication time : "0.010825"
-> [ 13.175773] (2:slave@Tremblay) Processing "Task"
-> [ 14.082474] (4:slave@Ginette) "Task" done
+> [ 13.175773] (2:worker@Tremblay) Received "Task"
+> [ 13.175773] (2:worker@Tremblay) Communication time : "0.010825"
+> [ 13.175773] (2:worker@Tremblay) Processing "Task"
+> [ 14.082474] (4:worker@Ginette) "Task" done
 > [ 14.258247] (1:master@Tremblay) Send completed
-> [ 14.258247] (6:slave@Jupiter) Received "Task"
-> [ 14.258247] (6:slave@Jupiter) Communication time : "1.082474"
-> [ 14.258247] (6:slave@Jupiter) Processing "Task"
-> [ 15.164948] (5:slave@Bourassa) "Task" done
-> [ 15.175773] (2:slave@Tremblay) "Task" done
-> [ 16.258247] (6:slave@Jupiter) "Task" done
+> [ 14.258247] (6:worker@Jupiter) Received "Task"
+> [ 14.258247] (6:worker@Jupiter) Communication time : "1.082474"
+> [ 14.258247] (6:worker@Jupiter) Processing "Task"
+> [ 15.164948] (5:worker@Bourassa) "Task" done
+> [ 15.175773] (2:worker@Tremblay) "Task" done
+> [ 16.258247] (6:worker@Jupiter) "Task" done
 > [ 24.258247] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 24.258247] (1:master@Tremblay) Mmh. Something went wrong with 'Ginette'. Nevermind. Let's keep going!
-> [ 24.258247] (4:slave@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 24.258247] (4:worker@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
 > [ 25.340722] (1:master@Tremblay) Send completed
-> [ 25.340722] (5:slave@Bourassa) Received "Task"
-> [ 25.340722] (5:slave@Bourassa) Communication time : "1.082474"
-> [ 25.340722] (5:slave@Bourassa) Processing "Task"
+> [ 25.340722] (5:worker@Bourassa) Received "Task"
+> [ 25.340722] (5:worker@Bourassa) Communication time : "1.082474"
+> [ 25.340722] (5:worker@Bourassa) Processing "Task"
 > [ 25.351546] (1:master@Tremblay) Send completed
-> [ 25.351546] (2:slave@Tremblay) Received "Task"
-> [ 25.351546] (2:slave@Tremblay) Communication time : "0.010825"
-> [ 25.351546] (2:slave@Tremblay) Processing "Task"
+> [ 25.351546] (2:worker@Tremblay) Received "Task"
+> [ 25.351546] (2:worker@Tremblay) Communication time : "0.010825"
+> [ 25.351546] (2:worker@Tremblay) Processing "Task"
 > [ 26.434021] (1:master@Tremblay) Send completed
-> [ 26.434021] (6:slave@Jupiter) Received "Task"
-> [ 26.434021] (6:slave@Jupiter) Communication time : "1.082474"
-> [ 26.434021] (6:slave@Jupiter) Processing "Task"
-> [ 27.340722] (5:slave@Bourassa) "Task" done
-> [ 27.351546] (2:slave@Tremblay) "Task" done
-> [ 28.434021] (6:slave@Jupiter) "Task" done
+> [ 26.434021] (6:worker@Jupiter) Received "Task"
+> [ 26.434021] (6:worker@Jupiter) Communication time : "1.082474"
+> [ 26.434021] (6:worker@Jupiter) Processing "Task"
+> [ 27.340722] (5:worker@Bourassa) "Task" done
+> [ 27.351546] (2:worker@Tremblay) "Task" done
+> [ 28.434021] (6:worker@Jupiter) "Task" done
 > [ 36.434021] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 37.516495] (1:master@Tremblay) Send completed
 > [ 37.516495] (1:master@Tremblay) Mmh. Something went wrong with 'Bourassa'. Nevermind. Let's keep going!
-> [ 37.516495] (4:slave@Ginette) Received "Task"
-> [ 37.516495] (4:slave@Ginette) Communication time : "1.082474"
-> [ 37.516495] (4:slave@Ginette) Processing "Task"
-> [ 37.516495] (5:slave@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 37.516495] (4:worker@Ginette) Received "Task"
+> [ 37.516495] (4:worker@Ginette) Communication time : "1.082474"
+> [ 37.516495] (4:worker@Ginette) Processing "Task"
+> [ 37.516495] (5:worker@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
 > [ 37.527320] (1:master@Tremblay) Send completed
-> [ 37.527320] (2:slave@Tremblay) Received "Task"
-> [ 37.527320] (2:slave@Tremblay) Communication time : "0.010825"
-> [ 37.527320] (2:slave@Tremblay) Processing "Task"
+> [ 37.527320] (2:worker@Tremblay) Received "Task"
+> [ 37.527320] (2:worker@Tremblay) Communication time : "0.010825"
+> [ 37.527320] (2:worker@Tremblay) Processing "Task"
 > [ 38.609794] (1:master@Tremblay) Send completed
-> [ 38.609794] (6:slave@Jupiter) Received "Task"
-> [ 38.609794] (6:slave@Jupiter) Communication time : "1.082474"
-> [ 38.609794] (6:slave@Jupiter) Processing "Task"
-> [ 39.516495] (4:slave@Ginette) "Task" done
-> [ 39.527320] (2:slave@Tremblay) "Task" done
-> [ 40.609794] (6:slave@Jupiter) "Task" done
+> [ 38.609794] (6:worker@Jupiter) Received "Task"
+> [ 38.609794] (6:worker@Jupiter) Communication time : "1.082474"
+> [ 38.609794] (6:worker@Jupiter) Processing "Task"
+> [ 39.516495] (4:worker@Ginette) "Task" done
+> [ 39.527320] (2:worker@Tremblay) "Task" done
+> [ 40.609794] (6:worker@Jupiter) "Task" done
 > [ 48.609794] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 49.692268] (1:master@Tremblay) Send completed
-> [ 49.692268] (4:slave@Ginette) Received "Task"
-> [ 49.692268] (4:slave@Ginette) Communication time : "1.082474"
-> [ 49.692268] (4:slave@Ginette) Processing "Task"
-> [ 50.000000] (4:slave@Ginette) Gloups. The cpu on which I'm running just turned off!. See you!
+> [ 49.692268] (4:worker@Ginette) Received "Task"
+> [ 49.692268] (4:worker@Ginette) Communication time : "1.082474"
+> [ 49.692268] (4:worker@Ginette) Processing "Task"
+> [ 50.000000] (4:worker@Ginette) Gloups. The cpu on which I'm running just turned off!. See you!
 > [ 50.774742] (1:master@Tremblay) Send completed
-> [ 50.774742] (5:slave@Bourassa) Received "Task"
-> [ 50.774742] (5:slave@Bourassa) Communication time : "1.082474"
-> [ 50.774742] (5:slave@Bourassa) Processing "Task"
+> [ 50.774742] (5:worker@Bourassa) Received "Task"
+> [ 50.774742] (5:worker@Bourassa) Communication time : "1.082474"
+> [ 50.774742] (5:worker@Bourassa) Processing "Task"
 > [ 50.785567] (1:master@Tremblay) Send completed
 > [ 50.785567] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [ 50.785567] (2:slave@Tremblay) Received "Task"
-> [ 50.785567] (2:slave@Tremblay) Communication time : "0.010825"
-> [ 50.785567] (2:slave@Tremblay) Processing "Task"
-> [ 50.785567] (6:slave@Jupiter) Received "finalize"
-> [ 50.785567] (6:slave@Jupiter) I'm done. See you!
+> [ 50.785567] (2:worker@Tremblay) Received "Task"
+> [ 50.785567] (2:worker@Tremblay) Communication time : "0.010825"
+> [ 50.785567] (2:worker@Tremblay) Processing "Task"
+> [ 50.785567] (6:worker@Jupiter) Received "finalize"
+> [ 50.785567] (6:worker@Jupiter) I'm done. See you!
 > [ 51.785567] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
-> [ 52.774742] (5:slave@Bourassa) "Task" done
+> [ 52.774742] (5:worker@Bourassa) "Task" done
 > [ 52.785567] (0:maestro@) Simulation time 52.7856
 > [ 52.785567] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Ginette'. Nevermind. Let's keep going!
 > [ 52.785567] (1:master@Tremblay) Goodbye now!
-> [ 52.785567] (2:slave@Tremblay) "Task" done
-> [ 52.785567] (2:slave@Tremblay) Received "finalize"
-> [ 52.785567] (2:slave@Tremblay) I'm done. See you!
-> [ 52.785567] (5:slave@Bourassa) Received "finalize"
-> [ 52.785567] (5:slave@Bourassa) I'm done. See you!
+> [ 52.785567] (2:worker@Tremblay) "Task" done
+> [ 52.785567] (2:worker@Tremblay) Received "finalize"
+> [ 52.785567] (2:worker@Tremblay) I'm done. See you!
+> [ 52.785567] (5:worker@Bourassa) Received "finalize"
+> [ 52.785567] (5:worker@Bourassa) I'm done. See you!
 
-p Testing a simple master/slave example application handling failures. CPU_TI optimization enabled
+p Testing a simple master/worker example application handling failures. CPU_TI optimization enabled
 
 ! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/failures$EXEEXT --log=xbt_cfg.thres:critical --log=no_loc ${srcdir:=.}/small_platform_with_failures.xml ${srcdir:=.}/../msg/masterslave/masterslave_d.xml --cfg=path:${srcdir} -cfg=cpu/optim:TI "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Cannot launch process 'slave' on failed host 'Fafard'
-> [  0.000000] (1:master@Tremblay) Got 5 slave(s) :
+$ $SG_TEST_EXENV ${bindir:=.}/failures$EXEEXT --log=xbt_cfg.thres:critical --log=no_loc ${srcdir:=.}/small_platform_with_failures.xml ${srcdir:=.}/../msg/masterworker/masterworker_d.xml --cfg=path:${srcdir} -cfg=cpu/optim:TI "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (0:maestro@) Cannot launch process 'worker' on failed host 'Fafard'
+> [  0.000000] (1:master@Tremblay) Got 5 worker(s) :
 > [  0.000000] (1:master@Tremblay) Jupiter
 > [  0.000000] (1:master@Tremblay) Fafard
 > [  0.000000] (1:master@Tremblay) Ginette
@@ -216,89 +216,89 @@ $ $SG_TEST_EXENV ${bindir:=.}/failures$EXEEXT --log=xbt_cfg.thres:critical --log
 > [  0.000000] (1:master@Tremblay) Got 20 task to process :
 > [  1.000000] (0:maestro@) Restart processes on host: Fafard
 > [  1.000000] (1:master@Tremblay) Mmh. Something went wrong with 'Jupiter'. Nevermind. Let's keep going!
-> [  1.000000] (3:slave@Jupiter) Gloups. The cpu on which I'm running just turned off!. See you!
+> [  1.000000] (3:worker@Jupiter) Gloups. The cpu on which I'm running just turned off!. See you!
 > [  2.000000] (0:maestro@) Restart processes on host: Jupiter
 > [ 11.000000] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 12.082474] (1:master@Tremblay) Send completed
-> [ 12.082474] (4:slave@Ginette) Received "Task"
-> [ 12.082474] (4:slave@Ginette) Communication time : "1.082474"
-> [ 12.082474] (4:slave@Ginette) Processing "Task"
+> [ 12.082474] (4:worker@Ginette) Received "Task"
+> [ 12.082474] (4:worker@Ginette) Communication time : "1.082474"
+> [ 12.082474] (4:worker@Ginette) Processing "Task"
 > [ 13.164948] (1:master@Tremblay) Send completed
-> [ 13.164948] (5:slave@Bourassa) Received "Task"
-> [ 13.164948] (5:slave@Bourassa) Communication time : "1.082474"
-> [ 13.164948] (5:slave@Bourassa) Processing "Task"
+> [ 13.164948] (5:worker@Bourassa) Received "Task"
+> [ 13.164948] (5:worker@Bourassa) Communication time : "1.082474"
+> [ 13.164948] (5:worker@Bourassa) Processing "Task"
 > [ 13.175773] (1:master@Tremblay) Send completed
-> [ 13.175773] (2:slave@Tremblay) Received "Task"
-> [ 13.175773] (2:slave@Tremblay) Communication time : "0.010825"
-> [ 13.175773] (2:slave@Tremblay) Processing "Task"
-> [ 14.082474] (4:slave@Ginette) "Task" done
+> [ 13.175773] (2:worker@Tremblay) Received "Task"
+> [ 13.175773] (2:worker@Tremblay) Communication time : "0.010825"
+> [ 13.175773] (2:worker@Tremblay) Processing "Task"
+> [ 14.082474] (4:worker@Ginette) "Task" done
 > [ 14.258247] (1:master@Tremblay) Send completed
-> [ 14.258247] (6:slave@Jupiter) Received "Task"
-> [ 14.258247] (6:slave@Jupiter) Communication time : "1.082474"
-> [ 14.258247] (6:slave@Jupiter) Processing "Task"
-> [ 15.164948] (5:slave@Bourassa) "Task" done
-> [ 15.175773] (2:slave@Tremblay) "Task" done
-> [ 16.258247] (6:slave@Jupiter) "Task" done
+> [ 14.258247] (6:worker@Jupiter) Received "Task"
+> [ 14.258247] (6:worker@Jupiter) Communication time : "1.082474"
+> [ 14.258247] (6:worker@Jupiter) Processing "Task"
+> [ 15.164948] (5:worker@Bourassa) "Task" done
+> [ 15.175773] (2:worker@Tremblay) "Task" done
+> [ 16.258247] (6:worker@Jupiter) "Task" done
 > [ 24.258247] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 24.258247] (1:master@Tremblay) Mmh. Something went wrong with 'Ginette'. Nevermind. Let's keep going!
-> [ 24.258247] (4:slave@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 24.258247] (4:worker@Ginette) Mmh. Something went wrong. Nevermind. Let's keep going!
 > [ 25.340722] (1:master@Tremblay) Send completed
-> [ 25.340722] (5:slave@Bourassa) Received "Task"
-> [ 25.340722] (5:slave@Bourassa) Communication time : "1.082474"
-> [ 25.340722] (5:slave@Bourassa) Processing "Task"
+> [ 25.340722] (5:worker@Bourassa) Received "Task"
+> [ 25.340722] (5:worker@Bourassa) Communication time : "1.082474"
+> [ 25.340722] (5:worker@Bourassa) Processing "Task"
 > [ 25.351546] (1:master@Tremblay) Send completed
-> [ 25.351546] (2:slave@Tremblay) Received "Task"
-> [ 25.351546] (2:slave@Tremblay) Communication time : "0.010825"
-> [ 25.351546] (2:slave@Tremblay) Processing "Task"
+> [ 25.351546] (2:worker@Tremblay) Received "Task"
+> [ 25.351546] (2:worker@Tremblay) Communication time : "0.010825"
+> [ 25.351546] (2:worker@Tremblay) Processing "Task"
 > [ 26.434021] (1:master@Tremblay) Send completed
-> [ 26.434021] (6:slave@Jupiter) Received "Task"
-> [ 26.434021] (6:slave@Jupiter) Communication time : "1.082474"
-> [ 26.434021] (6:slave@Jupiter) Processing "Task"
-> [ 27.340722] (5:slave@Bourassa) "Task" done
-> [ 27.351546] (2:slave@Tremblay) "Task" done
-> [ 28.434021] (6:slave@Jupiter) "Task" done
+> [ 26.434021] (6:worker@Jupiter) Received "Task"
+> [ 26.434021] (6:worker@Jupiter) Communication time : "1.082474"
+> [ 26.434021] (6:worker@Jupiter) Processing "Task"
+> [ 27.340722] (5:worker@Bourassa) "Task" done
+> [ 27.351546] (2:worker@Tremblay) "Task" done
+> [ 28.434021] (6:worker@Jupiter) "Task" done
 > [ 36.434021] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 37.516495] (1:master@Tremblay) Send completed
 > [ 37.516495] (1:master@Tremblay) Mmh. Something went wrong with 'Bourassa'. Nevermind. Let's keep going!
-> [ 37.516495] (4:slave@Ginette) Received "Task"
-> [ 37.516495] (4:slave@Ginette) Communication time : "1.082474"
-> [ 37.516495] (4:slave@Ginette) Processing "Task"
-> [ 37.516495] (5:slave@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
+> [ 37.516495] (4:worker@Ginette) Received "Task"
+> [ 37.516495] (4:worker@Ginette) Communication time : "1.082474"
+> [ 37.516495] (4:worker@Ginette) Processing "Task"
+> [ 37.516495] (5:worker@Bourassa) Mmh. Something went wrong. Nevermind. Let's keep going!
 > [ 37.527320] (1:master@Tremblay) Send completed
-> [ 37.527320] (2:slave@Tremblay) Received "Task"
-> [ 37.527320] (2:slave@Tremblay) Communication time : "0.010825"
-> [ 37.527320] (2:slave@Tremblay) Processing "Task"
+> [ 37.527320] (2:worker@Tremblay) Received "Task"
+> [ 37.527320] (2:worker@Tremblay) Communication time : "0.010825"
+> [ 37.527320] (2:worker@Tremblay) Processing "Task"
 > [ 38.609794] (1:master@Tremblay) Send completed
-> [ 38.609794] (6:slave@Jupiter) Received "Task"
-> [ 38.609794] (6:slave@Jupiter) Communication time : "1.082474"
-> [ 38.609794] (6:slave@Jupiter) Processing "Task"
-> [ 39.516495] (4:slave@Ginette) "Task" done
-> [ 39.527320] (2:slave@Tremblay) "Task" done
-> [ 40.609794] (6:slave@Jupiter) "Task" done
+> [ 38.609794] (6:worker@Jupiter) Received "Task"
+> [ 38.609794] (6:worker@Jupiter) Communication time : "1.082474"
+> [ 38.609794] (6:worker@Jupiter) Processing "Task"
+> [ 39.516495] (4:worker@Ginette) "Task" done
+> [ 39.527320] (2:worker@Tremblay) "Task" done
+> [ 40.609794] (6:worker@Jupiter) "Task" done
 > [ 48.609794] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
 > [ 49.692268] (1:master@Tremblay) Send completed
-> [ 49.692268] (4:slave@Ginette) Received "Task"
-> [ 49.692268] (4:slave@Ginette) Communication time : "1.082474"
-> [ 49.692268] (4:slave@Ginette) Processing "Task"
-> [ 50.000000] (4:slave@Ginette) Gloups. The cpu on which I'm running just turned off!. See you!
+> [ 49.692268] (4:worker@Ginette) Received "Task"
+> [ 49.692268] (4:worker@Ginette) Communication time : "1.082474"
+> [ 49.692268] (4:worker@Ginette) Processing "Task"
+> [ 50.000000] (4:worker@Ginette) Gloups. The cpu on which I'm running just turned off!. See you!
 > [ 50.774742] (1:master@Tremblay) Send completed
-> [ 50.774742] (5:slave@Bourassa) Received "Task"
-> [ 50.774742] (5:slave@Bourassa) Communication time : "1.082474"
-> [ 50.774742] (5:slave@Bourassa) Processing "Task"
+> [ 50.774742] (5:worker@Bourassa) Received "Task"
+> [ 50.774742] (5:worker@Bourassa) Communication time : "1.082474"
+> [ 50.774742] (5:worker@Bourassa) Processing "Task"
 > [ 50.785567] (1:master@Tremblay) Send completed
 > [ 50.785567] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [ 50.785567] (2:slave@Tremblay) Received "Task"
-> [ 50.785567] (2:slave@Tremblay) Communication time : "0.010825"
-> [ 50.785567] (2:slave@Tremblay) Processing "Task"
-> [ 50.785567] (6:slave@Jupiter) Received "finalize"
-> [ 50.785567] (6:slave@Jupiter) I'm done. See you!
+> [ 50.785567] (2:worker@Tremblay) Received "Task"
+> [ 50.785567] (2:worker@Tremblay) Communication time : "0.010825"
+> [ 50.785567] (2:worker@Tremblay) Processing "Task"
+> [ 50.785567] (6:worker@Jupiter) Received "finalize"
+> [ 50.785567] (6:worker@Jupiter) I'm done. See you!
 > [ 51.785567] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Fafard'. Nevermind. Let's keep going!
-> [ 52.774742] (5:slave@Bourassa) "Task" done
+> [ 52.774742] (5:worker@Bourassa) "Task" done
 > [ 52.785567] (0:maestro@) Simulation time 52.7856
 > [ 52.785567] (1:master@Tremblay) Mmh. Got timeouted while speaking to 'Ginette'. Nevermind. Let's keep going!
 > [ 52.785567] (1:master@Tremblay) Goodbye now!
-> [ 52.785567] (2:slave@Tremblay) "Task" done
-> [ 52.785567] (2:slave@Tremblay) Received "finalize"
-> [ 52.785567] (2:slave@Tremblay) I'm done. See you!
-> [ 52.785567] (5:slave@Bourassa) Received "finalize"
-> [ 52.785567] (5:slave@Bourassa) I'm done. See you!
+> [ 52.785567] (2:worker@Tremblay) "Task" done
+> [ 52.785567] (2:worker@Tremblay) Received "finalize"
+> [ 52.785567] (2:worker@Tremblay) I'm done. See you!
+> [ 52.785567] (5:worker@Bourassa) Received "finalize"
+> [ 52.785567] (5:worker@Bourassa) I'm done. See you!
diff --git a/examples/msg/masterslave-mailbox/masterslave-mailbox-multicore_d.xml b/examples/msg/masterslave-mailbox/masterslave-mailbox-multicore_d.xml
deleted file mode 100644 (file)
index e7e5e22..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4">
-  <!-- The master process (with some arguments) -->
-  <process host="Tremblay" function="master">
-     <argument value="20"/>       <!-- Number of tasks -->
-     <argument value="50000000"/>  <!-- Computation size of tasks -->
-     <argument value="1000000"/>   <!-- Communication size of tasks -->
-     <argument value="6"/>         <!-- Number of slaves -->
-  </process>
-  <!-- The slave processes (with mailbox to listen on as argument) -->
-  <process host="Tremblay" function="slave">   <argument value="0"/> </process>
-  <process host="Tremblay" function="slave">   <argument value="1"/> </process>
-  <process host="Tremblay" function="slave">   <argument value="2"/> </process>
-  <process host="Tremblay" function="slave">   <argument value="3"/> </process>
-  <process host="Tremblay" function="slave">   <argument value="4"/> </process>
-  <process host="Tremblay" function="slave">   <argument value="5"/> </process>
-</platform>
diff --git a/examples/msg/masterslave-mailbox/masterslave-mailbox-vivaldi.tesh b/examples/msg/masterslave-mailbox/masterslave-mailbox-vivaldi.tesh
deleted file mode 100644 (file)
index e8e9e1c..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#! ./tesh
-
-p Testing a simple master/slave example application
-
-$ $SG_TEST_EXENV ./masterslave-mailbox/masterslave-mailbox  ${srcdir:=.}/../platforms/vivaldi.xml ${srcdir:=.}/masterslave-mailbox/masterslave-mailbox-vivaldi_d.xml --cfg=network/latency_factor:1.0 --cfg=network/bandwidth_factor:1.0
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/latency_factor' to '1.0'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/bandwidth_factor' to '1.0'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/coordinates' to 'yes'
-> [100030591:master:(1) 0.000000] [msg_test/INFO] Got 15 slaves and 10 tasks to process
-> [100030591:master:(1) 0.000000] [msg_test/INFO] Sending "Task_0" (of 10) to mailbox "slave-0"
-> [100030591:master:(1) 0.046299] [msg_test/INFO] Sending "Task_1" (of 10) to mailbox "slave-1"
-> [100030591:master:(1) 0.103602] [msg_test/INFO] Sending "Task_2" (of 10) to mailbox "slave-2"
-> [100030591:master:(1) 0.126922] [msg_test/INFO] Sending "Task_3" (of 10) to mailbox "slave-3"
-> [100030591:master:(1) 0.167282] [msg_test/INFO] Sending "Task_4" (of 10) to mailbox "slave-4"
-> [100030591:master:(1) 0.174710] [msg_test/INFO] Sending "Task_5" (of 10) to mailbox "slave-5"
-> [100030591:master:(1) 0.307173] [msg_test/INFO] Sending "Task_6" (of 10) to mailbox "slave-6"
-> [100030591:master:(1) 0.370794] [msg_test/INFO] Sending "Task_7" (of 10) to mailbox "slave-7"
-> [100030591:master:(1) 0.413207] [msg_test/INFO] Sending "Task_8" (of 10) to mailbox "slave-8"
-> [100030591:master:(1) 0.452277] [msg_test/INFO] Sending "Task_9" (of 10) to mailbox "slave-9"
-> [100030591:master:(1) 0.487205] [msg_test/INFO] All tasks have been dispatched. Let's tell everybody the computation is over.
-> [100036570:slave:(2) 0.533504] [msg_test/INFO] I'm done. See you!
-> [100041334:slave:(3) 0.590807] [msg_test/INFO] I'm done. See you!
-> [100055671:slave:(4) 0.614127] [msg_test/INFO] I'm done. See you!
-> [100066658:slave:(5) 0.654487] [msg_test/INFO] I'm done. See you!
-> [100090691:slave:(6) 0.661915] [msg_test/INFO] I'm done. See you!
-> [100094952:slave:(7) 0.794379] [msg_test/INFO] I'm done. See you!
-> [100117943:slave:(8) 0.858000] [msg_test/INFO] I'm done. See you!
-> [100126290:slave:(9) 0.900412] [msg_test/INFO] I'm done. See you!
-> [100144483:slave:(10) 0.939482] [msg_test/INFO] I'm done. See you!
-> [100152889:slave:(11) 0.974410] [msg_test/INFO] I'm done. See you!
-> [100178474:slave:(12) 0.990540] [msg_test/INFO] I'm done. See you!
-> [100180261:slave:(13) 1.011253] [msg_test/INFO] I'm done. See you!
-> [100185883:slave:(14) 1.051440] [msg_test/INFO] I'm done. See you!
-> [100186365:slave:(15) 1.268843] [msg_test/INFO] I'm done. See you!
-> [100200866:slave:(16) 1.336272] [msg_test/INFO] I'm done. See you!
-> [1.336272] [msg_test/INFO] Simulation time 1.33627
diff --git a/examples/msg/masterslave-mailbox/masterslave-mailbox-vivaldi_d.xml b/examples/msg/masterslave-mailbox/masterslave-mailbox-vivaldi_d.xml
deleted file mode 100644 (file)
index d5a4930..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4">
-  <!-- The master process (with some arguments) --> 
-  <process host="100030591" function="master">
-       <argument value="10"/>       <!-- Number of tasks -->
-       <argument value="50000000"/>  <!-- Computation size of tasks -->
-       <argument value="1000000"/>   <!-- Communication size of tasks -->
-       <argument value="15"/>         <!-- Number of slaves -->
-    </process>
-    <!-- The slave processes (with mailbox to listen on as argument) -->
-    <process host="100036570" function="slave">   <argument value="0"/> </process>
-    <process host="100041334" function="slave">   <argument value="1"/> </process>
-    <process host="100055671" function="slave">   <argument value="2"/> </process>
-    <process host="100066658" function="slave">   <argument value="3"/> </process>
-    <process host="100090691" function="slave">   <argument value="4"/> </process>
-    <process host="100094952" function="slave">   <argument value="5"/> </process>
-    <process host="100117943" function="slave">   <argument value="6"/> </process>
-    <process host="100126290" function="slave">   <argument value="7"/> </process>
-    <process host="100144483" function="slave">   <argument value="8"/> </process>
-    <process host="100152889" function="slave">   <argument value="9"/> </process>
-    <process host="100178474" function="slave">   <argument value="10"/> </process>
-    <process host="100180261" function="slave">   <argument value="11"/> </process>
-    <process host="100185883" function="slave">   <argument value="12"/> </process>
-    <process host="100186365" function="slave">   <argument value="13"/> </process>
-    <process host="100200866" function="slave">   <argument value="14"/> </process>
-</platform>
diff --git a/examples/msg/masterslave-mailbox/masterslave-mailbox_d.xml b/examples/msg/masterslave-mailbox/masterslave-mailbox_d.xml
deleted file mode 100644 (file)
index 5bd6985..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4">
-  <!-- The master process (with some arguments) -->
-  <process host="Tremblay" function="master">
-     <argument value="20"/>       <!-- Number of tasks -->
-     <argument value="50000000"/>  <!-- Computation size of tasks -->
-     <argument value="1000000"/>   <!-- Communication size of tasks -->
-     <argument value="5"/>         <!-- Number of slaves -->
-  </process>
-  <!-- The slave processes (with mailbox to listen on as argument) -->
-  <process host="Tremblay" function="slave">  <argument value="0"/> </process>
-  <process host="Jupiter" function="slave">   <argument value="1"/> </process>
-  <process host="Fafard" function="slave">    <argument value="2"/> </process>
-  <process host="Ginette" function="slave">   <argument value="3"/> </process>
-  <process host="Bourassa" function="slave">  <argument value="4"/> </process>
-</platform>
diff --git a/examples/msg/masterslave/masterslave.tesh b/examples/msg/masterslave/masterslave.tesh
deleted file mode 100644 (file)
index dedea57..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-#! ./tesh
-
-p Testing a simple master/slave example application. TCP crosstraffic DISABLED
-
-! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/masterslave$EXEEXT ${srcdir:=.}/small_platform_with_routers.xml ${srcdir:=.}/../msg/masterslave/masterslave_d.xml --cfg=network/crosstraffic:0 --trace "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Configuration change: Set 'network/crosstraffic' to '0'
-> [  0.000000] (1:master@Tremblay) Got 5 slaves and 20 tasks to process
-> [  0.000000] (1:master@Tremblay) Sending "Task_0" to "Jupiter"
-> [  0.162005] (1:master@Tremblay) Sent
-> [  0.162005] (1:master@Tremblay) Sending "Task_1" to "Fafard"
-> [  0.162005] (3:slave@Jupiter) Received "Task_0"
-> [  0.162005] (3:slave@Jupiter) Processing "Task_0"
-> [  0.314083] (1:master@Tremblay) Sent
-> [  0.314083] (1:master@Tremblay) Sending "Task_2" to "Ginette"
-> [  0.314083] (4:slave@Fafard) Received "Task_1"
-> [  0.314083] (4:slave@Fafard) Processing "Task_1"
-> [  0.432712] (1:master@Tremblay) Sent
-> [  0.432712] (1:master@Tremblay) Sending "Task_3" to "Bourassa"
-> [  0.432712] (5:slave@Ginette) Received "Task_2"
-> [  0.432712] (5:slave@Ginette) Processing "Task_2"
-> [  0.560227] (1:master@Tremblay) Sent
-> [  0.560227] (1:master@Tremblay) Sending "Task_4" to "Tremblay"
-> [  0.560227] (1:master@Tremblay) Hey ! It's me ! :)
-> [  0.560227] (6:slave@Bourassa) Received "Task_3"
-> [  0.560227] (6:slave@Bourassa) Processing "Task_3"
-> [  0.562492] (1:master@Tremblay) Sent
-> [  0.562492] (1:master@Tremblay) Sending "Task_5" to "Jupiter"
-> [  0.562492] (2:slave@Tremblay) Received "Task_4"
-> [  0.562492] (2:slave@Tremblay) Processing "Task_4"
-> [  0.817347] (3:slave@Jupiter) "Task_0" done
-> [  0.969426] (4:slave@Fafard) "Task_1" done
-> [  0.979353] (1:master@Tremblay) Sent
-> [  0.979353] (1:master@Tremblay) Sending "Task_6" to "Fafard"
-> [  0.979353] (3:slave@Jupiter) Received "Task_5"
-> [  0.979353] (3:slave@Jupiter) Processing "Task_5"
-> [  1.072202] (2:slave@Tremblay) "Task_4" done
-> [  1.131431] (1:master@Tremblay) Sent
-> [  1.131431] (1:master@Tremblay) Sending "Task_7" to "Ginette"
-> [  1.131431] (4:slave@Fafard) Received "Task_6"
-> [  1.131431] (4:slave@Fafard) Processing "Task_6"
-> [  1.463809] (5:slave@Ginette) "Task_2" done
-> [  1.582438] (1:master@Tremblay) Sent
-> [  1.582438] (1:master@Tremblay) Sending "Task_8" to "Bourassa"
-> [  1.582438] (5:slave@Ginette) Received "Task_7"
-> [  1.582438] (5:slave@Ginette) Processing "Task_7"
-> [  1.591325] (6:slave@Bourassa) "Task_3" done
-> [  1.634695] (3:slave@Jupiter) "Task_5" done
-> [  1.718840] (1:master@Tremblay) Sent
-> [  1.718840] (1:master@Tremblay) Sending "Task_9" to "Tremblay"
-> [  1.718840] (1:master@Tremblay) Hey ! It's me ! :)
-> [  1.718840] (6:slave@Bourassa) Received "Task_8"
-> [  1.718840] (6:slave@Bourassa) Processing "Task_8"
-> [  1.721105] (1:master@Tremblay) Sent
-> [  1.721105] (1:master@Tremblay) Sending "Task_10" to "Jupiter"
-> [  1.721105] (2:slave@Tremblay) Received "Task_9"
-> [  1.721105] (2:slave@Tremblay) Processing "Task_9"
-> [  1.786773] (4:slave@Fafard) "Task_6" done
-> [  1.883110] (1:master@Tremblay) Sent
-> [  1.883110] (1:master@Tremblay) Sending "Task_11" to "Fafard"
-> [  1.883110] (3:slave@Jupiter) Received "Task_10"
-> [  1.883110] (3:slave@Jupiter) Processing "Task_10"
-> [  2.035188] (1:master@Tremblay) Sent
-> [  2.035188] (1:master@Tremblay) Sending "Task_12" to "Ginette"
-> [  2.035188] (4:slave@Fafard) Received "Task_11"
-> [  2.035188] (4:slave@Fafard) Processing "Task_11"
-> [  2.230815] (2:slave@Tremblay) "Task_9" done
-> [  2.538453] (3:slave@Jupiter) "Task_10" done
-> [  2.613536] (5:slave@Ginette) "Task_7" done
-> [  2.690531] (4:slave@Fafard) "Task_11" done
-> [  2.732164] (1:master@Tremblay) Sent
-> [  2.732164] (1:master@Tremblay) Sending "Task_13" to "Bourassa"
-> [  2.732164] (5:slave@Ginette) Received "Task_12"
-> [  2.732164] (5:slave@Ginette) Processing "Task_12"
-> [  2.749938] (6:slave@Bourassa) "Task_8" done
-> [  2.877453] (1:master@Tremblay) Sent
-> [  2.877453] (1:master@Tremblay) Sending "Task_14" to "Tremblay"
-> [  2.877453] (1:master@Tremblay) Hey ! It's me ! :)
-> [  2.877453] (6:slave@Bourassa) Received "Task_13"
-> [  2.877453] (6:slave@Bourassa) Processing "Task_13"
-> [  2.879718] (1:master@Tremblay) Sent
-> [  2.879718] (1:master@Tremblay) Sending "Task_15" to "Jupiter"
-> [  2.879718] (2:slave@Tremblay) Received "Task_14"
-> [  2.879718] (2:slave@Tremblay) Processing "Task_14"
-> [  3.041723] (1:master@Tremblay) Sent
-> [  3.041723] (1:master@Tremblay) Sending "Task_16" to "Fafard"
-> [  3.041723] (3:slave@Jupiter) Received "Task_15"
-> [  3.041723] (3:slave@Jupiter) Processing "Task_15"
-> [  3.193802] (1:master@Tremblay) Sent
-> [  3.193802] (1:master@Tremblay) Sending "Task_17" to "Ginette"
-> [  3.193802] (4:slave@Fafard) Received "Task_16"
-> [  3.193802] (4:slave@Fafard) Processing "Task_16"
-> [  3.389428] (2:slave@Tremblay) "Task_14" done
-> [  3.697066] (3:slave@Jupiter) "Task_15" done
-> [  3.763262] (5:slave@Ginette) "Task_12" done
-> [  3.849144] (4:slave@Fafard) "Task_16" done
-> [  3.881890] (1:master@Tremblay) Sent
-> [  3.881890] (1:master@Tremblay) Sending "Task_18" to "Bourassa"
-> [  3.881890] (5:slave@Ginette) Received "Task_17"
-> [  3.881890] (5:slave@Ginette) Processing "Task_17"
-> [  3.908551] (6:slave@Bourassa) "Task_13" done
-> [  4.036066] (1:master@Tremblay) Sent
-> [  4.036066] (1:master@Tremblay) Sending "Task_19" to "Tremblay"
-> [  4.036066] (1:master@Tremblay) Hey ! It's me ! :)
-> [  4.036066] (6:slave@Bourassa) Received "Task_18"
-> [  4.036066] (6:slave@Bourassa) Processing "Task_18"
-> [  4.038331] (1:master@Tremblay) Sent
-> [  4.038331] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [  4.038331] (2:slave@Tremblay) Received "Task_19"
-> [  4.038331] (2:slave@Tremblay) Processing "Task_19"
-> [  4.057346] (3:slave@Jupiter) Received "finalize"
-> [  4.057346] (3:slave@Jupiter) I'm done. See you!
-> [  4.083054] (4:slave@Fafard) Received "finalize"
-> [  4.083054] (4:slave@Fafard) I'm done. See you!
-> [  4.548041] (2:slave@Tremblay) "Task_19" done
-> [  4.912988] (5:slave@Ginette) "Task_17" done
-> [  4.929540] (5:slave@Ginette) Received "finalize"
-> [  4.929540] (5:slave@Ginette) I'm done. See you!
-> [  5.067164] (6:slave@Bourassa) "Task_18" done
-> [  5.092603] (6:slave@Bourassa) Received "finalize"
-> [  5.092603] (6:slave@Bourassa) I'm done. See you!
-> [  5.092798] (0:maestro@) Simulation time 5.0928
-> [  5.092798] (1:master@Tremblay) Goodbye now!
-> [  5.092798] (2:slave@Tremblay) Received "finalize"
-> [  5.092798] (2:slave@Tremblay) I'm done. See you!
-
-p Testing a simple master/slave example application. TCP crosstraffic DISABLED
-
-$ $SG_TEST_EXENV ${bindir:=.}/masterslave$EXEEXT ${srcdir:=.}/small_platform_with_routers.xml ${srcdir:=.}/../msg/masterslave/masterslave_d.xml --trace "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (1:master@Tremblay) Got 5 slaves and 20 tasks to process
-> [  0.000000] (1:master@Tremblay) Sending "Task_0" to "Jupiter"
-> [  0.169155] (3:slave@Jupiter) Received "Task_0"
-> [  0.169155] (3:slave@Jupiter) Processing "Task_0"
-> [  0.169155] (1:master@Tremblay) Sent
-> [  0.169155] (1:master@Tremblay) Sending "Task_1" to "Fafard"
-> [  0.327551] (4:slave@Fafard) Received "Task_1"
-> [  0.327551] (4:slave@Fafard) Processing "Task_1"
-> [  0.327551] (1:master@Tremblay) Sent
-> [  0.327551] (1:master@Tremblay) Sending "Task_2" to "Ginette"
-> [  0.451283] (5:slave@Ginette) Received "Task_2"
-> [  0.451283] (5:slave@Ginette) Processing "Task_2"
-> [  0.451283] (1:master@Tremblay) Sent
-> [  0.451283] (1:master@Tremblay) Sending "Task_3" to "Bourassa"
-> [  0.583902] (6:slave@Bourassa) Received "Task_3"
-> [  0.583902] (6:slave@Bourassa) Processing "Task_3"
-> [  0.583902] (1:master@Tremblay) Sent
-> [  0.583902] (1:master@Tremblay) Sending "Task_4" to "Tremblay"
-> [  0.583902] (1:master@Tremblay) Hey ! It's me ! :)
-> [  0.586168] (2:slave@Tremblay) Received "Task_4"
-> [  0.586168] (2:slave@Tremblay) Processing "Task_4"
-> [  0.586168] (1:master@Tremblay) Sent
-> [  0.586168] (1:master@Tremblay) Sending "Task_5" to "Jupiter"
-> [  0.824497] (3:slave@Jupiter) "Task_0" done
-> [  0.982894] (4:slave@Fafard) "Task_1" done
-> [  0.993652] (1:master@Tremblay) Sent
-> [  0.993652] (1:master@Tremblay) Sending "Task_6" to "Fafard"
-> [  0.993652] (3:slave@Jupiter) Received "Task_5"
-> [  0.993652] (3:slave@Jupiter) Processing "Task_5"
-> [  1.095878] (2:slave@Tremblay) "Task_4" done
-> [  1.152048] (4:slave@Fafard) Received "Task_6"
-> [  1.152048] (4:slave@Fafard) Processing "Task_6"
-> [  1.152048] (1:master@Tremblay) Sent
-> [  1.152048] (1:master@Tremblay) Sending "Task_7" to "Ginette"
-> [  1.482381] (5:slave@Ginette) "Task_2" done
-> [  1.606113] (1:master@Tremblay) Sent
-> [  1.606113] (1:master@Tremblay) Sending "Task_8" to "Bourassa"
-> [  1.606113] (5:slave@Ginette) Received "Task_7"
-> [  1.606113] (5:slave@Ginette) Processing "Task_7"
-> [  1.615000] (6:slave@Bourassa) "Task_3" done
-> [  1.648994] (3:slave@Jupiter) "Task_5" done
-> [  1.747619] (1:master@Tremblay) Sent
-> [  1.747619] (1:master@Tremblay) Sending "Task_9" to "Tremblay"
-> [  1.747619] (1:master@Tremblay) Hey ! It's me ! :)
-> [  1.747619] (6:slave@Bourassa) Received "Task_8"
-> [  1.747619] (6:slave@Bourassa) Processing "Task_8"
-> [  1.749885] (2:slave@Tremblay) Received "Task_9"
-> [  1.749885] (2:slave@Tremblay) Processing "Task_9"
-> [  1.749885] (1:master@Tremblay) Sent
-> [  1.749885] (1:master@Tremblay) Sending "Task_10" to "Jupiter"
-> [  1.807391] (4:slave@Fafard) "Task_6" done
-> [  1.919039] (3:slave@Jupiter) Received "Task_10"
-> [  1.919039] (3:slave@Jupiter) Processing "Task_10"
-> [  1.919039] (1:master@Tremblay) Sent
-> [  1.919039] (1:master@Tremblay) Sending "Task_11" to "Fafard"
-> [  2.077436] (4:slave@Fafard) Received "Task_11"
-> [  2.077436] (4:slave@Fafard) Processing "Task_11"
-> [  2.077436] (1:master@Tremblay) Sent
-> [  2.077436] (1:master@Tremblay) Sending "Task_12" to "Ginette"
-> [  2.259594] (2:slave@Tremblay) "Task_9" done
-> [  2.574382] (3:slave@Jupiter) "Task_10" done
-> [  2.637211] (5:slave@Ginette) "Task_7" done
-> [  2.732778] (4:slave@Fafard) "Task_11" done
-> [  2.760943] (1:master@Tremblay) Sent
-> [  2.760943] (1:master@Tremblay) Sending "Task_13" to "Bourassa"
-> [  2.760943] (5:slave@Ginette) Received "Task_12"
-> [  2.760943] (5:slave@Ginette) Processing "Task_12"
-> [  2.778717] (6:slave@Bourassa) "Task_8" done
-> [  2.911336] (1:master@Tremblay) Sent
-> [  2.911336] (1:master@Tremblay) Sending "Task_14" to "Tremblay"
-> [  2.911336] (1:master@Tremblay) Hey ! It's me ! :)
-> [  2.911336] (6:slave@Bourassa) Received "Task_13"
-> [  2.911336] (6:slave@Bourassa) Processing "Task_13"
-> [  2.913601] (2:slave@Tremblay) Received "Task_14"
-> [  2.913601] (2:slave@Tremblay) Processing "Task_14"
-> [  2.913601] (1:master@Tremblay) Sent
-> [  2.913601] (1:master@Tremblay) Sending "Task_15" to "Jupiter"
-> [  3.082756] (3:slave@Jupiter) Received "Task_15"
-> [  3.082756] (3:slave@Jupiter) Processing "Task_15"
-> [  3.082756] (1:master@Tremblay) Sent
-> [  3.082756] (1:master@Tremblay) Sending "Task_16" to "Fafard"
-> [  3.241153] (4:slave@Fafard) Received "Task_16"
-> [  3.241153] (4:slave@Fafard) Processing "Task_16"
-> [  3.241153] (1:master@Tremblay) Sent
-> [  3.241153] (1:master@Tremblay) Sending "Task_17" to "Ginette"
-> [  3.423311] (2:slave@Tremblay) "Task_14" done
-> [  3.738098] (3:slave@Jupiter) "Task_15" done
-> [  3.792041] (5:slave@Ginette) "Task_12" done
-> [  3.896495] (4:slave@Fafard) "Task_16" done
-> [  3.915773] (1:master@Tremblay) Sent
-> [  3.915773] (1:master@Tremblay) Sending "Task_18" to "Bourassa"
-> [  3.915773] (5:slave@Ginette) Received "Task_17"
-> [  3.915773] (5:slave@Ginette) Processing "Task_17"
-> [  3.942434] (6:slave@Bourassa) "Task_13" done
-> [  4.075053] (1:master@Tremblay) Sent
-> [  4.075053] (1:master@Tremblay) Sending "Task_19" to "Tremblay"
-> [  4.075053] (1:master@Tremblay) Hey ! It's me ! :)
-> [  4.075053] (6:slave@Bourassa) Received "Task_18"
-> [  4.075053] (6:slave@Bourassa) Processing "Task_18"
-> [  4.077318] (2:slave@Tremblay) Received "Task_19"
-> [  4.077318] (2:slave@Tremblay) Processing "Task_19"
-> [  4.077318] (1:master@Tremblay) Sent
-> [  4.077318] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [  4.096333] (3:slave@Jupiter) Received "finalize"
-> [  4.096333] (3:slave@Jupiter) I'm done. See you!
-> [  4.122041] (4:slave@Fafard) Received "finalize"
-> [  4.122041] (4:slave@Fafard) I'm done. See you!
-> [  4.587028] (2:slave@Tremblay) "Task_19" done
-> [  4.946871] (5:slave@Ginette) "Task_17" done
-> [  4.963423] (5:slave@Ginette) Received "finalize"
-> [  4.963423] (5:slave@Ginette) I'm done. See you!
-> [  5.106151] (6:slave@Bourassa) "Task_18" done
-> [  5.131590] (6:slave@Bourassa) Received "finalize"
-> [  5.131590] (6:slave@Bourassa) I'm done. See you!
-> [  5.131785] (2:slave@Tremblay) Received "finalize"
-> [  5.131785] (2:slave@Tremblay) I'm done. See you!
-> [  5.131785] (1:master@Tremblay) Goodbye now!
-> [  5.131785] (0:maestro@) Simulation time 5.13179
diff --git a/examples/msg/masterslave/masterslave_cpu_ti.tesh b/examples/msg/masterslave/masterslave_cpu_ti.tesh
deleted file mode 100644 (file)
index 53d2099..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-#! ./tesh
-
-p Testing a simple master/slave example application
-
-! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/masterslave$EXEEXT ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterslave/masterslave_d.xml --cfg=cpu/optim:TI "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Configuration change: Set 'cpu/optim' to 'TI'
-> [  0.000000] (1:master@Tremblay) Got 5 slaves and 20 tasks to process
-> [  0.000000] (1:master@Tremblay) Sending "Task_0" to "Jupiter"
-> [  0.169155] (1:master@Tremblay) Sent
-> [  0.169155] (1:master@Tremblay) Sending "Task_1" to "Fafard"
-> [  0.169155] (3:slave@Jupiter) Received "Task_0"
-> [  0.169155] (3:slave@Jupiter) Processing "Task_0"
-> [  0.327551] (1:master@Tremblay) Sent
-> [  0.327551] (1:master@Tremblay) Sending "Task_2" to "Ginette"
-> [  0.327551] (4:slave@Fafard) Received "Task_1"
-> [  0.327551] (4:slave@Fafard) Processing "Task_1"
-> [  0.451283] (1:master@Tremblay) Sent
-> [  0.451283] (1:master@Tremblay) Sending "Task_3" to "Bourassa"
-> [  0.451283] (5:slave@Ginette) Received "Task_2"
-> [  0.451283] (5:slave@Ginette) Processing "Task_2"
-> [  0.583902] (1:master@Tremblay) Sent
-> [  0.583902] (1:master@Tremblay) Sending "Task_4" to "Tremblay"
-> [  0.583902] (1:master@Tremblay) Hey ! It's me ! :)
-> [  0.583902] (6:slave@Bourassa) Received "Task_3"
-> [  0.583902] (6:slave@Bourassa) Processing "Task_3"
-> [  0.586168] (1:master@Tremblay) Sent
-> [  0.586168] (1:master@Tremblay) Sending "Task_5" to "Jupiter"
-> [  0.586168] (2:slave@Tremblay) Received "Task_4"
-> [  0.586168] (2:slave@Tremblay) Processing "Task_4"
-> [  0.824497] (3:slave@Jupiter) "Task_0" done
-> [  0.982894] (4:slave@Fafard) "Task_1" done
-> [  0.993652] (1:master@Tremblay) Sent
-> [  0.993652] (1:master@Tremblay) Sending "Task_6" to "Fafard"
-> [  0.993652] (3:slave@Jupiter) Received "Task_5"
-> [  0.993652] (3:slave@Jupiter) Processing "Task_5"
-> [  1.095878] (2:slave@Tremblay) "Task_4" done
-> [  1.152048] (1:master@Tremblay) Sent
-> [  1.152048] (1:master@Tremblay) Sending "Task_7" to "Ginette"
-> [  1.152048] (4:slave@Fafard) Received "Task_6"
-> [  1.152048] (4:slave@Fafard) Processing "Task_6"
-> [  1.482381] (5:slave@Ginette) "Task_2" done
-> [  1.606113] (1:master@Tremblay) Sent
-> [  1.606113] (1:master@Tremblay) Sending "Task_8" to "Bourassa"
-> [  1.606113] (5:slave@Ginette) Received "Task_7"
-> [  1.606113] (5:slave@Ginette) Processing "Task_7"
-> [  1.615000] (6:slave@Bourassa) "Task_3" done
-> [  1.648994] (3:slave@Jupiter) "Task_5" done
-> [  1.747619] (1:master@Tremblay) Sent
-> [  1.747619] (1:master@Tremblay) Sending "Task_9" to "Tremblay"
-> [  1.747619] (1:master@Tremblay) Hey ! It's me ! :)
-> [  1.747619] (6:slave@Bourassa) Received "Task_8"
-> [  1.747619] (6:slave@Bourassa) Processing "Task_8"
-> [  1.749885] (1:master@Tremblay) Sent
-> [  1.749885] (1:master@Tremblay) Sending "Task_10" to "Jupiter"
-> [  1.749885] (2:slave@Tremblay) Received "Task_9"
-> [  1.749885] (2:slave@Tremblay) Processing "Task_9"
-> [  1.807391] (4:slave@Fafard) "Task_6" done
-> [  1.919039] (1:master@Tremblay) Sent
-> [  1.919039] (1:master@Tremblay) Sending "Task_11" to "Fafard"
-> [  1.919039] (3:slave@Jupiter) Received "Task_10"
-> [  1.919039] (3:slave@Jupiter) Processing "Task_10"
-> [  2.077436] (1:master@Tremblay) Sent
-> [  2.077436] (1:master@Tremblay) Sending "Task_12" to "Ginette"
-> [  2.077436] (4:slave@Fafard) Received "Task_11"
-> [  2.077436] (4:slave@Fafard) Processing "Task_11"
-> [  2.259594] (2:slave@Tremblay) "Task_9" done
-> [  2.574382] (3:slave@Jupiter) "Task_10" done
-> [  2.637211] (5:slave@Ginette) "Task_7" done
-> [  2.732778] (4:slave@Fafard) "Task_11" done
-> [  2.760943] (1:master@Tremblay) Sent
-> [  2.760943] (1:master@Tremblay) Sending "Task_13" to "Bourassa"
-> [  2.760943] (5:slave@Ginette) Received "Task_12"
-> [  2.760943] (5:slave@Ginette) Processing "Task_12"
-> [  2.778717] (6:slave@Bourassa) "Task_8" done
-> [  2.911336] (1:master@Tremblay) Sent
-> [  2.911336] (1:master@Tremblay) Sending "Task_14" to "Tremblay"
-> [  2.911336] (1:master@Tremblay) Hey ! It's me ! :)
-> [  2.911336] (6:slave@Bourassa) Received "Task_13"
-> [  2.911336] (6:slave@Bourassa) Processing "Task_13"
-> [  2.913601] (1:master@Tremblay) Sent
-> [  2.913601] (1:master@Tremblay) Sending "Task_15" to "Jupiter"
-> [  2.913601] (2:slave@Tremblay) Received "Task_14"
-> [  2.913601] (2:slave@Tremblay) Processing "Task_14"
-> [  3.082756] (1:master@Tremblay) Sent
-> [  3.082756] (1:master@Tremblay) Sending "Task_16" to "Fafard"
-> [  3.082756] (3:slave@Jupiter) Received "Task_15"
-> [  3.082756] (3:slave@Jupiter) Processing "Task_15"
-> [  3.241153] (1:master@Tremblay) Sent
-> [  3.241153] (1:master@Tremblay) Sending "Task_17" to "Ginette"
-> [  3.241153] (4:slave@Fafard) Received "Task_16"
-> [  3.241153] (4:slave@Fafard) Processing "Task_16"
-> [  3.423311] (2:slave@Tremblay) "Task_14" done
-> [  3.738098] (3:slave@Jupiter) "Task_15" done
-> [  3.792041] (5:slave@Ginette) "Task_12" done
-> [  3.896495] (4:slave@Fafard) "Task_16" done
-> [  3.915773] (1:master@Tremblay) Sent
-> [  3.915773] (1:master@Tremblay) Sending "Task_18" to "Bourassa"
-> [  3.915773] (5:slave@Ginette) Received "Task_17"
-> [  3.915773] (5:slave@Ginette) Processing "Task_17"
-> [  3.942434] (6:slave@Bourassa) "Task_13" done
-> [  4.075053] (1:master@Tremblay) Sent
-> [  4.075053] (1:master@Tremblay) Sending "Task_19" to "Tremblay"
-> [  4.075053] (1:master@Tremblay) Hey ! It's me ! :)
-> [  4.075053] (6:slave@Bourassa) Received "Task_18"
-> [  4.075053] (6:slave@Bourassa) Processing "Task_18"
-> [  4.077318] (1:master@Tremblay) Sent
-> [  4.077318] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [  4.077318] (2:slave@Tremblay) Received "Task_19"
-> [  4.077318] (2:slave@Tremblay) Processing "Task_19"
-> [  4.096333] (3:slave@Jupiter) Received "finalize"
-> [  4.096333] (3:slave@Jupiter) I'm done. See you!
-> [  4.122041] (4:slave@Fafard) Received "finalize"
-> [  4.122041] (4:slave@Fafard) I'm done. See you!
-> [  4.587028] (2:slave@Tremblay) "Task_19" done
-> [  4.946871] (5:slave@Ginette) "Task_17" done
-> [  4.963423] (5:slave@Ginette) Received "finalize"
-> [  4.963423] (5:slave@Ginette) I'm done. See you!
-> [  5.106151] (6:slave@Bourassa) "Task_18" done
-> [  5.131590] (6:slave@Bourassa) Received "finalize"
-> [  5.131590] (6:slave@Bourassa) I'm done. See you!
-> [  5.131785] (0:maestro@) Simulation time 5.13179
-> [  5.131785] (1:master@Tremblay) Goodbye now!
-> [  5.131785] (2:slave@Tremblay) Received "finalize"
-> [  5.131785] (2:slave@Tremblay) I'm done. See you!
-
-p Testing a simple master/slave example application
-
-! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/masterslave$EXEEXT ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterslave/masterslave_d.xml --cfg=network/crosstraffic:0 --cfg=cpu/optim:TI "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (0:maestro@) Configuration change: Set 'network/crosstraffic' to '0'
-> [  0.000000] (0:maestro@) Configuration change: Set 'cpu/optim' to 'TI'
-> [  0.000000] (1:master@Tremblay) Got 5 slaves and 20 tasks to process
-> [  0.000000] (1:master@Tremblay) Sending "Task_0" to "Jupiter"
-> [  0.165962] (1:master@Tremblay) Sent
-> [  0.165962] (1:master@Tremblay) Sending "Task_1" to "Fafard"
-> [  0.165962] (3:slave@Jupiter) Received "Task_0"
-> [  0.165962] (3:slave@Jupiter) Processing "Task_0"
-> [  0.384115] (1:master@Tremblay) Sent
-> [  0.384115] (1:master@Tremblay) Sending "Task_2" to "Ginette"
-> [  0.384115] (4:slave@Fafard) Received "Task_1"
-> [  0.384115] (4:slave@Fafard) Processing "Task_1"
-> [  0.524575] (1:master@Tremblay) Sent
-> [  0.524575] (1:master@Tremblay) Sending "Task_3" to "Bourassa"
-> [  0.524575] (5:slave@Ginette) Received "Task_2"
-> [  0.524575] (5:slave@Ginette) Processing "Task_2"
-> [  0.740447] (1:master@Tremblay) Sent
-> [  0.740447] (1:master@Tremblay) Sending "Task_4" to "Tremblay"
-> [  0.740447] (1:master@Tremblay) Hey ! It's me ! :)
-> [  0.740447] (6:slave@Bourassa) Received "Task_3"
-> [  0.740447] (6:slave@Bourassa) Processing "Task_3"
-> [  0.742786] (1:master@Tremblay) Sent
-> [  0.742786] (1:master@Tremblay) Sending "Task_5" to "Jupiter"
-> [  0.742786] (2:slave@Tremblay) Received "Task_4"
-> [  0.742786] (2:slave@Tremblay) Processing "Task_4"
-> [  0.821304] (3:slave@Jupiter) "Task_0" done
-> [  0.987266] (1:master@Tremblay) Sent
-> [  0.987266] (1:master@Tremblay) Sending "Task_6" to "Fafard"
-> [  0.987266] (3:slave@Jupiter) Received "Task_5"
-> [  0.987266] (3:slave@Jupiter) Processing "Task_5"
-> [  1.039457] (4:slave@Fafard) "Task_1" done
-> [  1.252495] (2:slave@Tremblay) "Task_4" done
-> [  1.257610] (1:master@Tremblay) Sent
-> [  1.257610] (1:master@Tremblay) Sending "Task_7" to "Ginette"
-> [  1.257610] (4:slave@Fafard) Received "Task_6"
-> [  1.257610] (4:slave@Fafard) Processing "Task_6"
-> [  1.555672] (5:slave@Ginette) "Task_2" done
-> [  1.642608] (3:slave@Jupiter) "Task_5" done
-> [  1.696132] (1:master@Tremblay) Sent
-> [  1.696132] (1:master@Tremblay) Sending "Task_8" to "Bourassa"
-> [  1.696132] (5:slave@Ginette) Received "Task_7"
-> [  1.696132] (5:slave@Ginette) Processing "Task_7"
-> [  1.771545] (6:slave@Bourassa) "Task_3" done
-> [  1.912953] (4:slave@Fafard) "Task_6" done
-> [  1.987417] (1:master@Tremblay) Sent
-> [  1.987417] (1:master@Tremblay) Sending "Task_9" to "Tremblay"
-> [  1.987417] (1:master@Tremblay) Hey ! It's me ! :)
-> [  1.987417] (6:slave@Bourassa) Received "Task_8"
-> [  1.987417] (6:slave@Bourassa) Processing "Task_8"
-> [  1.989756] (1:master@Tremblay) Sent
-> [  1.989756] (1:master@Tremblay) Sending "Task_10" to "Jupiter"
-> [  1.989756] (2:slave@Tremblay) Received "Task_9"
-> [  1.989756] (2:slave@Tremblay) Processing "Task_9"
-> [  2.155718] (1:master@Tremblay) Sent
-> [  2.155718] (1:master@Tremblay) Sending "Task_11" to "Fafard"
-> [  2.155718] (3:slave@Jupiter) Received "Task_10"
-> [  2.155718] (3:slave@Jupiter) Processing "Task_10"
-> [  2.373871] (1:master@Tremblay) Sent
-> [  2.373871] (1:master@Tremblay) Sending "Task_12" to "Ginette"
-> [  2.373871] (4:slave@Fafard) Received "Task_11"
-> [  2.373871] (4:slave@Fafard) Processing "Task_11"
-> [  2.499466] (2:slave@Tremblay) "Task_9" done
-> [  2.727230] (5:slave@Ginette) "Task_7" done
-> [  2.811060] (3:slave@Jupiter) "Task_10" done
-> [  2.867690] (1:master@Tremblay) Sent
-> [  2.867690] (1:master@Tremblay) Sending "Task_13" to "Bourassa"
-> [  2.867690] (5:slave@Ginette) Received "Task_12"
-> [  2.867690] (5:slave@Ginette) Processing "Task_12"
-> [  3.018515] (6:slave@Bourassa) "Task_8" done
-> [  3.029213] (4:slave@Fafard) "Task_11" done
-> [  3.234387] (1:master@Tremblay) Sent
-> [  3.234387] (1:master@Tremblay) Sending "Task_14" to "Tremblay"
-> [  3.234387] (1:master@Tremblay) Hey ! It's me ! :)
-> [  3.234387] (6:slave@Bourassa) Received "Task_13"
-> [  3.234387] (6:slave@Bourassa) Processing "Task_13"
-> [  3.236726] (1:master@Tremblay) Sent
-> [  3.236726] (1:master@Tremblay) Sending "Task_15" to "Jupiter"
-> [  3.236726] (2:slave@Tremblay) Received "Task_14"
-> [  3.236726] (2:slave@Tremblay) Processing "Task_14"
-> [  3.402688] (1:master@Tremblay) Sent
-> [  3.402688] (1:master@Tremblay) Sending "Task_16" to "Fafard"
-> [  3.402688] (3:slave@Jupiter) Received "Task_15"
-> [  3.402688] (3:slave@Jupiter) Processing "Task_15"
-> [  3.620841] (1:master@Tremblay) Sent
-> [  3.620841] (1:master@Tremblay) Sending "Task_17" to "Ginette"
-> [  3.620841] (4:slave@Fafard) Received "Task_16"
-> [  3.620841] (4:slave@Fafard) Processing "Task_16"
-> [  3.746436] (2:slave@Tremblay) "Task_14" done
-> [  3.898788] (5:slave@Ginette) "Task_12" done
-> [  4.039247] (1:master@Tremblay) Sent
-> [  4.039247] (1:master@Tremblay) Sending "Task_18" to "Bourassa"
-> [  4.039247] (5:slave@Ginette) Received "Task_17"
-> [  4.039247] (5:slave@Ginette) Processing "Task_17"
-> [  4.058030] (3:slave@Jupiter) "Task_15" done
-> [  4.265485] (6:slave@Bourassa) "Task_13" done
-> [  4.276183] (4:slave@Fafard) "Task_16" done
-> [  4.481357] (1:master@Tremblay) Sent
-> [  4.481357] (1:master@Tremblay) Sending "Task_19" to "Tremblay"
-> [  4.481357] (1:master@Tremblay) Hey ! It's me ! :)
-> [  4.481357] (6:slave@Bourassa) Received "Task_18"
-> [  4.481357] (6:slave@Bourassa) Processing "Task_18"
-> [  4.483696] (1:master@Tremblay) Sent
-> [  4.483696] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [  4.483696] (2:slave@Tremblay) Received "Task_19"
-> [  4.483696] (2:slave@Tremblay) Processing "Task_19"
-> [  4.498896] (3:slave@Jupiter) Received "finalize"
-> [  4.498896] (3:slave@Jupiter) I'm done. See you!
-> [  4.519447] (4:slave@Fafard) Received "finalize"
-> [  4.519447] (4:slave@Fafard) I'm done. See you!
-> [  4.993406] (2:slave@Tremblay) "Task_19" done
-> [  5.070345] (5:slave@Ginette) "Task_17" done
-> [  5.083577] (5:slave@Ginette) Received "finalize"
-> [  5.083577] (5:slave@Ginette) I'm done. See you!
-> [  5.512455] (6:slave@Bourassa) "Task_18" done
-> [  5.532791] (6:slave@Bourassa) Received "finalize"
-> [  5.532791] (6:slave@Bourassa) I'm done. See you!
-> [  5.532947] (0:maestro@) Simulation time 5.53295
-> [  5.532947] (1:master@Tremblay) Goodbye now!
-> [  5.532947] (2:slave@Tremblay) Received "finalize"
-> [  5.532947] (2:slave@Tremblay) I'm done. See you!
-
diff --git a/examples/msg/masterslave/masterslave_d.xml b/examples/msg/masterslave/masterslave_d.xml
deleted file mode 100644 (file)
index 6ebf11b..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4">
-  <!-- The master process (with some arguments) -->
-  <process host="Tremblay" function="master">
-     <argument value="20"/>       <!-- Number of tasks -->
-     <argument value="50000000"/>  <!-- Computation size of tasks -->
-     <argument value="1000000"/>   <!-- Communication size of tasks -->
-     <argument value="Jupiter"/>  <!-- First slave -->
-     <argument value="Fafard"/>   <!-- Second slave -->
-     <argument value="Ginette"/>  <!-- Third slave -->
-     <argument value="Bourassa"/> <!-- Last slave -->
-     <argument value="Tremblay"/> <!-- Me! I can work too! -->
-  </process>
-  <!-- The slave process (with no argument) -->
-  <process host="Tremblay" function="slave" on_failure="RESTART"/>
-  <process host="Jupiter" function="slave" on_failure="RESTART"/>
-  <process host="Fafard" function="slave" on_failure="RESTART"/>
-  <process host="Ginette" function="slave" on_failure="RESTART"/>
-  <process host="Bourassa" function="slave" on_failure="RESTART"/>
-</platform>
@@ -1,36 +1,36 @@
 #! ./tesh
 
-p Testing a simple master/slave example application
+p Testing a simple master/worker example application
 
-$ $SG_TEST_EXENV ./masterslave-mailbox/masterslave-mailbox ${srcdir:=.}/../platforms/multicore_machine.xml ${srcdir:=.}/masterslave-mailbox/masterslave-mailbox-multicore_d.xml --cfg=cpu/model:Cas01 --cfg=cpu/optim:Full
+$ $SG_TEST_EXENV ./masterworker-mailbox/masterworker-mailbox ${srcdir:=.}/../platforms/multicore_machine.xml ${srcdir:=.}/masterworker-mailbox/masterworker-mailbox-multicore_d.xml --cfg=cpu/model:Cas01 --cfg=cpu/optim:Full
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'cpu/model' to 'Cas01'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'cpu/optim' to 'Full'
-> [Tremblay:master:(1) 0.000000] [msg_test/INFO] Got 6 slaves and 20 tasks to process
-> [Tremblay:master:(1) 0.000000] [msg_test/INFO] Sending "Task_0" (of 20) to mailbox "slave-0"
-> [Tremblay:master:(1) 0.002203] [msg_test/INFO] Sending "Task_1" (of 20) to mailbox "slave-1"
-> [Tremblay:master:(1) 0.004406] [msg_test/INFO] Sending "Task_2" (of 20) to mailbox "slave-2"
-> [Tremblay:master:(1) 0.006610] [msg_test/INFO] Sending "Task_3" (of 20) to mailbox "slave-3"
-> [Tremblay:master:(1) 0.008813] [msg_test/INFO] Sending "Task_4" (of 20) to mailbox "slave-4"
-> [Tremblay:master:(1) 0.011016] [msg_test/INFO] Sending "Task_5" (of 20) to mailbox "slave-5"
-> [Tremblay:master:(1) 0.013219] [msg_test/INFO] Sending "Task_6" (of 20) to mailbox "slave-0"
-> [Tremblay:master:(1) 0.514116] [msg_test/INFO] Sending "Task_7" (of 20) to mailbox "slave-1"
-> [Tremblay:master:(1) 0.516320] [msg_test/INFO] Sending "Task_8" (of 20) to mailbox "slave-2"
-> [Tremblay:master:(1) 0.518523] [msg_test/INFO] Sending "Task_9" (of 20) to mailbox "slave-3"
-> [Tremblay:master:(1) 0.520726] [msg_test/INFO] Sending "Task_10" (of 20) to mailbox "slave-4"
-> [Tremblay:master:(1) 0.522929] [msg_test/INFO] Sending "Task_11" (of 20) to mailbox "slave-5"
-> [Tremblay:master:(1) 0.525132] [msg_test/INFO] Sending "Task_12" (of 20) to mailbox "slave-0"
-> [Tremblay:master:(1) 1.026029] [msg_test/INFO] Sending "Task_13" (of 20) to mailbox "slave-1"
-> [Tremblay:master:(1) 1.028233] [msg_test/INFO] Sending "Task_14" (of 20) to mailbox "slave-2"
-> [Tremblay:master:(1) 1.030436] [msg_test/INFO] Sending "Task_15" (of 20) to mailbox "slave-3"
-> [Tremblay:master:(1) 1.032639] [msg_test/INFO] Sending "Task_16" (of 20) to mailbox "slave-4"
-> [Tremblay:master:(1) 1.034842] [msg_test/INFO] Sending "Task_17" (of 20) to mailbox "slave-5"
-> [Tremblay:master:(1) 1.037045] [msg_test/INFO] Sending "Task_18" (of 20) to mailbox "slave-0"
-> [Tremblay:master:(1) 1.537943] [msg_test/INFO] Sending "Task_19" (of 20) to mailbox "slave-1"
+> [Tremblay:master:(1) 0.000000] [msg_test/INFO] Got 6 workers and 20 tasks to process
+> [Tremblay:master:(1) 0.000000] [msg_test/INFO] Sending "Task_0" (of 20) to mailbox "worker-0"
+> [Tremblay:master:(1) 0.002203] [msg_test/INFO] Sending "Task_1" (of 20) to mailbox "worker-1"
+> [Tremblay:master:(1) 0.004406] [msg_test/INFO] Sending "Task_2" (of 20) to mailbox "worker-2"
+> [Tremblay:master:(1) 0.006610] [msg_test/INFO] Sending "Task_3" (of 20) to mailbox "worker-3"
+> [Tremblay:master:(1) 0.008813] [msg_test/INFO] Sending "Task_4" (of 20) to mailbox "worker-4"
+> [Tremblay:master:(1) 0.011016] [msg_test/INFO] Sending "Task_5" (of 20) to mailbox "worker-5"
+> [Tremblay:master:(1) 0.013219] [msg_test/INFO] Sending "Task_6" (of 20) to mailbox "worker-0"
+> [Tremblay:master:(1) 0.514116] [msg_test/INFO] Sending "Task_7" (of 20) to mailbox "worker-1"
+> [Tremblay:master:(1) 0.516320] [msg_test/INFO] Sending "Task_8" (of 20) to mailbox "worker-2"
+> [Tremblay:master:(1) 0.518523] [msg_test/INFO] Sending "Task_9" (of 20) to mailbox "worker-3"
+> [Tremblay:master:(1) 0.520726] [msg_test/INFO] Sending "Task_10" (of 20) to mailbox "worker-4"
+> [Tremblay:master:(1) 0.522929] [msg_test/INFO] Sending "Task_11" (of 20) to mailbox "worker-5"
+> [Tremblay:master:(1) 0.525132] [msg_test/INFO] Sending "Task_12" (of 20) to mailbox "worker-0"
+> [Tremblay:master:(1) 1.026029] [msg_test/INFO] Sending "Task_13" (of 20) to mailbox "worker-1"
+> [Tremblay:master:(1) 1.028233] [msg_test/INFO] Sending "Task_14" (of 20) to mailbox "worker-2"
+> [Tremblay:master:(1) 1.030436] [msg_test/INFO] Sending "Task_15" (of 20) to mailbox "worker-3"
+> [Tremblay:master:(1) 1.032639] [msg_test/INFO] Sending "Task_16" (of 20) to mailbox "worker-4"
+> [Tremblay:master:(1) 1.034842] [msg_test/INFO] Sending "Task_17" (of 20) to mailbox "worker-5"
+> [Tremblay:master:(1) 1.037045] [msg_test/INFO] Sending "Task_18" (of 20) to mailbox "worker-0"
+> [Tremblay:master:(1) 1.537943] [msg_test/INFO] Sending "Task_19" (of 20) to mailbox "worker-1"
 > [Tremblay:master:(1) 1.540146] [msg_test/INFO] All tasks have been dispatched. Let's tell everybody the computation is over.
-> [Tremblay:slave:(2) 2.047848] [msg_test/INFO] I'm done. See you!
-> [Tremblay:slave:(3) 2.050051] [msg_test/INFO] I'm done. See you!
-> [Tremblay:slave:(4) 2.050246] [msg_test/INFO] I'm done. See you!
-> [Tremblay:slave:(5) 2.050441] [msg_test/INFO] I'm done. See you!
-> [Tremblay:slave:(6) 2.050636] [msg_test/INFO] I'm done. See you!
-> [Tremblay:slave:(7) 2.050832] [msg_test/INFO] I'm done. See you!
+> [Tremblay:worker:(2) 2.047848] [msg_test/INFO] I'm done. See you!
+> [Tremblay:worker:(3) 2.050051] [msg_test/INFO] I'm done. See you!
+> [Tremblay:worker:(4) 2.050246] [msg_test/INFO] I'm done. See you!
+> [Tremblay:worker:(5) 2.050441] [msg_test/INFO] I'm done. See you!
+> [Tremblay:worker:(6) 2.050636] [msg_test/INFO] I'm done. See you!
+> [Tremblay:worker:(7) 2.050832] [msg_test/INFO] I'm done. See you!
 > [2.050832] [msg_test/INFO] Simulation time 2.05083
\ No newline at end of file
diff --git a/examples/msg/masterworker-mailbox/masterworker-mailbox-multicore_d.xml b/examples/msg/masterworker-mailbox/masterworker-mailbox-multicore_d.xml
new file mode 100644 (file)
index 0000000..8a011ce
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <!-- The master process (with some arguments) -->
+  <process host="Tremblay" function="master">
+     <argument value="20"/>       <!-- Number of tasks -->
+     <argument value="50000000"/>  <!-- Computation size of tasks -->
+     <argument value="1000000"/>   <!-- Communication size of tasks -->
+     <argument value="6"/>         <!-- Number of workers -->
+  </process>
+  <!-- The worker processes (with mailbox to listen on as argument) -->
+  <process host="Tremblay" function="worker">   <argument value="0"/> </process>
+  <process host="Tremblay" function="worker">   <argument value="1"/> </process>
+  <process host="Tremblay" function="worker">   <argument value="2"/> </process>
+  <process host="Tremblay" function="worker">   <argument value="3"/> </process>
+  <process host="Tremblay" function="worker">   <argument value="4"/> </process>
+  <process host="Tremblay" function="worker">   <argument value="5"/> </process>
+</platform>
diff --git a/examples/msg/masterworker-mailbox/masterworker-mailbox-vivaldi.tesh b/examples/msg/masterworker-mailbox/masterworker-mailbox-vivaldi.tesh
new file mode 100644 (file)
index 0000000..2f48800
--- /dev/null
@@ -0,0 +1,36 @@
+#! ./tesh
+
+p Testing a simple master/worker example application
+
+$ $SG_TEST_EXENV ./masterworker-mailbox/masterworker-mailbox  ${srcdir:=.}/../platforms/vivaldi.xml ${srcdir:=.}/masterworker-mailbox/masterworker-mailbox-vivaldi_d.xml --cfg=network/latency_factor:1.0 --cfg=network/bandwidth_factor:1.0
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/latency_factor' to '1.0'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/bandwidth_factor' to '1.0'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/coordinates' to 'yes'
+> [100030591:master:(1) 0.000000] [msg_test/INFO] Got 15 workers and 10 tasks to process
+> [100030591:master:(1) 0.000000] [msg_test/INFO] Sending "Task_0" (of 10) to mailbox "worker-0"
+> [100030591:master:(1) 0.046299] [msg_test/INFO] Sending "Task_1" (of 10) to mailbox "worker-1"
+> [100030591:master:(1) 0.103602] [msg_test/INFO] Sending "Task_2" (of 10) to mailbox "worker-2"
+> [100030591:master:(1) 0.126922] [msg_test/INFO] Sending "Task_3" (of 10) to mailbox "worker-3"
+> [100030591:master:(1) 0.167282] [msg_test/INFO] Sending "Task_4" (of 10) to mailbox "worker-4"
+> [100030591:master:(1) 0.174710] [msg_test/INFO] Sending "Task_5" (of 10) to mailbox "worker-5"
+> [100030591:master:(1) 0.307173] [msg_test/INFO] Sending "Task_6" (of 10) to mailbox "worker-6"
+> [100030591:master:(1) 0.370794] [msg_test/INFO] Sending "Task_7" (of 10) to mailbox "worker-7"
+> [100030591:master:(1) 0.413207] [msg_test/INFO] Sending "Task_8" (of 10) to mailbox "worker-8"
+> [100030591:master:(1) 0.452277] [msg_test/INFO] Sending "Task_9" (of 10) to mailbox "worker-9"
+> [100030591:master:(1) 0.487205] [msg_test/INFO] All tasks have been dispatched. Let's tell everybody the computation is over.
+> [100036570:worker:(2) 0.533504] [msg_test/INFO] I'm done. See you!
+> [100041334:worker:(3) 0.590807] [msg_test/INFO] I'm done. See you!
+> [100055671:worker:(4) 0.614127] [msg_test/INFO] I'm done. See you!
+> [100066658:worker:(5) 0.654487] [msg_test/INFO] I'm done. See you!
+> [100090691:worker:(6) 0.661915] [msg_test/INFO] I'm done. See you!
+> [100094952:worker:(7) 0.794379] [msg_test/INFO] I'm done. See you!
+> [100117943:worker:(8) 0.858000] [msg_test/INFO] I'm done. See you!
+> [100126290:worker:(9) 0.900412] [msg_test/INFO] I'm done. See you!
+> [100144483:worker:(10) 0.939482] [msg_test/INFO] I'm done. See you!
+> [100152889:worker:(11) 0.974410] [msg_test/INFO] I'm done. See you!
+> [100178474:worker:(12) 0.990540] [msg_test/INFO] I'm done. See you!
+> [100180261:worker:(13) 1.011253] [msg_test/INFO] I'm done. See you!
+> [100185883:worker:(14) 1.051440] [msg_test/INFO] I'm done. See you!
+> [100186365:worker:(15) 1.268843] [msg_test/INFO] I'm done. See you!
+> [100200866:worker:(16) 1.336272] [msg_test/INFO] I'm done. See you!
+> [1.336272] [msg_test/INFO] Simulation time 1.33627
diff --git a/examples/msg/masterworker-mailbox/masterworker-mailbox-vivaldi_d.xml b/examples/msg/masterworker-mailbox/masterworker-mailbox-vivaldi_d.xml
new file mode 100644 (file)
index 0000000..a1660c0
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <!-- The master process (with some arguments) --> 
+  <process host="100030591" function="master">
+       <argument value="10"/>       <!-- Number of tasks -->
+       <argument value="50000000"/>  <!-- Computation size of tasks -->
+       <argument value="1000000"/>   <!-- Communication size of tasks -->
+       <argument value="15"/>         <!-- Number of workers -->
+    </process>
+    <!-- The worker processes (with mailbox to listen on as argument) -->
+    <process host="100036570" function="worker">   <argument value="0"/> </process>
+    <process host="100041334" function="worker">   <argument value="1"/> </process>
+    <process host="100055671" function="worker">   <argument value="2"/> </process>
+    <process host="100066658" function="worker">   <argument value="3"/> </process>
+    <process host="100090691" function="worker">   <argument value="4"/> </process>
+    <process host="100094952" function="worker">   <argument value="5"/> </process>
+    <process host="100117943" function="worker">   <argument value="6"/> </process>
+    <process host="100126290" function="worker">   <argument value="7"/> </process>
+    <process host="100144483" function="worker">   <argument value="8"/> </process>
+    <process host="100152889" function="worker">   <argument value="9"/> </process>
+    <process host="100178474" function="worker">   <argument value="10"/> </process>
+    <process host="100180261" function="worker">   <argument value="11"/> </process>
+    <process host="100185883" function="worker">   <argument value="12"/> </process>
+    <process host="100186365" function="worker">   <argument value="13"/> </process>
+    <process host="100200866" function="worker">   <argument value="14"/> </process>
+</platform>
@@ -13,18 +13,18 @@ static int master(int argc, char *argv[])
   long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
   double task_comp_size = xbt_str_parse_double(argv[2], "Invalid computational size: %s");
   double task_comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s");
-  long slaves_count = xbt_str_parse_int(argv[4], "Invalid amount of slaves: %s");
+  long workers_count = xbt_str_parse_int(argv[4], "Invalid amount of workers: %s");
 
   int i;
 
-  XBT_INFO("Got %ld slaves and %ld tasks to process", slaves_count, number_of_tasks);
+  XBT_INFO("Got %ld workers and %ld tasks to process", workers_count, number_of_tasks);
 
   for (i = 0; i < number_of_tasks; i++) {
     char mailbox[256];
     char sprintf_buffer[256];
     msg_task_t task = NULL;
 
-    sprintf(mailbox, "slave-%ld", i % slaves_count);
+    sprintf(mailbox, "worker-%ld", i % workers_count);
     sprintf(sprintf_buffer, "Task_%d", i);
     task = MSG_task_create(sprintf_buffer, task_comp_size, task_comm_size, NULL);
     if (number_of_tasks < 10000 || i % 10000 == 0)
@@ -34,10 +34,10 @@ static int master(int argc, char *argv[])
   }
 
   XBT_INFO("All tasks have been dispatched. Let's tell everybody the computation is over.");
-  for (i = 0; i < slaves_count; i++) {
+  for (i = 0; i < workers_count; i++) {
     char mailbox[80];
 
-    sprintf(mailbox, "slave-%ld", i % slaves_count);
+    sprintf(mailbox, "worker-%ld", i % workers_count);
     msg_task_t finalize = MSG_task_create("finalize", 0, 0, 0);
     MSG_task_send(finalize, mailbox);
   }
@@ -45,7 +45,7 @@ static int master(int argc, char *argv[])
   return 0;
 }
 
-static int slave(int argc, char *argv[])
+static int worker(int argc, char *argv[])
 {
   msg_task_t task = NULL;
   XBT_ATTRIB_UNUSED int res;
@@ -54,7 +54,7 @@ static int slave(int argc, char *argv[])
 
   long id= xbt_str_parse_int(argv[1], "Invalid argument %s");
 
-  sprintf(mailbox, "slave-%ld", id);
+  sprintf(mailbox, "worker-%ld", id);
 
   while (1) {
     res = MSG_task_receive(&(task), mailbox);
@@ -84,7 +84,7 @@ int main(int argc, char *argv[])
   MSG_create_environment(argv[1]);
 
   MSG_function_register("master", master);
-  MSG_function_register("slave", slave);
+  MSG_function_register("worker", worker);
   MSG_launch_application(argv[2]);
 
   msg_error_t res = MSG_main();
@@ -1,65 +1,65 @@
 #! ./tesh
 
-p Testing a simple master/slave example application (mailbox version)
+p Testing a simple master/worker example application (mailbox version)
 
 ! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/masterslave-mailbox$EXEEXT ${srcdir:=.}/small_platform_with_routers.xml ${srcdir:=.}/../msg/masterslave-mailbox/masterslave-mailbox_d.xml --cfg=network/crosstraffic:0 --trace "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ $SG_TEST_EXENV ${bindir:=.}/masterworker-mailbox$EXEEXT ${srcdir:=.}/small_platform_with_routers.xml ${srcdir:=.}/../msg/masterworker-mailbox/masterworker-mailbox_d.xml --cfg=network/crosstraffic:0 --trace "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:maestro@) Configuration change: Set 'network/crosstraffic' to '0'
-> [  0.000000] (1:master@Tremblay) Got 5 slaves and 20 tasks to process
-> [  0.000000] (1:master@Tremblay) Sending "Task_0" (of 20) to mailbox "slave-0"
-> [  0.002265] (1:master@Tremblay) Sending "Task_1" (of 20) to mailbox "slave-1"
-> [  0.164270] (1:master@Tremblay) Sending "Task_2" (of 20) to mailbox "slave-2"
-> [  0.316349] (1:master@Tremblay) Sending "Task_3" (of 20) to mailbox "slave-3"
-> [  0.434977] (1:master@Tremblay) Sending "Task_4" (of 20) to mailbox "slave-4"
-> [  0.562492] (1:master@Tremblay) Sending "Task_5" (of 20) to mailbox "slave-0"
-> [  0.564757] (1:master@Tremblay) Sending "Task_6" (of 20) to mailbox "slave-1"
-> [  0.981618] (1:master@Tremblay) Sending "Task_7" (of 20) to mailbox "slave-2"
-> [  1.133696] (1:master@Tremblay) Sending "Task_8" (of 20) to mailbox "slave-3"
-> [  1.584703] (1:master@Tremblay) Sending "Task_9" (of 20) to mailbox "slave-4"
-> [  1.721105] (1:master@Tremblay) Sending "Task_10" (of 20) to mailbox "slave-0"
-> [  1.723370] (1:master@Tremblay) Sending "Task_11" (of 20) to mailbox "slave-1"
-> [  1.885375] (1:master@Tremblay) Sending "Task_12" (of 20) to mailbox "slave-2"
-> [  2.037454] (1:master@Tremblay) Sending "Task_13" (of 20) to mailbox "slave-3"
-> [  2.734429] (1:master@Tremblay) Sending "Task_14" (of 20) to mailbox "slave-4"
-> [  2.879718] (1:master@Tremblay) Sending "Task_15" (of 20) to mailbox "slave-0"
-> [  2.881983] (1:master@Tremblay) Sending "Task_16" (of 20) to mailbox "slave-1"
-> [  3.043989] (1:master@Tremblay) Sending "Task_17" (of 20) to mailbox "slave-2"
-> [  3.196067] (1:master@Tremblay) Sending "Task_18" (of 20) to mailbox "slave-3"
-> [  3.884155] (1:master@Tremblay) Sending "Task_19" (of 20) to mailbox "slave-4"
+> [  0.000000] (1:master@Tremblay) Got 5 workers and 20 tasks to process
+> [  0.000000] (1:master@Tremblay) Sending "Task_0" (of 20) to mailbox "worker-0"
+> [  0.002265] (1:master@Tremblay) Sending "Task_1" (of 20) to mailbox "worker-1"
+> [  0.164270] (1:master@Tremblay) Sending "Task_2" (of 20) to mailbox "worker-2"
+> [  0.316349] (1:master@Tremblay) Sending "Task_3" (of 20) to mailbox "worker-3"
+> [  0.434977] (1:master@Tremblay) Sending "Task_4" (of 20) to mailbox "worker-4"
+> [  0.562492] (1:master@Tremblay) Sending "Task_5" (of 20) to mailbox "worker-0"
+> [  0.564757] (1:master@Tremblay) Sending "Task_6" (of 20) to mailbox "worker-1"
+> [  0.981618] (1:master@Tremblay) Sending "Task_7" (of 20) to mailbox "worker-2"
+> [  1.133696] (1:master@Tremblay) Sending "Task_8" (of 20) to mailbox "worker-3"
+> [  1.584703] (1:master@Tremblay) Sending "Task_9" (of 20) to mailbox "worker-4"
+> [  1.721105] (1:master@Tremblay) Sending "Task_10" (of 20) to mailbox "worker-0"
+> [  1.723370] (1:master@Tremblay) Sending "Task_11" (of 20) to mailbox "worker-1"
+> [  1.885375] (1:master@Tremblay) Sending "Task_12" (of 20) to mailbox "worker-2"
+> [  2.037454] (1:master@Tremblay) Sending "Task_13" (of 20) to mailbox "worker-3"
+> [  2.734429] (1:master@Tremblay) Sending "Task_14" (of 20) to mailbox "worker-4"
+> [  2.879718] (1:master@Tremblay) Sending "Task_15" (of 20) to mailbox "worker-0"
+> [  2.881983] (1:master@Tremblay) Sending "Task_16" (of 20) to mailbox "worker-1"
+> [  3.043989] (1:master@Tremblay) Sending "Task_17" (of 20) to mailbox "worker-2"
+> [  3.196067] (1:master@Tremblay) Sending "Task_18" (of 20) to mailbox "worker-3"
+> [  3.884155] (1:master@Tremblay) Sending "Task_19" (of 20) to mailbox "worker-4"
 > [  4.038331] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [  4.038526] (2:slave@Tremblay) I'm done. See you!
-> [  4.057541] (3:slave@Jupiter) I'm done. See you!
-> [  4.083249] (4:slave@Fafard) I'm done. See you!
-> [  4.931805] (5:slave@Ginette) I'm done. See you!
+> [  4.038526] (2:worker@Tremblay) I'm done. See you!
+> [  4.057541] (3:worker@Jupiter) I'm done. See you!
+> [  4.083249] (4:worker@Fafard) I'm done. See you!
+> [  4.931805] (5:worker@Ginette) I'm done. See you!
 > [  5.094868] (0:maestro@) Simulation time 5.09487
-> [  5.094868] (6:slave@Bourassa) I'm done. See you!
+> [  5.094868] (6:worker@Bourassa) I'm done. See you!
 
-$ $SG_TEST_EXENV ${bindir:=.}/masterslave-mailbox$EXEEXT ${srcdir:=.}/small_platform_with_routers.xml ${srcdir:=.}/../msg/masterslave-mailbox/masterslave-mailbox_d.xml --trace "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
-> [  0.000000] (1:master@Tremblay) Got 5 slaves and 20 tasks to process
-> [  0.000000] (1:master@Tremblay) Sending "Task_0" (of 20) to mailbox "slave-0"
-> [  0.002265] (1:master@Tremblay) Sending "Task_1" (of 20) to mailbox "slave-1"
-> [  0.171420] (1:master@Tremblay) Sending "Task_2" (of 20) to mailbox "slave-2"
-> [  0.329817] (1:master@Tremblay) Sending "Task_3" (of 20) to mailbox "slave-3"
-> [  0.453549] (1:master@Tremblay) Sending "Task_4" (of 20) to mailbox "slave-4"
-> [  0.586168] (1:master@Tremblay) Sending "Task_5" (of 20) to mailbox "slave-0"
-> [  0.588433] (1:master@Tremblay) Sending "Task_6" (of 20) to mailbox "slave-1"
-> [  0.995917] (1:master@Tremblay) Sending "Task_7" (of 20) to mailbox "slave-2"
-> [  1.154314] (1:master@Tremblay) Sending "Task_8" (of 20) to mailbox "slave-3"
-> [  1.608379] (1:master@Tremblay) Sending "Task_9" (of 20) to mailbox "slave-4"
-> [  1.749885] (1:master@Tremblay) Sending "Task_10" (of 20) to mailbox "slave-0"
-> [  1.752150] (1:master@Tremblay) Sending "Task_11" (of 20) to mailbox "slave-1"
-> [  1.921304] (1:master@Tremblay) Sending "Task_12" (of 20) to mailbox "slave-2"
-> [  2.079701] (1:master@Tremblay) Sending "Task_13" (of 20) to mailbox "slave-3"
-> [  2.763209] (1:master@Tremblay) Sending "Task_14" (of 20) to mailbox "slave-4"
-> [  2.913601] (1:master@Tremblay) Sending "Task_15" (of 20) to mailbox "slave-0"
-> [  2.915867] (1:master@Tremblay) Sending "Task_16" (of 20) to mailbox "slave-1"
-> [  3.085021] (1:master@Tremblay) Sending "Task_17" (of 20) to mailbox "slave-2"
-> [  3.243418] (1:master@Tremblay) Sending "Task_18" (of 20) to mailbox "slave-3"
-> [  3.918038] (1:master@Tremblay) Sending "Task_19" (of 20) to mailbox "slave-4"
+$ $SG_TEST_EXENV ${bindir:=.}/masterworker-mailbox$EXEEXT ${srcdir:=.}/small_platform_with_routers.xml ${srcdir:=.}/../msg/masterworker-mailbox/masterworker-mailbox_d.xml --trace "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (1:master@Tremblay) Got 5 workers and 20 tasks to process
+> [  0.000000] (1:master@Tremblay) Sending "Task_0" (of 20) to mailbox "worker-0"
+> [  0.002265] (1:master@Tremblay) Sending "Task_1" (of 20) to mailbox "worker-1"
+> [  0.171420] (1:master@Tremblay) Sending "Task_2" (of 20) to mailbox "worker-2"
+> [  0.329817] (1:master@Tremblay) Sending "Task_3" (of 20) to mailbox "worker-3"
+> [  0.453549] (1:master@Tremblay) Sending "Task_4" (of 20) to mailbox "worker-4"
+> [  0.586168] (1:master@Tremblay) Sending "Task_5" (of 20) to mailbox "worker-0"
+> [  0.588433] (1:master@Tremblay) Sending "Task_6" (of 20) to mailbox "worker-1"
+> [  0.995917] (1:master@Tremblay) Sending "Task_7" (of 20) to mailbox "worker-2"
+> [  1.154314] (1:master@Tremblay) Sending "Task_8" (of 20) to mailbox "worker-3"
+> [  1.608379] (1:master@Tremblay) Sending "Task_9" (of 20) to mailbox "worker-4"
+> [  1.749885] (1:master@Tremblay) Sending "Task_10" (of 20) to mailbox "worker-0"
+> [  1.752150] (1:master@Tremblay) Sending "Task_11" (of 20) to mailbox "worker-1"
+> [  1.921304] (1:master@Tremblay) Sending "Task_12" (of 20) to mailbox "worker-2"
+> [  2.079701] (1:master@Tremblay) Sending "Task_13" (of 20) to mailbox "worker-3"
+> [  2.763209] (1:master@Tremblay) Sending "Task_14" (of 20) to mailbox "worker-4"
+> [  2.913601] (1:master@Tremblay) Sending "Task_15" (of 20) to mailbox "worker-0"
+> [  2.915867] (1:master@Tremblay) Sending "Task_16" (of 20) to mailbox "worker-1"
+> [  3.085021] (1:master@Tremblay) Sending "Task_17" (of 20) to mailbox "worker-2"
+> [  3.243418] (1:master@Tremblay) Sending "Task_18" (of 20) to mailbox "worker-3"
+> [  3.918038] (1:master@Tremblay) Sending "Task_19" (of 20) to mailbox "worker-4"
 > [  4.077318] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
-> [  4.077513] (2:slave@Tremblay) I'm done. See you!
-> [  4.096528] (3:slave@Jupiter) I'm done. See you!
-> [  4.122236] (4:slave@Fafard) I'm done. See you!
-> [  4.965689] (5:slave@Ginette) I'm done. See you!
-> [  5.133855] (6:slave@Bourassa) I'm done. See you!
+> [  4.077513] (2:worker@Tremblay) I'm done. See you!
+> [  4.096528] (3:worker@Jupiter) I'm done. See you!
+> [  4.122236] (4:worker@Fafard) I'm done. See you!
+> [  4.965689] (5:worker@Ginette) I'm done. See you!
+> [  5.133855] (6:worker@Bourassa) I'm done. See you!
 > [  5.133855] (0:maestro@) Simulation time 5.13386
diff --git a/examples/msg/masterworker-mailbox/masterworker-mailbox_d.xml b/examples/msg/masterworker-mailbox/masterworker-mailbox_d.xml
new file mode 100644 (file)
index 0000000..d463004
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <!-- The master process (with some arguments) -->
+  <process host="Tremblay" function="master">
+     <argument value="20"/>       <!-- Number of tasks -->
+     <argument value="50000000"/>  <!-- Computation size of tasks -->
+     <argument value="1000000"/>   <!-- Communication size of tasks -->
+     <argument value="5"/>         <!-- Number of workers -->
+  </process>
+  <!-- The worker processes (with mailbox to listen on as argument) -->
+  <process host="Tremblay" function="worker">  <argument value="0"/> </process>
+  <process host="Jupiter" function="worker">   <argument value="1"/> </process>
+  <process host="Fafard" function="worker">    <argument value="2"/> </process>
+  <process host="Ginette" function="worker">   <argument value="3"/> </process>
+  <process host="Bourassa" function="worker">  <argument value="4"/> </process>
+</platform>
similarity index 74%
rename from examples/msg/masterslave/masterslave.c
rename to examples/msg/masterworker/masterworker.c
index c731acd..664836a 100644 (file)
@@ -10,8 +10,8 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example")
 
 /** @addtogroup MSG_examples
  * 
- *  - <b>masterslave/masterslave.c: Master/slaves example</b>. This good old example is also very simple. Its
- *    basic version is fully commented on this page: \ref MSG_ex_master_slave, but several variants can be found in the
+ *  - <b>masterworker/masterworker.c: Master/workers example</b>. This good old example is also very simple. Its
+ *    basic version is fully commented on this page: \ref MSG_ex_master_worker, but several variants can be found in the
  *    same directory.
  */
 
@@ -19,9 +19,9 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example")
 
 static int master(int argc, char *argv[])
 {
-  msg_host_t *slaves = NULL;
+  msg_host_t *workers = NULL;
   msg_task_t *todo = NULL;
-  long slaves_count = 0;
+  long workers_count = 0;
   int i;
 
   long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
@@ -40,42 +40,42 @@ static int master(int argc, char *argv[])
   }
 
   {                             /* Process organization */
-    slaves_count = argc - 4;
-    slaves = xbt_new0(msg_host_t, slaves_count);
+    workers_count = argc - 4;
+    workers = xbt_new0(msg_host_t, workers_count);
 
     for (i = 4; i < argc; i++) {
-      slaves[i - 4] = MSG_host_by_name(argv[i]);
-      xbt_assert(slaves[i - 4] != NULL, "Unknown host %s. Stopping Now! ", argv[i]);
+      workers[i - 4] = MSG_host_by_name(argv[i]);
+      xbt_assert(workers[i - 4] != NULL, "Unknown host %s. Stopping Now! ", argv[i]);
     }
   }
 
-  XBT_INFO("Got %ld slaves and %ld tasks to process", slaves_count, number_of_tasks);
-  for (i = 0; i < slaves_count; i++)
-    XBT_DEBUG("%s", MSG_host_get_name(slaves[i]));
+  XBT_INFO("Got %ld workers and %ld tasks to process", workers_count, number_of_tasks);
+  for (i = 0; i < workers_count; i++)
+    XBT_DEBUG("%s", MSG_host_get_name(workers[i]));
 
   for (i = 0; i < number_of_tasks; i++) {
-    XBT_INFO("Sending \"%s\" to \"%s\"", todo[i]->name, MSG_host_get_name(slaves[i % slaves_count]));
-    if (MSG_host_self() == slaves[i % slaves_count]) {
+    XBT_INFO("Sending \"%s\" to \"%s\"", todo[i]->name, MSG_host_get_name(workers[i % workers_count]));
+    if (MSG_host_self() == workers[i % workers_count]) {
       XBT_INFO("Hey ! It's me ! :)");
     }
 
-    MSG_task_send(todo[i], MSG_host_get_name(slaves[i % slaves_count]));
+    MSG_task_send(todo[i], MSG_host_get_name(workers[i % workers_count]));
     XBT_INFO("Sent");
   }
 
   XBT_INFO("All tasks have been dispatched. Let's tell everybody the computation is over.");
-  for (i = 0; i < slaves_count; i++) {
+  for (i = 0; i < workers_count; i++) {
     msg_task_t finalize = MSG_task_create("finalize", 0, 0, FINALIZE);
-    MSG_task_send(finalize, MSG_host_get_name(slaves[i]));
+    MSG_task_send(finalize, MSG_host_get_name(workers[i]));
   }
 
   XBT_INFO("Goodbye now!");
-  free(slaves);
+  free(workers);
   free(todo);
   return 0;
 }
 
-static int slave(int argc, char *argv[])
+static int worker(int argc, char *argv[])
 {
   msg_task_t task = NULL;
   XBT_ATTRIB_UNUSED int res;
@@ -110,7 +110,7 @@ int main(int argc, char *argv[])
   MSG_create_environment(argv[1]);
 
   MSG_function_register("master", master);
-  MSG_function_register("slave", slave);
+  MSG_function_register("worker", worker);
   MSG_launch_application(argv[2]);
 
   res = MSG_main();
diff --git a/examples/msg/masterworker/masterworker.tesh b/examples/msg/masterworker/masterworker.tesh
new file mode 100644 (file)
index 0000000..158a2b9
--- /dev/null
@@ -0,0 +1,247 @@
+#! ./tesh
+
+p Testing a simple master/worker example application. TCP crosstraffic DISABLED
+
+! output sort 19
+$ $SG_TEST_EXENV ${bindir:=.}/masterworker$EXEEXT ${srcdir:=.}/small_platform_with_routers.xml ${srcdir:=.}/../msg/masterworker/masterworker_d.xml --cfg=network/crosstraffic:0 --trace "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (0:maestro@) Configuration change: Set 'network/crosstraffic' to '0'
+> [  0.000000] (1:master@Tremblay) Got 5 workers and 20 tasks to process
+> [  0.000000] (1:master@Tremblay) Sending "Task_0" to "Jupiter"
+> [  0.162005] (1:master@Tremblay) Sent
+> [  0.162005] (1:master@Tremblay) Sending "Task_1" to "Fafard"
+> [  0.162005] (3:worker@Jupiter) Received "Task_0"
+> [  0.162005] (3:worker@Jupiter) Processing "Task_0"
+> [  0.314083] (1:master@Tremblay) Sent
+> [  0.314083] (1:master@Tremblay) Sending "Task_2" to "Ginette"
+> [  0.314083] (4:worker@Fafard) Received "Task_1"
+> [  0.314083] (4:worker@Fafard) Processing "Task_1"
+> [  0.432712] (1:master@Tremblay) Sent
+> [  0.432712] (1:master@Tremblay) Sending "Task_3" to "Bourassa"
+> [  0.432712] (5:worker@Ginette) Received "Task_2"
+> [  0.432712] (5:worker@Ginette) Processing "Task_2"
+> [  0.560227] (1:master@Tremblay) Sent
+> [  0.560227] (1:master@Tremblay) Sending "Task_4" to "Tremblay"
+> [  0.560227] (1:master@Tremblay) Hey ! It's me ! :)
+> [  0.560227] (6:worker@Bourassa) Received "Task_3"
+> [  0.560227] (6:worker@Bourassa) Processing "Task_3"
+> [  0.562492] (1:master@Tremblay) Sent
+> [  0.562492] (1:master@Tremblay) Sending "Task_5" to "Jupiter"
+> [  0.562492] (2:worker@Tremblay) Received "Task_4"
+> [  0.562492] (2:worker@Tremblay) Processing "Task_4"
+> [  0.817347] (3:worker@Jupiter) "Task_0" done
+> [  0.969426] (4:worker@Fafard) "Task_1" done
+> [  0.979353] (1:master@Tremblay) Sent
+> [  0.979353] (1:master@Tremblay) Sending "Task_6" to "Fafard"
+> [  0.979353] (3:worker@Jupiter) Received "Task_5"
+> [  0.979353] (3:worker@Jupiter) Processing "Task_5"
+> [  1.072202] (2:worker@Tremblay) "Task_4" done
+> [  1.131431] (1:master@Tremblay) Sent
+> [  1.131431] (1:master@Tremblay) Sending "Task_7" to "Ginette"
+> [  1.131431] (4:worker@Fafard) Received "Task_6"
+> [  1.131431] (4:worker@Fafard) Processing "Task_6"
+> [  1.463809] (5:worker@Ginette) "Task_2" done
+> [  1.582438] (1:master@Tremblay) Sent
+> [  1.582438] (1:master@Tremblay) Sending "Task_8" to "Bourassa"
+> [  1.582438] (5:worker@Ginette) Received "Task_7"
+> [  1.582438] (5:worker@Ginette) Processing "Task_7"
+> [  1.591325] (6:worker@Bourassa) "Task_3" done
+> [  1.634695] (3:worker@Jupiter) "Task_5" done
+> [  1.718840] (1:master@Tremblay) Sent
+> [  1.718840] (1:master@Tremblay) Sending "Task_9" to "Tremblay"
+> [  1.718840] (1:master@Tremblay) Hey ! It's me ! :)
+> [  1.718840] (6:worker@Bourassa) Received "Task_8"
+> [  1.718840] (6:worker@Bourassa) Processing "Task_8"
+> [  1.721105] (1:master@Tremblay) Sent
+> [  1.721105] (1:master@Tremblay) Sending "Task_10" to "Jupiter"
+> [  1.721105] (2:worker@Tremblay) Received "Task_9"
+> [  1.721105] (2:worker@Tremblay) Processing "Task_9"
+> [  1.786773] (4:worker@Fafard) "Task_6" done
+> [  1.883110] (1:master@Tremblay) Sent
+> [  1.883110] (1:master@Tremblay) Sending "Task_11" to "Fafard"
+> [  1.883110] (3:worker@Jupiter) Received "Task_10"
+> [  1.883110] (3:worker@Jupiter) Processing "Task_10"
+> [  2.035188] (1:master@Tremblay) Sent
+> [  2.035188] (1:master@Tremblay) Sending "Task_12" to "Ginette"
+> [  2.035188] (4:worker@Fafard) Received "Task_11"
+> [  2.035188] (4:worker@Fafard) Processing "Task_11"
+> [  2.230815] (2:worker@Tremblay) "Task_9" done
+> [  2.538453] (3:worker@Jupiter) "Task_10" done
+> [  2.613536] (5:worker@Ginette) "Task_7" done
+> [  2.690531] (4:worker@Fafard) "Task_11" done
+> [  2.732164] (1:master@Tremblay) Sent
+> [  2.732164] (1:master@Tremblay) Sending "Task_13" to "Bourassa"
+> [  2.732164] (5:worker@Ginette) Received "Task_12"
+> [  2.732164] (5:worker@Ginette) Processing "Task_12"
+> [  2.749938] (6:worker@Bourassa) "Task_8" done
+> [  2.877453] (1:master@Tremblay) Sent
+> [  2.877453] (1:master@Tremblay) Sending "Task_14" to "Tremblay"
+> [  2.877453] (1:master@Tremblay) Hey ! It's me ! :)
+> [  2.877453] (6:worker@Bourassa) Received "Task_13"
+> [  2.877453] (6:worker@Bourassa) Processing "Task_13"
+> [  2.879718] (1:master@Tremblay) Sent
+> [  2.879718] (1:master@Tremblay) Sending "Task_15" to "Jupiter"
+> [  2.879718] (2:worker@Tremblay) Received "Task_14"
+> [  2.879718] (2:worker@Tremblay) Processing "Task_14"
+> [  3.041723] (1:master@Tremblay) Sent
+> [  3.041723] (1:master@Tremblay) Sending "Task_16" to "Fafard"
+> [  3.041723] (3:worker@Jupiter) Received "Task_15"
+> [  3.041723] (3:worker@Jupiter) Processing "Task_15"
+> [  3.193802] (1:master@Tremblay) Sent
+> [  3.193802] (1:master@Tremblay) Sending "Task_17" to "Ginette"
+> [  3.193802] (4:worker@Fafard) Received "Task_16"
+> [  3.193802] (4:worker@Fafard) Processing "Task_16"
+> [  3.389428] (2:worker@Tremblay) "Task_14" done
+> [  3.697066] (3:worker@Jupiter) "Task_15" done
+> [  3.763262] (5:worker@Ginette) "Task_12" done
+> [  3.849144] (4:worker@Fafard) "Task_16" done
+> [  3.881890] (1:master@Tremblay) Sent
+> [  3.881890] (1:master@Tremblay) Sending "Task_18" to "Bourassa"
+> [  3.881890] (5:worker@Ginette) Received "Task_17"
+> [  3.881890] (5:worker@Ginette) Processing "Task_17"
+> [  3.908551] (6:worker@Bourassa) "Task_13" done
+> [  4.036066] (1:master@Tremblay) Sent
+> [  4.036066] (1:master@Tremblay) Sending "Task_19" to "Tremblay"
+> [  4.036066] (1:master@Tremblay) Hey ! It's me ! :)
+> [  4.036066] (6:worker@Bourassa) Received "Task_18"
+> [  4.036066] (6:worker@Bourassa) Processing "Task_18"
+> [  4.038331] (1:master@Tremblay) Sent
+> [  4.038331] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
+> [  4.038331] (2:worker@Tremblay) Received "Task_19"
+> [  4.038331] (2:worker@Tremblay) Processing "Task_19"
+> [  4.057346] (3:worker@Jupiter) Received "finalize"
+> [  4.057346] (3:worker@Jupiter) I'm done. See you!
+> [  4.083054] (4:worker@Fafard) Received "finalize"
+> [  4.083054] (4:worker@Fafard) I'm done. See you!
+> [  4.548041] (2:worker@Tremblay) "Task_19" done
+> [  4.912988] (5:worker@Ginette) "Task_17" done
+> [  4.929540] (5:worker@Ginette) Received "finalize"
+> [  4.929540] (5:worker@Ginette) I'm done. See you!
+> [  5.067164] (6:worker@Bourassa) "Task_18" done
+> [  5.092603] (6:worker@Bourassa) Received "finalize"
+> [  5.092603] (6:worker@Bourassa) I'm done. See you!
+> [  5.092798] (0:maestro@) Simulation time 5.0928
+> [  5.092798] (1:master@Tremblay) Goodbye now!
+> [  5.092798] (2:worker@Tremblay) Received "finalize"
+> [  5.092798] (2:worker@Tremblay) I'm done. See you!
+
+p Testing a simple master/worker example application. TCP crosstraffic DISABLED
+
+$ $SG_TEST_EXENV ${bindir:=.}/masterworker$EXEEXT ${srcdir:=.}/small_platform_with_routers.xml ${srcdir:=.}/../msg/masterworker/masterworker_d.xml --trace "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (1:master@Tremblay) Got 5 workers and 20 tasks to process
+> [  0.000000] (1:master@Tremblay) Sending "Task_0" to "Jupiter"
+> [  0.169155] (3:worker@Jupiter) Received "Task_0"
+> [  0.169155] (3:worker@Jupiter) Processing "Task_0"
+> [  0.169155] (1:master@Tremblay) Sent
+> [  0.169155] (1:master@Tremblay) Sending "Task_1" to "Fafard"
+> [  0.327551] (4:worker@Fafard) Received "Task_1"
+> [  0.327551] (4:worker@Fafard) Processing "Task_1"
+> [  0.327551] (1:master@Tremblay) Sent
+> [  0.327551] (1:master@Tremblay) Sending "Task_2" to "Ginette"
+> [  0.451283] (5:worker@Ginette) Received "Task_2"
+> [  0.451283] (5:worker@Ginette) Processing "Task_2"
+> [  0.451283] (1:master@Tremblay) Sent
+> [  0.451283] (1:master@Tremblay) Sending "Task_3" to "Bourassa"
+> [  0.583902] (6:worker@Bourassa) Received "Task_3"
+> [  0.583902] (6:worker@Bourassa) Processing "Task_3"
+> [  0.583902] (1:master@Tremblay) Sent
+> [  0.583902] (1:master@Tremblay) Sending "Task_4" to "Tremblay"
+> [  0.583902] (1:master@Tremblay) Hey ! It's me ! :)
+> [  0.586168] (2:worker@Tremblay) Received "Task_4"
+> [  0.586168] (2:worker@Tremblay) Processing "Task_4"
+> [  0.586168] (1:master@Tremblay) Sent
+> [  0.586168] (1:master@Tremblay) Sending "Task_5" to "Jupiter"
+> [  0.824497] (3:worker@Jupiter) "Task_0" done
+> [  0.982894] (4:worker@Fafard) "Task_1" done
+> [  0.993652] (1:master@Tremblay) Sent
+> [  0.993652] (1:master@Tremblay) Sending "Task_6" to "Fafard"
+> [  0.993652] (3:worker@Jupiter) Received "Task_5"
+> [  0.993652] (3:worker@Jupiter) Processing "Task_5"
+> [  1.095878] (2:worker@Tremblay) "Task_4" done
+> [  1.152048] (4:worker@Fafard) Received "Task_6"
+> [  1.152048] (4:worker@Fafard) Processing "Task_6"
+> [  1.152048] (1:master@Tremblay) Sent
+> [  1.152048] (1:master@Tremblay) Sending "Task_7" to "Ginette"
+> [  1.482381] (5:worker@Ginette) "Task_2" done
+> [  1.606113] (1:master@Tremblay) Sent
+> [  1.606113] (1:master@Tremblay) Sending "Task_8" to "Bourassa"
+> [  1.606113] (5:worker@Ginette) Received "Task_7"
+> [  1.606113] (5:worker@Ginette) Processing "Task_7"
+> [  1.615000] (6:worker@Bourassa) "Task_3" done
+> [  1.648994] (3:worker@Jupiter) "Task_5" done
+> [  1.747619] (1:master@Tremblay) Sent
+> [  1.747619] (1:master@Tremblay) Sending "Task_9" to "Tremblay"
+> [  1.747619] (1:master@Tremblay) Hey ! It's me ! :)
+> [  1.747619] (6:worker@Bourassa) Received "Task_8"
+> [  1.747619] (6:worker@Bourassa) Processing "Task_8"
+> [  1.749885] (2:worker@Tremblay) Received "Task_9"
+> [  1.749885] (2:worker@Tremblay) Processing "Task_9"
+> [  1.749885] (1:master@Tremblay) Sent
+> [  1.749885] (1:master@Tremblay) Sending "Task_10" to "Jupiter"
+> [  1.807391] (4:worker@Fafard) "Task_6" done
+> [  1.919039] (3:worker@Jupiter) Received "Task_10"
+> [  1.919039] (3:worker@Jupiter) Processing "Task_10"
+> [  1.919039] (1:master@Tremblay) Sent
+> [  1.919039] (1:master@Tremblay) Sending "Task_11" to "Fafard"
+> [  2.077436] (4:worker@Fafard) Received "Task_11"
+> [  2.077436] (4:worker@Fafard) Processing "Task_11"
+> [  2.077436] (1:master@Tremblay) Sent
+> [  2.077436] (1:master@Tremblay) Sending "Task_12" to "Ginette"
+> [  2.259594] (2:worker@Tremblay) "Task_9" done
+> [  2.574382] (3:worker@Jupiter) "Task_10" done
+> [  2.637211] (5:worker@Ginette) "Task_7" done
+> [  2.732778] (4:worker@Fafard) "Task_11" done
+> [  2.760943] (1:master@Tremblay) Sent
+> [  2.760943] (1:master@Tremblay) Sending "Task_13" to "Bourassa"
+> [  2.760943] (5:worker@Ginette) Received "Task_12"
+> [  2.760943] (5:worker@Ginette) Processing "Task_12"
+> [  2.778717] (6:worker@Bourassa) "Task_8" done
+> [  2.911336] (1:master@Tremblay) Sent
+> [  2.911336] (1:master@Tremblay) Sending "Task_14" to "Tremblay"
+> [  2.911336] (1:master@Tremblay) Hey ! It's me ! :)
+> [  2.911336] (6:worker@Bourassa) Received "Task_13"
+> [  2.911336] (6:worker@Bourassa) Processing "Task_13"
+> [  2.913601] (2:worker@Tremblay) Received "Task_14"
+> [  2.913601] (2:worker@Tremblay) Processing "Task_14"
+> [  2.913601] (1:master@Tremblay) Sent
+> [  2.913601] (1:master@Tremblay) Sending "Task_15" to "Jupiter"
+> [  3.082756] (3:worker@Jupiter) Received "Task_15"
+> [  3.082756] (3:worker@Jupiter) Processing "Task_15"
+> [  3.082756] (1:master@Tremblay) Sent
+> [  3.082756] (1:master@Tremblay) Sending "Task_16" to "Fafard"
+> [  3.241153] (4:worker@Fafard) Received "Task_16"
+> [  3.241153] (4:worker@Fafard) Processing "Task_16"
+> [  3.241153] (1:master@Tremblay) Sent
+> [  3.241153] (1:master@Tremblay) Sending "Task_17" to "Ginette"
+> [  3.423311] (2:worker@Tremblay) "Task_14" done
+> [  3.738098] (3:worker@Jupiter) "Task_15" done
+> [  3.792041] (5:worker@Ginette) "Task_12" done
+> [  3.896495] (4:worker@Fafard) "Task_16" done
+> [  3.915773] (1:master@Tremblay) Sent
+> [  3.915773] (1:master@Tremblay) Sending "Task_18" to "Bourassa"
+> [  3.915773] (5:worker@Ginette) Received "Task_17"
+> [  3.915773] (5:worker@Ginette) Processing "Task_17"
+> [  3.942434] (6:worker@Bourassa) "Task_13" done
+> [  4.075053] (1:master@Tremblay) Sent
+> [  4.075053] (1:master@Tremblay) Sending "Task_19" to "Tremblay"
+> [  4.075053] (1:master@Tremblay) Hey ! It's me ! :)
+> [  4.075053] (6:worker@Bourassa) Received "Task_18"
+> [  4.075053] (6:worker@Bourassa) Processing "Task_18"
+> [  4.077318] (2:worker@Tremblay) Received "Task_19"
+> [  4.077318] (2:worker@Tremblay) Processing "Task_19"
+> [  4.077318] (1:master@Tremblay) Sent
+> [  4.077318] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
+> [  4.096333] (3:worker@Jupiter) Received "finalize"
+> [  4.096333] (3:worker@Jupiter) I'm done. See you!
+> [  4.122041] (4:worker@Fafard) Received "finalize"
+> [  4.122041] (4:worker@Fafard) I'm done. See you!
+> [  4.587028] (2:worker@Tremblay) "Task_19" done
+> [  4.946871] (5:worker@Ginette) "Task_17" done
+> [  4.963423] (5:worker@Ginette) Received "finalize"
+> [  4.963423] (5:worker@Ginette) I'm done. See you!
+> [  5.106151] (6:worker@Bourassa) "Task_18" done
+> [  5.131590] (6:worker@Bourassa) Received "finalize"
+> [  5.131590] (6:worker@Bourassa) I'm done. See you!
+> [  5.131785] (2:worker@Tremblay) Received "finalize"
+> [  5.131785] (2:worker@Tremblay) I'm done. See you!
+> [  5.131785] (1:master@Tremblay) Goodbye now!
+> [  5.131785] (0:maestro@) Simulation time 5.13179
diff --git a/examples/msg/masterworker/masterworker_cpu_ti.tesh b/examples/msg/masterworker/masterworker_cpu_ti.tesh
new file mode 100644 (file)
index 0000000..ee58a96
--- /dev/null
@@ -0,0 +1,251 @@
+#! ./tesh
+
+p Testing a simple master/worker example application
+
+! output sort 19
+$ $SG_TEST_EXENV ${bindir:=.}/masterworker$EXEEXT ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterworker/masterworker_d.xml --cfg=cpu/optim:TI "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (0:maestro@) Configuration change: Set 'cpu/optim' to 'TI'
+> [  0.000000] (1:master@Tremblay) Got 5 workers and 20 tasks to process
+> [  0.000000] (1:master@Tremblay) Sending "Task_0" to "Jupiter"
+> [  0.169155] (1:master@Tremblay) Sent
+> [  0.169155] (1:master@Tremblay) Sending "Task_1" to "Fafard"
+> [  0.169155] (3:worker@Jupiter) Received "Task_0"
+> [  0.169155] (3:worker@Jupiter) Processing "Task_0"
+> [  0.327551] (1:master@Tremblay) Sent
+> [  0.327551] (1:master@Tremblay) Sending "Task_2" to "Ginette"
+> [  0.327551] (4:worker@Fafard) Received "Task_1"
+> [  0.327551] (4:worker@Fafard) Processing "Task_1"
+> [  0.451283] (1:master@Tremblay) Sent
+> [  0.451283] (1:master@Tremblay) Sending "Task_3" to "Bourassa"
+> [  0.451283] (5:worker@Ginette) Received "Task_2"
+> [  0.451283] (5:worker@Ginette) Processing "Task_2"
+> [  0.583902] (1:master@Tremblay) Sent
+> [  0.583902] (1:master@Tremblay) Sending "Task_4" to "Tremblay"
+> [  0.583902] (1:master@Tremblay) Hey ! It's me ! :)
+> [  0.583902] (6:worker@Bourassa) Received "Task_3"
+> [  0.583902] (6:worker@Bourassa) Processing "Task_3"
+> [  0.586168] (1:master@Tremblay) Sent
+> [  0.586168] (1:master@Tremblay) Sending "Task_5" to "Jupiter"
+> [  0.586168] (2:worker@Tremblay) Received "Task_4"
+> [  0.586168] (2:worker@Tremblay) Processing "Task_4"
+> [  0.824497] (3:worker@Jupiter) "Task_0" done
+> [  0.982894] (4:worker@Fafard) "Task_1" done
+> [  0.993652] (1:master@Tremblay) Sent
+> [  0.993652] (1:master@Tremblay) Sending "Task_6" to "Fafard"
+> [  0.993652] (3:worker@Jupiter) Received "Task_5"
+> [  0.993652] (3:worker@Jupiter) Processing "Task_5"
+> [  1.095878] (2:worker@Tremblay) "Task_4" done
+> [  1.152048] (1:master@Tremblay) Sent
+> [  1.152048] (1:master@Tremblay) Sending "Task_7" to "Ginette"
+> [  1.152048] (4:worker@Fafard) Received "Task_6"
+> [  1.152048] (4:worker@Fafard) Processing "Task_6"
+> [  1.482381] (5:worker@Ginette) "Task_2" done
+> [  1.606113] (1:master@Tremblay) Sent
+> [  1.606113] (1:master@Tremblay) Sending "Task_8" to "Bourassa"
+> [  1.606113] (5:worker@Ginette) Received "Task_7"
+> [  1.606113] (5:worker@Ginette) Processing "Task_7"
+> [  1.615000] (6:worker@Bourassa) "Task_3" done
+> [  1.648994] (3:worker@Jupiter) "Task_5" done
+> [  1.747619] (1:master@Tremblay) Sent
+> [  1.747619] (1:master@Tremblay) Sending "Task_9" to "Tremblay"
+> [  1.747619] (1:master@Tremblay) Hey ! It's me ! :)
+> [  1.747619] (6:worker@Bourassa) Received "Task_8"
+> [  1.747619] (6:worker@Bourassa) Processing "Task_8"
+> [  1.749885] (1:master@Tremblay) Sent
+> [  1.749885] (1:master@Tremblay) Sending "Task_10" to "Jupiter"
+> [  1.749885] (2:worker@Tremblay) Received "Task_9"
+> [  1.749885] (2:worker@Tremblay) Processing "Task_9"
+> [  1.807391] (4:worker@Fafard) "Task_6" done
+> [  1.919039] (1:master@Tremblay) Sent
+> [  1.919039] (1:master@Tremblay) Sending "Task_11" to "Fafard"
+> [  1.919039] (3:worker@Jupiter) Received "Task_10"
+> [  1.919039] (3:worker@Jupiter) Processing "Task_10"
+> [  2.077436] (1:master@Tremblay) Sent
+> [  2.077436] (1:master@Tremblay) Sending "Task_12" to "Ginette"
+> [  2.077436] (4:worker@Fafard) Received "Task_11"
+> [  2.077436] (4:worker@Fafard) Processing "Task_11"
+> [  2.259594] (2:worker@Tremblay) "Task_9" done
+> [  2.574382] (3:worker@Jupiter) "Task_10" done
+> [  2.637211] (5:worker@Ginette) "Task_7" done
+> [  2.732778] (4:worker@Fafard) "Task_11" done
+> [  2.760943] (1:master@Tremblay) Sent
+> [  2.760943] (1:master@Tremblay) Sending "Task_13" to "Bourassa"
+> [  2.760943] (5:worker@Ginette) Received "Task_12"
+> [  2.760943] (5:worker@Ginette) Processing "Task_12"
+> [  2.778717] (6:worker@Bourassa) "Task_8" done
+> [  2.911336] (1:master@Tremblay) Sent
+> [  2.911336] (1:master@Tremblay) Sending "Task_14" to "Tremblay"
+> [  2.911336] (1:master@Tremblay) Hey ! It's me ! :)
+> [  2.911336] (6:worker@Bourassa) Received "Task_13"
+> [  2.911336] (6:worker@Bourassa) Processing "Task_13"
+> [  2.913601] (1:master@Tremblay) Sent
+> [  2.913601] (1:master@Tremblay) Sending "Task_15" to "Jupiter"
+> [  2.913601] (2:worker@Tremblay) Received "Task_14"
+> [  2.913601] (2:worker@Tremblay) Processing "Task_14"
+> [  3.082756] (1:master@Tremblay) Sent
+> [  3.082756] (1:master@Tremblay) Sending "Task_16" to "Fafard"
+> [  3.082756] (3:worker@Jupiter) Received "Task_15"
+> [  3.082756] (3:worker@Jupiter) Processing "Task_15"
+> [  3.241153] (1:master@Tremblay) Sent
+> [  3.241153] (1:master@Tremblay) Sending "Task_17" to "Ginette"
+> [  3.241153] (4:worker@Fafard) Received "Task_16"
+> [  3.241153] (4:worker@Fafard) Processing "Task_16"
+> [  3.423311] (2:worker@Tremblay) "Task_14" done
+> [  3.738098] (3:worker@Jupiter) "Task_15" done
+> [  3.792041] (5:worker@Ginette) "Task_12" done
+> [  3.896495] (4:worker@Fafard) "Task_16" done
+> [  3.915773] (1:master@Tremblay) Sent
+> [  3.915773] (1:master@Tremblay) Sending "Task_18" to "Bourassa"
+> [  3.915773] (5:worker@Ginette) Received "Task_17"
+> [  3.915773] (5:worker@Ginette) Processing "Task_17"
+> [  3.942434] (6:worker@Bourassa) "Task_13" done
+> [  4.075053] (1:master@Tremblay) Sent
+> [  4.075053] (1:master@Tremblay) Sending "Task_19" to "Tremblay"
+> [  4.075053] (1:master@Tremblay) Hey ! It's me ! :)
+> [  4.075053] (6:worker@Bourassa) Received "Task_18"
+> [  4.075053] (6:worker@Bourassa) Processing "Task_18"
+> [  4.077318] (1:master@Tremblay) Sent
+> [  4.077318] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
+> [  4.077318] (2:worker@Tremblay) Received "Task_19"
+> [  4.077318] (2:worker@Tremblay) Processing "Task_19"
+> [  4.096333] (3:worker@Jupiter) Received "finalize"
+> [  4.096333] (3:worker@Jupiter) I'm done. See you!
+> [  4.122041] (4:worker@Fafard) Received "finalize"
+> [  4.122041] (4:worker@Fafard) I'm done. See you!
+> [  4.587028] (2:worker@Tremblay) "Task_19" done
+> [  4.946871] (5:worker@Ginette) "Task_17" done
+> [  4.963423] (5:worker@Ginette) Received "finalize"
+> [  4.963423] (5:worker@Ginette) I'm done. See you!
+> [  5.106151] (6:worker@Bourassa) "Task_18" done
+> [  5.131590] (6:worker@Bourassa) Received "finalize"
+> [  5.131590] (6:worker@Bourassa) I'm done. See you!
+> [  5.131785] (0:maestro@) Simulation time 5.13179
+> [  5.131785] (1:master@Tremblay) Goodbye now!
+> [  5.131785] (2:worker@Tremblay) Received "finalize"
+> [  5.131785] (2:worker@Tremblay) I'm done. See you!
+
+p Testing a simple master/worker example application
+
+! output sort 19
+$ $SG_TEST_EXENV ${bindir:=.}/masterworker$EXEEXT ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterworker/masterworker_d.xml --cfg=network/crosstraffic:0 --cfg=cpu/optim:TI "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+> [  0.000000] (0:maestro@) Configuration change: Set 'network/crosstraffic' to '0'
+> [  0.000000] (0:maestro@) Configuration change: Set 'cpu/optim' to 'TI'
+> [  0.000000] (1:master@Tremblay) Got 5 workers and 20 tasks to process
+> [  0.000000] (1:master@Tremblay) Sending "Task_0" to "Jupiter"
+> [  0.165962] (1:master@Tremblay) Sent
+> [  0.165962] (1:master@Tremblay) Sending "Task_1" to "Fafard"
+> [  0.165962] (3:worker@Jupiter) Received "Task_0"
+> [  0.165962] (3:worker@Jupiter) Processing "Task_0"
+> [  0.384115] (1:master@Tremblay) Sent
+> [  0.384115] (1:master@Tremblay) Sending "Task_2" to "Ginette"
+> [  0.384115] (4:worker@Fafard) Received "Task_1"
+> [  0.384115] (4:worker@Fafard) Processing "Task_1"
+> [  0.524575] (1:master@Tremblay) Sent
+> [  0.524575] (1:master@Tremblay) Sending "Task_3" to "Bourassa"
+> [  0.524575] (5:worker@Ginette) Received "Task_2"
+> [  0.524575] (5:worker@Ginette) Processing "Task_2"
+> [  0.740447] (1:master@Tremblay) Sent
+> [  0.740447] (1:master@Tremblay) Sending "Task_4" to "Tremblay"
+> [  0.740447] (1:master@Tremblay) Hey ! It's me ! :)
+> [  0.740447] (6:worker@Bourassa) Received "Task_3"
+> [  0.740447] (6:worker@Bourassa) Processing "Task_3"
+> [  0.742786] (1:master@Tremblay) Sent
+> [  0.742786] (1:master@Tremblay) Sending "Task_5" to "Jupiter"
+> [  0.742786] (2:worker@Tremblay) Received "Task_4"
+> [  0.742786] (2:worker@Tremblay) Processing "Task_4"
+> [  0.821304] (3:worker@Jupiter) "Task_0" done
+> [  0.987266] (1:master@Tremblay) Sent
+> [  0.987266] (1:master@Tremblay) Sending "Task_6" to "Fafard"
+> [  0.987266] (3:worker@Jupiter) Received "Task_5"
+> [  0.987266] (3:worker@Jupiter) Processing "Task_5"
+> [  1.039457] (4:worker@Fafard) "Task_1" done
+> [  1.252495] (2:worker@Tremblay) "Task_4" done
+> [  1.257610] (1:master@Tremblay) Sent
+> [  1.257610] (1:master@Tremblay) Sending "Task_7" to "Ginette"
+> [  1.257610] (4:worker@Fafard) Received "Task_6"
+> [  1.257610] (4:worker@Fafard) Processing "Task_6"
+> [  1.555672] (5:worker@Ginette) "Task_2" done
+> [  1.642608] (3:worker@Jupiter) "Task_5" done
+> [  1.696132] (1:master@Tremblay) Sent
+> [  1.696132] (1:master@Tremblay) Sending "Task_8" to "Bourassa"
+> [  1.696132] (5:worker@Ginette) Received "Task_7"
+> [  1.696132] (5:worker@Ginette) Processing "Task_7"
+> [  1.771545] (6:worker@Bourassa) "Task_3" done
+> [  1.912953] (4:worker@Fafard) "Task_6" done
+> [  1.987417] (1:master@Tremblay) Sent
+> [  1.987417] (1:master@Tremblay) Sending "Task_9" to "Tremblay"
+> [  1.987417] (1:master@Tremblay) Hey ! It's me ! :)
+> [  1.987417] (6:worker@Bourassa) Received "Task_8"
+> [  1.987417] (6:worker@Bourassa) Processing "Task_8"
+> [  1.989756] (1:master@Tremblay) Sent
+> [  1.989756] (1:master@Tremblay) Sending "Task_10" to "Jupiter"
+> [  1.989756] (2:worker@Tremblay) Received "Task_9"
+> [  1.989756] (2:worker@Tremblay) Processing "Task_9"
+> [  2.155718] (1:master@Tremblay) Sent
+> [  2.155718] (1:master@Tremblay) Sending "Task_11" to "Fafard"
+> [  2.155718] (3:worker@Jupiter) Received "Task_10"
+> [  2.155718] (3:worker@Jupiter) Processing "Task_10"
+> [  2.373871] (1:master@Tremblay) Sent
+> [  2.373871] (1:master@Tremblay) Sending "Task_12" to "Ginette"
+> [  2.373871] (4:worker@Fafard) Received "Task_11"
+> [  2.373871] (4:worker@Fafard) Processing "Task_11"
+> [  2.499466] (2:worker@Tremblay) "Task_9" done
+> [  2.727230] (5:worker@Ginette) "Task_7" done
+> [  2.811060] (3:worker@Jupiter) "Task_10" done
+> [  2.867690] (1:master@Tremblay) Sent
+> [  2.867690] (1:master@Tremblay) Sending "Task_13" to "Bourassa"
+> [  2.867690] (5:worker@Ginette) Received "Task_12"
+> [  2.867690] (5:worker@Ginette) Processing "Task_12"
+> [  3.018515] (6:worker@Bourassa) "Task_8" done
+> [  3.029213] (4:worker@Fafard) "Task_11" done
+> [  3.234387] (1:master@Tremblay) Sent
+> [  3.234387] (1:master@Tremblay) Sending "Task_14" to "Tremblay"
+> [  3.234387] (1:master@Tremblay) Hey ! It's me ! :)
+> [  3.234387] (6:worker@Bourassa) Received "Task_13"
+> [  3.234387] (6:worker@Bourassa) Processing "Task_13"
+> [  3.236726] (1:master@Tremblay) Sent
+> [  3.236726] (1:master@Tremblay) Sending "Task_15" to "Jupiter"
+> [  3.236726] (2:worker@Tremblay) Received "Task_14"
+> [  3.236726] (2:worker@Tremblay) Processing "Task_14"
+> [  3.402688] (1:master@Tremblay) Sent
+> [  3.402688] (1:master@Tremblay) Sending "Task_16" to "Fafard"
+> [  3.402688] (3:worker@Jupiter) Received "Task_15"
+> [  3.402688] (3:worker@Jupiter) Processing "Task_15"
+> [  3.620841] (1:master@Tremblay) Sent
+> [  3.620841] (1:master@Tremblay) Sending "Task_17" to "Ginette"
+> [  3.620841] (4:worker@Fafard) Received "Task_16"
+> [  3.620841] (4:worker@Fafard) Processing "Task_16"
+> [  3.746436] (2:worker@Tremblay) "Task_14" done
+> [  3.898788] (5:worker@Ginette) "Task_12" done
+> [  4.039247] (1:master@Tremblay) Sent
+> [  4.039247] (1:master@Tremblay) Sending "Task_18" to "Bourassa"
+> [  4.039247] (5:worker@Ginette) Received "Task_17"
+> [  4.039247] (5:worker@Ginette) Processing "Task_17"
+> [  4.058030] (3:worker@Jupiter) "Task_15" done
+> [  4.265485] (6:worker@Bourassa) "Task_13" done
+> [  4.276183] (4:worker@Fafard) "Task_16" done
+> [  4.481357] (1:master@Tremblay) Sent
+> [  4.481357] (1:master@Tremblay) Sending "Task_19" to "Tremblay"
+> [  4.481357] (1:master@Tremblay) Hey ! It's me ! :)
+> [  4.481357] (6:worker@Bourassa) Received "Task_18"
+> [  4.481357] (6:worker@Bourassa) Processing "Task_18"
+> [  4.483696] (1:master@Tremblay) Sent
+> [  4.483696] (1:master@Tremblay) All tasks have been dispatched. Let's tell everybody the computation is over.
+> [  4.483696] (2:worker@Tremblay) Received "Task_19"
+> [  4.483696] (2:worker@Tremblay) Processing "Task_19"
+> [  4.498896] (3:worker@Jupiter) Received "finalize"
+> [  4.498896] (3:worker@Jupiter) I'm done. See you!
+> [  4.519447] (4:worker@Fafard) Received "finalize"
+> [  4.519447] (4:worker@Fafard) I'm done. See you!
+> [  4.993406] (2:worker@Tremblay) "Task_19" done
+> [  5.070345] (5:worker@Ginette) "Task_17" done
+> [  5.083577] (5:worker@Ginette) Received "finalize"
+> [  5.083577] (5:worker@Ginette) I'm done. See you!
+> [  5.512455] (6:worker@Bourassa) "Task_18" done
+> [  5.532791] (6:worker@Bourassa) Received "finalize"
+> [  5.532791] (6:worker@Bourassa) I'm done. See you!
+> [  5.532947] (0:maestro@) Simulation time 5.53295
+> [  5.532947] (1:master@Tremblay) Goodbye now!
+> [  5.532947] (2:worker@Tremblay) Received "finalize"
+> [  5.532947] (2:worker@Tremblay) I'm done. See you!
+
diff --git a/examples/msg/masterworker/masterworker_d.xml b/examples/msg/masterworker/masterworker_d.xml
new file mode 100644 (file)
index 0000000..4746b97
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <!-- The master process (with some arguments) -->
+  <process host="Tremblay" function="master">
+     <argument value="20"/>       <!-- Number of tasks -->
+     <argument value="50000000"/>  <!-- Computation size of tasks -->
+     <argument value="1000000"/>   <!-- Communication size of tasks -->
+     <argument value="Jupiter"/>  <!-- First worker -->
+     <argument value="Fafard"/>   <!-- Second worker -->
+     <argument value="Ginette"/>  <!-- Third worker -->
+     <argument value="Bourassa"/> <!-- Last worker -->
+     <argument value="Tremblay"/> <!-- Me! I can work too! -->
+  </process>
+  <!-- The worker process (with no argument) -->
+  <process host="Tremblay" function="worker" on_failure="RESTART"/>
+  <process host="Jupiter" function="worker" on_failure="RESTART"/>
+  <process host="Fafard" function="worker" on_failure="RESTART"/>
+  <process host="Ginette" function="worker" on_failure="RESTART"/>
+  <process host="Bourassa" function="worker" on_failure="RESTART"/>
+</platform>
index 915c5c8..661289a 100644 (file)
@@ -6,7 +6,7 @@
       <argument value="Jupiter"/>
       <argument value="1"/>
   </process>
-  <process host="Jupiter" function="slave">
+  <process host="Jupiter" function="worker">
     <argument value="1"/>
   </process>
 </platform>
index ee686fd..b74c49c 100644 (file)
@@ -6,7 +6,7 @@
       <argument value="Jupiter"/>
       <argument value="1"/>
   </process>
-  <process host="Jupiter" function="slave">
+  <process host="Jupiter" function="worker">
     <argument value="1"/>
   </process>
   <process host="Fafard" function="master">
@@ -14,7 +14,7 @@
       <argument value="Ginette"/>
       <argument value="2"/>
   </process>
-  <process host="Ginette" function="slave">
+  <process host="Ginette" function="worker">
     <argument value="2"/>
   </process>
   <process host="Bourassa" function="master">
@@ -22,7 +22,7 @@
       <argument value="Lovelace"/>
       <argument value="3"/>
   </process>
-  <process host="Lovelace" function="slave">
+  <process host="Lovelace" function="worker">
     <argument value="3"/>
   </process>
   <process host="Bourassa" function="master" start_time="2.0">
@@ -30,7 +30,7 @@
       <argument value="Lovelace"/>
       <argument value="4"/>
   </process>
-  <process host="Lovelace" function="slave">
+  <process host="Lovelace" function="worker">
     <argument value="4"/>
   </process>
   <process host="Lovelace" function="timer">
index 41da034..2aa4d11 100644 (file)
@@ -6,7 +6,7 @@
       <argument value="Jupiter"/>
       <argument value="1"/>
   </process>
-  <process host="Jupiter" function="slave">
+  <process host="Jupiter" function="worker">
     <argument value="1"/>
   </process>
   <process host="Fafard" function="master">
@@ -14,7 +14,7 @@
       <argument value="Ginette"/>
       <argument value="2"/>
   </process>
-  <process host="Ginette" function="slave">
+  <process host="Ginette" function="worker">
     <argument value="2"/>
   </process>
   <process host="Bourassa" function="master">
@@ -22,7 +22,7 @@
       <argument value="Lovelace"/>
       <argument value="3"/>
   </process>
-  <process host="Lovelace" function="slave">
+  <process host="Lovelace" function="worker">
     <argument value="3"/>
   </process>
 </platform>
index 212bca5..95d99dd 100644 (file)
@@ -6,7 +6,7 @@
       <argument value="C1"/>
       <argument value="1"/>
   </process>
-  <process host="C1" function="slave">
+  <process host="C1" function="worker">
     <argument value="1"/>
   </process>
   <process host="S1" function="master">
@@ -14,7 +14,7 @@
       <argument value="C1"/>
       <argument value="2"/>
   </process>
-  <process host="C1" function="slave">
+  <process host="C1" function="worker">
     <argument value="2"/>
   </process>
   <process host="S1" function="master">
@@ -22,7 +22,7 @@
       <argument value="C1"/>
       <argument value="3"/>
   </process>
-  <process host="C1" function="slave">
+  <process host="C1" function="worker">
     <argument value="3"/>
   </process>
   <process host="C1" function="master">
@@ -30,7 +30,7 @@
       <argument value="S1"/>
       <argument value="4"/>
   </process>
-  <process host="S1" function="slave">
+  <process host="S1" function="worker">
     <argument value="4"/>
   </process>
 </platform>
index 0fd2359..4288e63 100644 (file)
       <argument value="C2"/>
       <argument value="1"/>
   </process>
-  <process host="C1" function="slave">
+  <process host="C1" function="worker">
       <argument value="0"/>
   </process>
-  <process host="C2" function="slave">
+  <process host="C2" function="worker">
       <argument value="1"/>
   </process>
 </platform>
index 9a8df98..9c2ecf7 100644 (file)
@@ -30,7 +30,7 @@ int bool_printed = 0;
 double start_time, end_time, elapsed_time;
 double gl_data_size[NTASKS];
 msg_task_t gl_task_array[NTASKS];
-const char *slavenames[NTASKS];
+const char *workernames[NTASKS];
 const char *masternames[NTASKS];
 int gl_task_array_id = 0;
 int count_finished = 0;
@@ -48,11 +48,11 @@ static int master(int argc, char *argv[])
   /* data size */
   double task_comm_size = xbt_str_parse_double(argv[1], "Invalid task communication size: %s");
 
-  /* slave name */
-  char *slavename = argv[2];
+  /* worker name */
+  char *workername = argv[2];
   int id = xbt_str_parse_int(argv[3], "Invalid ID as argument 3: %s");   //unique id to control statistics
   char *id_alias = bprintf("flow_%d", id);
-  slavenames[id] = slavename;
+  workernames[id] = workername;
   TRACE_category(id_alias);
 
   masternames[id] = MSG_host_get_name(MSG_host_self());
@@ -65,7 +65,7 @@ static int master(int argc, char *argv[])
     gl_data_size[id] = task_comm_size;
   }
 
-  MSG_host_by_name(slavename);
+  MSG_host_by_name(workername);
 
   count_finished++;
   timer_start = 1 ;
@@ -106,14 +106,14 @@ static int timer(int argc, char *argv[])
   return 0;
 }
 
-static int slave(int argc, char *argv[])
+static int worker(int argc, char *argv[])
 {
   msg_task_t task = NULL;
   char id_alias[10];
 
   xbt_assert(argc==2,"Strange number of arguments expected 1 got %d", argc - 1);
 
-  XBT_DEBUG ("Slave started");
+  XBT_DEBUG ("Worker started");
 
   int id = xbt_str_parse_int(argv[1], "Invalid id: %s");
   sprintf(id_alias, "%d", id);
@@ -130,7 +130,7 @@ static int slave(int argc, char *argv[])
   elapsed_time = MSG_get_clock() - start_time;
 
   XBT_INFO("FLOW[%d] : Receive %.0f bytes from %s to %s", id, MSG_task_get_bytes_amount(task), masternames[id],
-           slavenames[id]);
+           workernames[id]);
 //  MSG_task_execute(task);
   MSG_task_destroy(task);
 
@@ -151,7 +151,7 @@ int main(int argc, char *argv[])
   TRACE_declare_mark("endmark");
 
   MSG_function_register("master", master);
-  MSG_function_register("slave", slave);
+  MSG_function_register("worker", worker);
   MSG_function_register("timer", timer);
 
   MSG_launch_application(argv[2]);
index 50c83db..869ec46 100644 (file)
@@ -7,65 +7,65 @@ p 3hosts 2links
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/small_platform_one_link_routes.xml ${srcdir:=.}/examples/msg/ns3/3hosts_2links_d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
 > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
-> [Jupiter:slave(2)] [msg_test/INFO] FLOW[1] : Receive 100 bytes from Tremblay to Jupiter
+> [Jupiter:worker(2)] [msg_test/INFO] FLOW[1] : Receive 100 bytes from Tremblay to Jupiter
 
 p 6hosts 3links
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/small_platform_one_link_routes.xml ${srcdir:=.}/examples/msg/ns3/3links_d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
 > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
-> [Jupiter:slave(2)] [msg_test/INFO] FLOW[1] : Receive 100000 bytes from Tremblay to Jupiter
-> [Ginette:slave(4)] [msg_test/INFO] FLOW[2] : Receive 1000000 bytes from Fafard to Ginette
-> [Lovelace:slave(6)] [msg_test/INFO] FLOW[3] : Receive 2000000 bytes from Bourassa to Lovelace
+> [Jupiter:worker(2)] [msg_test/INFO] FLOW[1] : Receive 100000 bytes from Tremblay to Jupiter
+> [Ginette:worker(4)] [msg_test/INFO] FLOW[2] : Receive 1000000 bytes from Fafard to Ginette
+> [Lovelace:worker(6)] [msg_test/INFO] FLOW[3] : Receive 2000000 bytes from Bourassa to Lovelace
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/small_platform_one_link_routes.xml ${srcdir:=.}/examples/msg/ns3/3links-timer_d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
 > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
-> [Jupiter:slave(2)] [msg_test/INFO] FLOW[1] : Receive 100000 bytes from Tremblay to Jupiter
-> [Ginette:slave(4)] [msg_test/INFO] FLOW[2] : Receive 1000000 bytes from Fafard to Ginette
-> [Lovelace:slave(6)] [msg_test/INFO] FLOW[3] : Receive 2000000 bytes from Bourassa to Lovelace
-> [Lovelace:slave(7)] [msg_test/INFO] FLOW[4] : Receive 2000000 bytes from Bourassa to Lovelace
+> [Jupiter:worker(2)] [msg_test/INFO] FLOW[1] : Receive 100000 bytes from Tremblay to Jupiter
+> [Ginette:worker(4)] [msg_test/INFO] FLOW[2] : Receive 1000000 bytes from Fafard to Ginette
+> [Lovelace:worker(6)] [msg_test/INFO] FLOW[3] : Receive 2000000 bytes from Bourassa to Lovelace
+> [Lovelace:worker(7)] [msg_test/INFO] FLOW[4] : Receive 2000000 bytes from Bourassa to Lovelace
 
 p One cluster
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/cluster.xml ${srcdir:=.}/examples/msg/ns3/one_cluster_d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
 > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
-> [node-6.acme.org:slave(2)] [msg_test/INFO] FLOW[1] : Receive 100 bytes from node-2.acme.org to node-6.acme.org
+> [node-6.acme.org:worker(2)] [msg_test/INFO] FLOW[1] : Receive 100 bytes from node-2.acme.org to node-6.acme.org
 
 p Two clusters
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/clusters_routing_full.xml ${srcdir:=.}/examples/msg/ns3/two_clusters_d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
 > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
-> [node-16.acme.org:slave(2)] [msg_test/INFO] FLOW[1] : Receive 100 bytes from node-3.acme.org to node-16.acme.org
+> [node-16.acme.org:worker(2)] [msg_test/INFO] FLOW[1] : Receive 100 bytes from node-3.acme.org to node-16.acme.org
 
 p Dogbone
 
 ! timeout 10
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/dogbone.xml ${srcdir:=.}/examples/msg/ns3/dogbone_d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
 > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
-> [C1:slave(3)] [msg_test/INFO] FLOW[0] : Receive 20000000 bytes from S1 to C1
-> [C2:slave(4)] [msg_test/INFO] FLOW[1] : Receive 20000000 bytes from S2 to C2
+> [C1:worker(3)] [msg_test/INFO] FLOW[0] : Receive 20000000 bytes from S1 to C1
+> [C2:worker(4)] [msg_test/INFO] FLOW[1] : Receive 20000000 bytes from S2 to C2
 
 p 2hosts 1link
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/onelink.xml ${srcdir:=.}/examples/msg/ns3/onelink_d.xml --cfg=network/model:NS3 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
 > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
-> [C1:slave(2)] [msg_test/INFO] FLOW[1] : Receive 1000000 bytes from S1 to C1
+> [C1:worker(2)] [msg_test/INFO] FLOW[1] : Receive 1000000 bytes from S1 to C1
 
 p Crosstraffic TCP option DISABLED
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/crosstraffic.xml ${srcdir:=.}/examples/msg/ns3/crosstraffic_d.xml --cfg=network/model:NS3 --cfg=network/crosstraffic:0 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
 > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
 > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/crosstraffic' to '0'
-> [C1:slave(4)] [msg_test/INFO] FLOW[2] : Receive 1000000 bytes from S1 to C1
-> [C1:slave(2)] [msg_test/INFO] FLOW[1] : Receive 1000000 bytes from S1 to C1
-> [C1:slave(6)] [msg_test/INFO] FLOW[3] : Receive 1000000 bytes from S1 to C1
-> [S1:slave(8)] [msg_test/INFO] FLOW[4] : Receive 1000000 bytes from C1 to S1
+> [C1:worker(4)] [msg_test/INFO] FLOW[2] : Receive 1000000 bytes from S1 to C1
+> [C1:worker(2)] [msg_test/INFO] FLOW[1] : Receive 1000000 bytes from S1 to C1
+> [C1:worker(6)] [msg_test/INFO] FLOW[3] : Receive 1000000 bytes from S1 to C1
+> [S1:worker(8)] [msg_test/INFO] FLOW[4] : Receive 1000000 bytes from C1 to S1
 
 p Crosstraffic TCP option ENABLED
 
 $ ns3/ns3 ${srcdir:=.}/examples/platforms/crosstraffic.xml ${srcdir:=.}/examples/msg/ns3/crosstraffic_d.xml --cfg=network/model:NS3 --cfg=network/crosstraffic:1 "--log=root.fmt:[%h:%P(%i)]%e[%c/%p]%e%m%n"
 > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'NS3'
 > [:maestro(0)] [xbt_cfg/INFO] Configuration change: Set 'network/crosstraffic' to '1'
-> [C1:slave(4)] [msg_test/INFO] FLOW[2] : Receive 1000000 bytes from S1 to C1
-> [C1:slave(2)] [msg_test/INFO] FLOW[1] : Receive 1000000 bytes from S1 to C1
-> [C1:slave(6)] [msg_test/INFO] FLOW[3] : Receive 1000000 bytes from S1 to C1
-> [S1:slave(8)] [msg_test/INFO] FLOW[4] : Receive 1000000 bytes from C1 to S1
+> [C1:worker(4)] [msg_test/INFO] FLOW[2] : Receive 1000000 bytes from S1 to C1
+> [C1:worker(2)] [msg_test/INFO] FLOW[1] : Receive 1000000 bytes from S1 to C1
+> [C1:worker(6)] [msg_test/INFO] FLOW[3] : Receive 1000000 bytes from S1 to C1
+> [S1:worker(8)] [msg_test/INFO] FLOW[4] : Receive 1000000 bytes from C1 to S1
index 98102d2..9c3dd43 100644 (file)
@@ -6,7 +6,7 @@
       <argument value="node-6.acme.org"/>
       <argument value="1"/>
   </process>
-  <process host="node-6.acme.org" function="slave">
+  <process host="node-6.acme.org" function="worker">
     <argument value="1"/>
   </process>
 </platform>
index a3450be..39113f5 100644 (file)
@@ -6,7 +6,7 @@
       <argument value="C1"/>
       <argument value="1"/>
   </process>
-  <process host="C1" function="slave">
+  <process host="C1" function="worker">
     <argument value="1"/>
   </process>
 </platform>
index 81d1aef..99f2583 100644 (file)
@@ -6,7 +6,7 @@
       <argument value="node-16.acme.org"/>
       <argument value="1"/>
   </process>
-  <process host="node-16.acme.org" function="slave">
+  <process host="node-16.acme.org" function="worker">
     <argument value="1"/>
   </process>
 </platform>
diff --git a/examples/msg/priority/priority_d.xml b/examples/msg/priority/priority_d.xml
deleted file mode 100644 (file)
index 7a6c462..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version='1.0'?>
-<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
-<platform version="4">
-<!-- For using with ping_pong, platform_sendrecv.xml -->
-
-  <process host="Fafard" function="test">
-       <argument value="76296000"/>
-       <argument value="1.0"/>
-  </process>
-  <process host="Fafard" function="test">
-       <argument value="76296000"/>
-       <argument value="2.0"/>
-  </process>
-</platform>
similarity index 77%
rename from examples/msg/priority/priority.c
rename to examples/msg/task-priority/task-priority.c
index 6b951e4..37f477b 100644 (file)
@@ -15,17 +15,11 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example")
 
 static int test(int argc, char *argv[])
 {
-  double computation_amount = 0.0;
-  double priority = 1.0;
-  msg_task_t task = NULL;
-
-  XBT_ATTRIB_UNUSED int res = sscanf(argv[1], "%lg", &computation_amount);
-  xbt_assert(res, "Invalid argument %s\n", argv[1]);
-  res = sscanf(argv[2], "%lg", &priority);
-  xbt_assert(res, "Invalid argument %s\n", argv[2]);
+  double computation_amount = xbt_str_parse_double(argv[1], "Invalid argument: %s");
+  double priority = xbt_str_parse_double(argv[2], "Invalid argument: %s");
 
   XBT_INFO("Hello! Running a task of size %g with priority %g", computation_amount, priority);
-  task = MSG_task_create("Task", computation_amount, 0.0, NULL);
+  msg_task_t task = MSG_task_create("Task", computation_amount, 0.0, NULL);
   MSG_task_set_priority(task, priority);
 
   MSG_task_execute(task);
similarity index 60%
rename from examples/msg/priority/priority.tesh
rename to examples/msg/task-priority/task-priority.tesh
index 34f1712..57fe178 100644 (file)
@@ -1,9 +1,7 @@
 #! ./tesh
 
-p Testing a simple master/slave example application
-
 ! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/priority$EXEEXT ${srcdir:=.}/small_platform.xml  ${srcdir:=.}/../msg/priority/priority_d.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ $SG_TEST_EXENV ${bindir:=.}/task-priority$EXEEXT ${srcdir:=.}/small_platform.xml  ${srcdir:=.}/../msg/task-priority/task-priority_d.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (1:test@Fafard) Hello! Running a task of size 7.6296e+07 with priority 1
 > [  0.000000] (2:test@Fafard) Hello! Running a task of size 7.6296e+07 with priority 2
 > [  1.500000] (2:test@Fafard) Goodbye now!
diff --git a/examples/msg/task-priority/task-priority_d.xml b/examples/msg/task-priority/task-priority_d.xml
new file mode 100644 (file)
index 0000000..dc50e15
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
+<platform version="4">
+  <process host="Fafard" function="test"> <argument value="76296000"/> <argument value="1.0"/> </process>
+  <process host="Fafard" function="test"> <argument value="76296000"/> <argument value="2.0"/> </process>
+</platform>
index bc270cd..4dc5d71 100644 (file)
@@ -25,7 +25,7 @@ static int host(int argc, char *argv[])
   char mailbox[256];
   msg_task_t task = NULL;
   XBT_ATTRIB_UNUSED int res;
-  if (host_number == 0){ //master  send then receive
+  if (host_number == 0){ //root: send then receive
     sprintf(mailbox, "%d", host_number+1);
     task = MSG_task_create("Token", task_comp_size, task_comm_size, NULL);
     XBT_INFO("Host \"%d\" send '%s' to Host \"%s\"",host_number,task->name,mailbox);
@@ -35,7 +35,7 @@ static int host(int argc, char *argv[])
     xbt_assert(res == MSG_OK, "MSG_task_get failed");
     XBT_INFO("Host \"%d\" received \"%s\"",host_number, MSG_task_get_name(task));
     MSG_task_destroy(task);
-  } else{ //slave receive then send
+  } else{ // receive then send
     res = MSG_task_receive(&(task), MSG_process_get_name(MSG_process_self()));
     xbt_assert(res == MSG_OK, "MSG_task_get failed");
     XBT_INFO("Host \"%d\" received \"%s\"",host_number, MSG_task_get_name(task));
index acc12b3..704ddc1 100644 (file)
@@ -6,8 +6,8 @@
 
 /** @addtogroup MSG_examples
  * 
- * - <b>tracing/categories.c</b> This is a master/slave program where the master creates tasks, send them to the slaves.
- * For each task received, the slave executes it and then destroys it. This program declares several tracing categories
+ * - <b>tracing/categories.c</b> This is a master/worker program. The master creates tasks and send them to workers.
+ * For each task received, the worker executes it and then destroys it. This program declares several tracing categories
  * that are used to classify tasks. When the program is executed, the tracing mechanism registers the resource
  * utilization of hosts and links according to these categories. You might want to run this program with the following
  * parameters:
@@ -24,7 +24,7 @@
 static int master(int argc, char *argv[])
 {
   long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
-  long slaves_count = xbt_str_parse_int(argv[4], "Invalid amount of slaves: %s");
+  long workers_count = xbt_str_parse_int(argv[4], "Invalid amount of workers: %s");
 
   int i;
   for (i = 0; i < number_of_tasks; i++) {
@@ -44,7 +44,7 @@ static int master(int argc, char *argv[])
     MSG_task_send(task, "master_mailbox");
   }
 
-  for (i = 0; i < slaves_count; i++) {
+  for (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");
@@ -53,7 +53,7 @@ static int master(int argc, char *argv[])
   return 0;
 }
 
-static int slave(int argc, char *argv[])
+static int worker(int argc, char *argv[])
 {
   msg_task_t task = NULL;
 
@@ -87,7 +87,7 @@ int main(int argc, char *argv[])
   TRACE_category_with_color ("finalize", "0 0 0");//black
 
   MSG_function_register("master", master);
-  MSG_function_register("slave", slave);
+  MSG_function_register("worker", worker);
   MSG_launch_application(argv[2]);
 
   MSG_main();
index cbbde48..12486a1 100644 (file)
@@ -1,8 +1,8 @@
 #! ./tesh
 
-p Tracing multiple categories master/slave application
+p Tracing multiple categories master/worker application
 
-$ $SG_TEST_EXENV ${bindir:=.}/trace-categories$EXEEXT --cfg=tracing:yes --cfg=tracing/buffer:yes --cfg=tracing/filename:categories.trace --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:categories.cat.plist --cfg=viva/uncategorized:categories.uncat.plist ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterslave-mailbox/masterslave-mailbox_d.xml
+$ $SG_TEST_EXENV ${bindir:=.}/trace-categories$EXEEXT --cfg=tracing:yes --cfg=tracing/buffer:yes --cfg=tracing/filename:categories.trace --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:categories.cat.plist --cfg=viva/uncategorized:categories.uncat.plist ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterworker-mailbox/masterworker-mailbox_d.xml
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/buffer' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'categories.trace'
index ba3eb08..c9c4503 100644 (file)
@@ -27,7 +27,7 @@ static void create_and_execute_task (void)
   MSG_task_destroy (task);
 }
 
-static int master(int argc, char *argv[])
+static int trace_fun(int argc, char *argv[])
 {
   //Set initial values for the link user variables
   //This example uses source and destination where source and destination are the name of hosts inthe platform file.
@@ -73,9 +73,9 @@ int main(int argc, char *argv[])
   TRACE_link_variable_declare("Link_Capacity");
   TRACE_link_variable_declare_with_color ("Link_Utilization", "0.9 0.1 0.1");
 
-  //register "master" and "slave" functions and launch deployment
-  MSG_function_register("master", master);
-  MSG_function_register("slave", master);
+  //register functions and launch deployment
+  MSG_function_register("master", trace_fun);
+  MSG_function_register("worker", trace_fun);
   MSG_launch_application(argv[2]);
 
   MSG_main();
index 87f0aad..44bc097 100644 (file)
@@ -1,7 +1,7 @@
 #! ./tesh
 
 p Trace user variables associated to links of the platform file
-$ $SG_TEST_EXENV ${bindir:=.}/trace-link-srcdst-user-variables$EXEEXT --cfg=tracing:yes --cfg=tracing/platform:yes ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterslave-mailbox/masterslave-mailbox_d.xml
+$ $SG_TEST_EXENV ${bindir:=.}/trace-link-srcdst-user-variables$EXEEXT --cfg=tracing:yes --cfg=tracing/platform:yes ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterworker-mailbox/masterworker-mailbox_d.xml
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to 'yes'
 
index cb9f44f..5c97ac6 100644 (file)
@@ -24,7 +24,7 @@ static void create_and_execute_task (void)
   MSG_task_destroy (task);
 }
 
-static int master(int argc, char *argv[])
+static int trace_fun(int argc, char *argv[])
 {
   //set initial values for the link user variables this example only shows for links identified by "6" and "3" in the
   //platform file
@@ -69,9 +69,9 @@ int main(int argc, char *argv[])
   TRACE_link_variable_declare("Link_Capacity");
   TRACE_link_variable_declare_with_color ("Link_Utilization", "0.9 0.1 0.1");
 
-  //register "master" and "slave" functions and launch deployment
-  MSG_function_register("master", master);
-  MSG_function_register("slave", master);
+  //register functions and launch deployment
+  MSG_function_register("master", trace_fun);
+  MSG_function_register("worker", trace_fun);
   MSG_launch_application(argv[2]);
 
   MSG_main();
index ca53d3d..75ef0a1 100644 (file)
@@ -1,7 +1,7 @@
 #! ./tesh
 
 p Trace user variables associated to links of the platform file
-$ $SG_TEST_EXENV ${bindir:=.}/trace-link-user-variables$EXEEXT --cfg=tracing:yes --cfg=tracing/platform:yes ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterslave-mailbox/masterslave-mailbox_d.xml
+$ $SG_TEST_EXENV ${bindir:=.}/trace-link-user-variables$EXEEXT --cfg=tracing:yes --cfg=tracing/platform:yes ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterworker-mailbox/masterworker-mailbox_d.xml
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to 'yes'
 
@@ -6,8 +6,8 @@
 
 /** @addtogroup MSG_examples
  * 
- * - <b>tracing/ms.c</b> This is a master/slave program where the master creates tasks, send them to the slaves. For
- * each task received, the slave executes it and then destroys it. This program uses several tracing functions that
+ * - <b>tracing/ms.c</b> This is a master/worker program where the master creates tasks, send them to the workers. For
+ * each task received, the worker executes it and then destroys it. This program uses several tracing functions that
  * enable the tracing of categorized resource utilization, the use of trace marks, and user variables associated to the
  * hosts of the platform file. You might want to run this program with the following parameters:
  * --cfg=tracing/categorized:yes
@@ -26,7 +26,7 @@ static int master(int argc, char *argv[])
   long number_of_tasks = xbt_str_parse_int(argv[1], "Invalid amount of tasks: %s");
   double task_comp_size = xbt_str_parse_double(argv[2], "Invalid computational size: %s");
   double task_comm_size = xbt_str_parse_double(argv[3], "Invalid communication size: %s");
-  long slaves_count = xbt_str_parse_int(argv[4], "Invalid amount of slaves: %s");
+  long workers_count = xbt_str_parse_int(argv[4], "Invalid amount of workers: %s");
 
   //setting the variable "is_master" (previously declared) to value 1
   TRACE_host_variable_set(MSG_host_get_name(MSG_host_self()), "is_master", 1);
@@ -47,7 +47,7 @@ static int master(int argc, char *argv[])
   }
   TRACE_mark("msmark", "finish_send_tasks");
 
-  for (i = 0; i < slaves_count; i++) {
+  for (i = 0; i < workers_count; i++) {
     msg_task_t finalize = MSG_task_create("finalize", 0, 0, 0);
     MSG_task_set_category(finalize, "finalize");
     MSG_task_send(finalize, "master_mailbox");
@@ -56,11 +56,11 @@ static int master(int argc, char *argv[])
   return 0;
 }
 
-static int slave(int argc, char *argv[])
+static int worker(int argc, char *argv[])
 {
   msg_task_t task = NULL;
 
-  TRACE_host_variable_set(MSG_host_get_name(MSG_host_self()), "is_slave", 1);
+  TRACE_host_variable_set(MSG_host_get_name(MSG_host_self()), "is_worker", 1);
   TRACE_host_variable_set(MSG_host_get_name(MSG_host_self()), "task_computation", 0);
   while (1) {
     MSG_task_receive(&(task), "master_mailbox");
@@ -88,7 +88,7 @@ int main(int argc, char *argv[])
   MSG_create_environment(argv[1]);
 
   //declaring user variables
-  TRACE_host_variable_declare("is_slave");
+  TRACE_host_variable_declare("is_worker");
   TRACE_host_variable_declare("is_master");
   TRACE_host_variable_declare("task_creation");
   TRACE_host_variable_declare("task_computation");
@@ -106,7 +106,7 @@ int main(int argc, char *argv[])
   TRACE_category_with_color ("report", NULL);
 
   MSG_function_register("master", master);
-  MSG_function_register("slave", slave);
+  MSG_function_register("worker", worker);
   MSG_launch_application(argv[2]);
 
   MSG_main();
@@ -1,14 +1,14 @@
 #! ./tesh
 
-p Tracing master/slave application
-$ $SG_TEST_EXENV ${bindir:=.}/trace-masterslave$EXEEXT --cfg=tracing:yes --cfg=tracing/buffer:yes --cfg=tracing/filename:trace-masterslave.trace --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:trace-masterslave.cat.plist --cfg=viva/uncategorized:trace-masterslave.uncat.plist ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterslave-mailbox/masterslave-mailbox_d.xml
+p Tracing master/worker application
+$ $SG_TEST_EXENV ${bindir:=.}/trace-masterworker$EXEEXT --cfg=tracing:yes --cfg=tracing/buffer:yes --cfg=tracing/filename:trace-masterworker.trace --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:trace-masterworker.cat.plist --cfg=viva/uncategorized:trace-masterworker.uncat.plist ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterworker-mailbox/masterworker-mailbox_d.xml
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/buffer' to 'yes'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'trace-masterslave.trace'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'trace-masterworker.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'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/categorized' to 'trace-masterslave.cat.plist'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/uncategorized' to 'trace-masterslave.uncat.plist'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/categorized' to 'trace-masterworker.cat.plist'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/uncategorized' to 'trace-masterworker.uncat.plist'
 > [4.214821] [msg_test/INFO] Declared tracing categories:
 > [4.214821] [msg_test/INFO] request
 > [4.214821] [msg_test/INFO] finalize
@@ -17,14 +17,14 @@ $ $SG_TEST_EXENV ${bindir:=.}/trace-masterslave$EXEEXT --cfg=tracing:yes --cfg=t
 > [4.214821] [msg_test/INFO] Declared marks:
 > [4.214821] [msg_test/INFO] msmark
 
-p Tracing master/slave application with xml config
-$ $SG_TEST_EXENV ${bindir:=.}/trace-masterslave$EXEEXT ${srcdir:=.}/config_tracing.xml ${srcdir:=.}/../msg/masterslave-mailbox/masterslave-mailbox_d.xml
+p Tracing master/worker application with xml config
+$ $SG_TEST_EXENV ${bindir:=.}/trace-masterworker$EXEEXT ${srcdir:=.}/config_tracing.xml ${srcdir:=.}/../msg/masterworker-mailbox/masterworker-mailbox_d.xml
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/buffer' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/categorized' to 'trace-masterslave.cat.plist'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'trace-masterslave.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/uncategorized' to 'trace-masterslave.uncat.plist'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/categorized' to 'trace-masterworker.cat.plist'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'trace-masterworker.trace'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/uncategorized' to 'trace-masterworker.uncat.plist'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to 'yes'
 > [4.214821] [msg_test/INFO] Declared tracing categories:
 > [4.214821] [msg_test/INFO] request
@@ -34,19 +34,19 @@ $ $SG_TEST_EXENV ${bindir:=.}/trace-masterslave$EXEEXT ${srcdir:=.}/config_traci
 > [4.214821] [msg_test/INFO] Declared marks:
 > [4.214821] [msg_test/INFO] msmark
 
-p Not tracing master/slave application
-$ $SG_TEST_EXENV ${bindir:=.}/trace-masterslave$EXEEXT ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterslave-mailbox/masterslave-mailbox_d.xml
+p Not tracing master/worker application
+$ $SG_TEST_EXENV ${bindir:=.}/trace-masterworker$EXEEXT ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterworker-mailbox/masterworker-mailbox_d.xml
 
 p Testing tracing by process
-$ $SG_TEST_EXENV ${bindir:=.}/trace-masterslave$EXEEXT --cfg=tracing:yes --cfg=tracing/msg/process:yes --cfg=tracing/buffer:yes --cfg=tracing/filename:trace-masterslave.trace --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:trace-masterslave.cat.plist --cfg=viva/uncategorized:trace-masterslave.uncat.plist ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterslave-mailbox/masterslave-mailbox_d.xml
+$ $SG_TEST_EXENV ${bindir:=.}/trace-masterworker$EXEEXT --cfg=tracing:yes --cfg=tracing/msg/process:yes --cfg=tracing/buffer:yes --cfg=tracing/filename:trace-masterworker.trace --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:trace-masterworker.cat.plist --cfg=viva/uncategorized:trace-masterworker.uncat.plist ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterworker-mailbox/masterworker-mailbox_d.xml
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/msg/process' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/buffer' to 'yes'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'trace-masterslave.trace'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'trace-masterworker.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'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/categorized' to 'trace-masterslave.cat.plist'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/uncategorized' to 'trace-masterslave.uncat.plist'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/categorized' to 'trace-masterworker.cat.plist'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/uncategorized' to 'trace-masterworker.uncat.plist'
 > [4.214821] [msg_test/INFO] Declared tracing categories:
 > [4.214821] [msg_test/INFO] request
 > [4.214821] [msg_test/INFO] finalize
@@ -55,7 +55,7 @@ $ $SG_TEST_EXENV ${bindir:=.}/trace-masterslave$EXEEXT --cfg=tracing:yes --cfg=t
 > [4.214821] [msg_test/INFO] Declared marks:
 > [4.214821] [msg_test/INFO] msmark
 
-$ $SG_TEST_EXENV cat trace-masterslave.uncat.plist
+$ $SG_TEST_EXENV cat trace-masterworker.uncat.plist
 >   node = ("HOST","LINK");
 >   edge = ("0-LINK13-LINK13","0-LINK13-HOST1","0-HOST1-LINK13");
 > 
@@ -70,7 +70,7 @@ $ $SG_TEST_EXENV cat trace-masterslave.uncat.plist
 >     values = ("bandwidth_used");
 >   };
 
-$ $SG_TEST_EXENV cat trace-masterslave.cat.plist
+$ $SG_TEST_EXENV cat trace-masterworker.cat.plist
 >   node = ("HOST","LINK");
 >   edge = ("0-LINK13-LINK13","0-LINK13-HOST1","0-HOST1-LINK13");
 > 
@@ -85,4 +85,4 @@ $ $SG_TEST_EXENV cat trace-masterslave.cat.plist
 >     values = ("bcompute","breport","bfinalize","brequest");
 >   };
 
-$ rm -rf trace-masterslave.trace trace-masterslave.cat.plist trace-masterslave.uncat.plist
+$ rm -rf trace-masterworker.trace trace-masterworker.cat.plist trace-masterworker.uncat.plist
index 5e6a057..3510047 100644 (file)
@@ -17,7 +17,7 @@
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example");
 
-static int master(int argc, char *argv[])
+static int trace_fun(int argc, char *argv[])
 {
   const char *hostname = MSG_host_get_name(MSG_host_self());
   int i;
@@ -61,8 +61,8 @@ int main(int argc, char *argv[])
   TRACE_host_variable_declare("HDD_utilization");
 
   //register functions and launch deployment
-  MSG_function_register("master", master);
-  MSG_function_register("slave", master);
+  MSG_function_register("master", trace_fun);
+  MSG_function_register("worker", trace_fun);
   MSG_launch_application(argv[2]);
 
   MSG_main();
index 7e77460..42d3e50 100644 (file)
@@ -1,7 +1,7 @@
 #! ./tesh
 
 p Tracing user variables
-$ $SG_TEST_EXENV ${bindir:=.}/trace-user-variables$EXEEXT --cfg=tracing:yes  --cfg=tracing/platform:yes ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterslave-mailbox/masterslave-mailbox_d.xml
+$ $SG_TEST_EXENV ${bindir:=.}/trace-user-variables$EXEEXT --cfg=tracing:yes  --cfg=tracing/platform:yes ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterworker-mailbox/masterworker-mailbox_d.xml
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to 'yes'
 > [0.004078] [msg_test/INFO] Declared host variables:
@@ -19,4 +19,4 @@ $ $SG_TEST_EXENV ${bindir:=.}/trace-user-variables$EXEEXT --cfg=tracing:yes  --c
 $ rm -f viva_graph.plist
 
 p Not tracing user variables
-$ $SG_TEST_EXENV ${bindir:=.}/trace-user-variables$EXEEXT ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterslave-mailbox/masterslave-mailbox_d.xml
+$ $SG_TEST_EXENV ${bindir:=.}/trace-user-variables$EXEEXT ${srcdir:=.}/small_platform.xml ${srcdir:=.}/../msg/masterworker-mailbox/masterworker-mailbox_d.xml
index 9b32ad8..496876d 100644 (file)
@@ -5,9 +5,9 @@
     <prop id="tracing/uncategorized" value="yes"/>
     <prop id="tracing/buffer" value="yes"/>
     <prop id="tracing" value="yes"/>
-    <prop id="viva/categorized" value="trace-masterslave.cat.plist"/>
-    <prop id="tracing/filename" value="trace-masterslave.trace"/>
-    <prop id="viva/uncategorized" value="trace-masterslave.uncat.plist"/>
+    <prop id="viva/categorized" value="trace-masterworker.cat.plist"/>
+    <prop id="tracing/filename" value="trace-masterworker.trace"/>
+    <prop id="viva/uncategorized" value="trace-masterworker.uncat.plist"/>
     <prop id="tracing/categorized" value="yes"/>
   </config>
 
index 2e5144a..04ce05e 100644 (file)
@@ -70,6 +70,8 @@ public:
   double speed();
   int core_count();
   xbt_dict_t properties();
+  const char*property(const char*key);
+  void setProperty(const char*key, const char *value);
   xbt_swag_t processes();
   double currentPowerPeak();
   double powerPeakAt(int pstate_index);
index cfef4ff..1373a8f 100644 (file)
@@ -161,9 +161,14 @@ XBT_PUBLIC(void) xbt_cfg_dump(const char *name, const char *indent, xbt_cfg_t cf
  */
 XBT_PUBLIC(void) xbt_cfg_register(xbt_cfg_t * cfg, const char *name, const char *description,
     e_xbt_cfgelm_type_t type, int min, int max, xbt_cfg_cb_t cb_set);
+XBT_PUBLIC(void) xbt_cfg_register_double (xbt_cfg_t * cfg, const char *name, const char *desc, double default_val,    xbt_cfg_cb_t cb_set);
+XBT_PUBLIC(void) xbt_cfg_register_int    (xbt_cfg_t * cfg, const char *name, const char *desc, int default_val,       xbt_cfg_cb_t cb_set);
+XBT_PUBLIC(void) xbt_cfg_register_string (xbt_cfg_t * cfg, const char *name, const char *desc, const char*default_val,xbt_cfg_cb_t cb_set);
+XBT_PUBLIC(void) xbt_cfg_register_boolean(xbt_cfg_t * cfg, const char *name, const char *desc, const char*default_val,xbt_cfg_cb_t cb_set);
 XBT_PUBLIC(void) xbt_cfg_register_alias(xbt_cfg_t * cfg, const char *newname, const char *oldname);
 XBT_PUBLIC(void) xbt_cfg_unregister(xbt_cfg_t cfg, const char *name);
 XBT_PUBLIC(void) xbt_cfg_register_str(xbt_cfg_t * cfg, const char *entry);
+
 XBT_PUBLIC(void) xbt_cfg_aliases(xbt_cfg_t cfg);
 XBT_PUBLIC(void) xbt_cfg_help(xbt_cfg_t cfg);
 XBT_PUBLIC(void) xbt_cfg_check(xbt_cfg_t cfg);
index 1bd9794..5237dfb 100644 (file)
@@ -357,37 +357,14 @@ void TRACE_global_init(int *argc, char **argv)
 
   is_initialised = 1;
   /* name of the tracefile */
-  xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_FILENAME, "Trace file created by the instrumented SimGrid.",
-                   xbt_cfgelm_string, 1, 1, NULL);
-  xbt_cfg_setdefault_string(_sg_cfg_set, OPT_TRACING_FILENAME, "simgrid.trace");
-
-  /* tracing */
-  xbt_cfg_register(&_sg_cfg_set, OPT_TRACING, "Enable Tracing.", xbt_cfgelm_boolean, 1, 1, NULL);
-  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING, "no");
-
-  /* register platform in the trace */
-  xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_PLATFORM, "Register the platform in the trace as a hierarchy.",
-                   xbt_cfgelm_boolean, 1, 1, NULL);
-  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_PLATFORM, "no");
-
-  /* register platform in the trace */
-  xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_TOPOLOGY, "Register the platform topology in the trace as a graph.",
-                   xbt_cfgelm_boolean, 1, 1, NULL);
-  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_TOPOLOGY, "yes");
-
-  /* smpi */
-  xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI, "Tracing of the SMPI interface.", xbt_cfgelm_boolean, 1, 1, NULL);
-  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI, "no");
-
-  /* smpi grouped */
-  xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_GROUP, "Group MPI processes by host.",
-                   xbt_cfgelm_boolean, 1, 1, NULL);
-  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI_GROUP, "no");
-
-  /* smpi computing */
-  xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING,
-                   "Generate states for timing out of SMPI parts of the application", xbt_cfgelm_boolean, 1, 1, NULL);
-  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING, "no");
+  xbt_cfg_register_string (&_sg_cfg_set, OPT_TRACING_FILENAME,   "Trace file created by the instrumented SimGrid.", "simgrid.trace", NULL);
+  xbt_cfg_register_boolean(&_sg_cfg_set, OPT_TRACING,            "Enable Tracing.",                                            "no", NULL);
+  xbt_cfg_register_boolean(&_sg_cfg_set, OPT_TRACING_PLATFORM,   "Register the platform in the trace as a hierarchy.",         "no", NULL);
+  xbt_cfg_register_boolean(&_sg_cfg_set, OPT_TRACING_TOPOLOGY,   "Register the platform topology in the trace as a graph.",   "yes", NULL);
+  xbt_cfg_register_boolean(&_sg_cfg_set, OPT_TRACING_SMPI,       "Tracing of the SMPI interface.",                             "no", NULL);
+  xbt_cfg_register_boolean(&_sg_cfg_set, OPT_TRACING_SMPI_GROUP, "Group MPI processes by host.",                               "no", NULL);
+  xbt_cfg_register_boolean(&_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING,
+      "Generate states for timing out of SMPI parts of the application", "no", NULL);
 
 /* smpi sleeping */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_SLEEPING,
index 2034ebf..abf36ef 100644 (file)
@@ -133,7 +133,7 @@ std::shared_ptr<VisitedPair> LivenessChecker::insertAcceptancePair(simgrid::mc::
       continue;
     XBT_INFO("Pair %d already reached (equal to pair %d) !",
       new_pair->num, pair_test->num);
-    livenessStack_.pop_back();
+    explorationStack_.pop_back();
     if (dot_output != nullptr)
       fprintf(dot_output, "\"%d\" -> \"%d\" [%s];\n",
         initial_global_state->prev_pair, pair_test->num,
@@ -157,33 +157,16 @@ void LivenessChecker::removeAcceptancePair(int pair_num)
 void LivenessChecker::prepare(void)
 {
   mc_model_checker->wait_for_requests();
-
   initial_global_state->snapshot = simgrid::mc::take_snapshot(0);
   initial_global_state->prev_pair = 0;
 
+  // For each initial state of the property automaton, push a
+  // (application_state, automaton_state) pair to the exploration stack:
   unsigned int cursor = 0;
   xbt_automaton_state_t automaton_state;
-
-  xbt_dynar_foreach(simgrid::mc::property_automaton->states, cursor, automaton_state) {
-    if (automaton_state->type == -1) {  /* Initial automaton state */
-
-      std::shared_ptr<Pair> initial_pair = std::make_shared<Pair>();
-      initial_pair->automaton_state = automaton_state;
-      initial_pair->graph_state = std::shared_ptr<simgrid::mc::State>(MC_state_new());
-      initial_pair->atomic_propositions = this->getPropositionValues();
-      initial_pair->depth = 1;
-
-      /* Get enabled processes and insert them in the interleave set of the graph_state */
-      for (auto& p : mc_model_checker->process().simix_processes())
-        if (simgrid::mc::process_is_enabled(&p.copy))
-          MC_state_interleave_process(initial_pair->graph_state.get(), &p.copy);
-
-      initial_pair->requests = MC_state_interleave_size(initial_pair->graph_state.get());
-      initial_pair->search_cycle = false;
-
-      livenessStack_.push_back(std::move(initial_pair));
-    }
-  }
+  xbt_dynar_foreach(simgrid::mc::property_automaton->states, cursor, automaton_state)
+    if (automaton_state->type == -1)
+      explorationStack_.push_back(this->newPair(nullptr, automaton_state));
 }
 
 
@@ -193,7 +176,7 @@ void LivenessChecker::replay()
 
   /* Intermediate backtracking */
   if(_sg_mc_checkpoint > 0) {
-    simgrid::mc::Pair* pair = livenessStack_.back().get();
+    simgrid::mc::Pair* pair = explorationStack_.back().get();
     if(pair->graph_state->system_state){
       simgrid::mc::restore_snapshot(pair->graph_state->system_state);
       return;
@@ -205,8 +188,8 @@ void LivenessChecker::replay()
 
   /* Traverse the stack from the initial state and re-execute the transitions */
   int depth = 1;
-  for (std::shared_ptr<Pair> const& pair : livenessStack_) {
-    if (pair == livenessStack_.back())
+  for (std::shared_ptr<Pair> const& pair : explorationStack_) {
+    if (pair == explorationStack_.back())
       break;
 
     std::shared_ptr<State> state = pair->graph_state;
@@ -311,7 +294,7 @@ LivenessChecker::~LivenessChecker()
 RecordTrace LivenessChecker::getRecordTrace() // override
 {
   RecordTrace res;
-  for (std::shared_ptr<Pair> const& pair : livenessStack_) {
+  for (std::shared_ptr<Pair> const& pair : explorationStack_) {
     int value;
     smx_simcall_t req = MC_state_get_executed_request(pair->graph_state.get(), &value);
     if (req && req->call != SIMCALL_NONE) {
@@ -339,7 +322,7 @@ void LivenessChecker::showAcceptanceCycle(std::size_t depth)
 std::vector<std::string> LivenessChecker::getTextualTrace() // override
 {
   std::vector<std::string> trace;
-  for (std::shared_ptr<Pair> const& pair : livenessStack_) {
+  for (std::shared_ptr<Pair> const& pair : explorationStack_) {
     int value;
     smx_simcall_t req = MC_state_get_executed_request(pair->graph_state.get(), &value);
     if (req && req->call != SIMCALL_NONE) {
@@ -353,12 +336,8 @@ std::vector<std::string> LivenessChecker::getTextualTrace() // override
 
 int LivenessChecker::main(void)
 {
-  int visited_num = -1;
-
-  while (!livenessStack_.empty()){
-
-    /* Get current pair */
-    std::shared_ptr<Pair> current_pair = livenessStack_.back();
+  while (!explorationStack_.empty()){
+    std::shared_ptr<Pair> current_pair = explorationStack_.back();
 
     /* Update current state in buchi automaton */
     simgrid::mc::property_automaton->current_state = current_pair->automaton_state;
@@ -368,126 +347,82 @@ int LivenessChecker::main(void)
        MC_state_interleave_size(current_pair->graph_state.get()), current_pair->num,
        current_pair->requests);
 
-    if (current_pair->requests > 0) {
+    if (current_pair->requests == 0) {
+      this->backtrack();
+      continue;
+    }
+
+    std::shared_ptr<VisitedPair> reached_pair;
+    if (current_pair->automaton_state->type == 1 && !current_pair->exploration_started
+        && (reached_pair = this->insertAcceptancePair(current_pair.get())) == nullptr) {
+      this->showAcceptanceCycle(current_pair->depth);
+      return SIMGRID_MC_EXIT_LIVENESS;
+    }
 
-      std::shared_ptr<VisitedPair> reached_pair;
-      if (current_pair->automaton_state->type == 1 && !current_pair->exploration_started
-          && (reached_pair = this->insertAcceptancePair(current_pair.get())) == nullptr) {
-        this->showAcceptanceCycle(current_pair->depth);
-        return SIMGRID_MC_EXIT_LIVENESS;
+    /* Pair already visited ? stop the exploration on the current path */
+    int visited_num = -1;
+    if ((!current_pair->exploration_started)
+      && (visited_num = this->insertVisitedPair(
+        reached_pair, current_pair.get())) != -1) {
+      if (dot_output != nullptr){
+        fprintf(dot_output, "\"%d\" -> \"%d\" [%s];\n", initial_global_state->prev_pair, visited_num, initial_global_state->prev_req);
+        fflush(dot_output);
       }
+      XBT_DEBUG("Pair already visited (equal to pair %d), exploration on the current path stopped.", visited_num);
+      current_pair->requests = 0;
+      this->backtrack();
+      continue;
+    }
 
-      /* Pair already visited ? stop the exploration on the current path */
-      if ((!current_pair->exploration_started)
-        && (visited_num = this->insertVisitedPair(
-          reached_pair, current_pair.get())) != -1) {
+    int value;
+    smx_simcall_t req = MC_state_get_request(current_pair->graph_state.get(), &value);
 
-        if (dot_output != nullptr){
-          fprintf(dot_output, "\"%d\" -> \"%d\" [%s];\n", initial_global_state->prev_pair, visited_num, initial_global_state->prev_req);
-          fflush(dot_output);
-        }
+    if (dot_output != nullptr) {
+      if (initial_global_state->prev_pair != 0 && initial_global_state->prev_pair != current_pair->num) {
+        fprintf(dot_output, "\"%d\" -> \"%d\" [%s];\n", initial_global_state->prev_pair, current_pair->num, initial_global_state->prev_req);
+        xbt_free(initial_global_state->prev_req);
+      }
+      initial_global_state->prev_pair = current_pair->num;
+      initial_global_state->prev_req = simgrid::mc::request_get_dot_output(req, value);
+      if (current_pair->search_cycle)
+        fprintf(dot_output, "%d [shape=doublecircle];\n", current_pair->num);
+      fflush(dot_output);
+    }
 
-        XBT_DEBUG("Pair already visited (equal to pair %d), exploration on the current path stopped.", visited_num);
-        current_pair->requests = 0;
-        goto backtracking;
-
-      }else{
-
-        int value;
-        smx_simcall_t req = MC_state_get_request(current_pair->graph_state.get(), &value);
-
-         if (dot_output != nullptr) {
-           if (initial_global_state->prev_pair != 0 && initial_global_state->prev_pair != current_pair->num) {
-             fprintf(dot_output, "\"%d\" -> \"%d\" [%s];\n", initial_global_state->prev_pair, current_pair->num, initial_global_state->prev_req);
-             xbt_free(initial_global_state->prev_req);
-           }
-           initial_global_state->prev_pair = current_pair->num;
-           initial_global_state->prev_req = simgrid::mc::request_get_dot_output(req, value);
-           if (current_pair->search_cycle)
-             fprintf(dot_output, "%d [shape=doublecircle];\n", current_pair->num);
-           fflush(dot_output);
-         }
-
-         char* req_str = simgrid::mc::request_to_string(req, value, simgrid::mc::RequestType::simix);
-         XBT_DEBUG("Execute: %s", req_str);
-         xbt_free(req_str);
-
-         /* Set request as executed */
-         MC_state_set_executed_request(current_pair->graph_state.get(), req, value);
-
-         /* Update mc_stats */
-         mc_stats->executed_transitions++;
-         if (!current_pair->exploration_started)
-           mc_stats->visited_pairs++;
-
-         /* Answer the request */
-         simgrid::mc::handle_simcall(req, value);
-
-         /* Wait for requests (schedules processes) */
-         mc_model_checker->wait_for_requests();
-
-         current_pair->requests--;
-         current_pair->exploration_started = true;
-
-         /* Get values of atomic propositions (variables used in the property formula) */
-         std::vector<int> prop_values = this->getPropositionValues();
-
-         /* Evaluate enabled/true transitions in automaton according to atomic propositions values and create new pairs */
-         int cursor = xbt_dynar_length(current_pair->automaton_state->out) - 1;
-         while (cursor >= 0) {
-           xbt_automaton_transition_t transition_succ = (xbt_automaton_transition_t)xbt_dynar_get_as(current_pair->automaton_state->out, cursor, xbt_automaton_transition_t);
-           if (evaluate_label(transition_succ->label, prop_values)) {
-              std::shared_ptr<Pair> next_pair = std::make_shared<Pair>();
-              next_pair->graph_state = std::shared_ptr<simgrid::mc::State>(MC_state_new());
-              next_pair->automaton_state = transition_succ->dst;
-              next_pair->atomic_propositions = this->getPropositionValues();
-              next_pair->depth = current_pair->depth + 1;
-              /* Get enabled processes and insert them in the interleave set of the next graph_state */
-              for (auto& p : mc_model_checker->process().simix_processes())
-                if (simgrid::mc::process_is_enabled(&p.copy))
-                  MC_state_interleave_process(next_pair->graph_state.get(), &p.copy);
-
-              next_pair->requests = MC_state_interleave_size(next_pair->graph_state.get());
-
-              /* FIXME : get search_cycle value for each acceptant state */
-              if (next_pair->automaton_state->type == 1 || current_pair->search_cycle)
-                next_pair->search_cycle = true;
-
-              /* Add new pair to the exploration stack */
-              livenessStack_.push_back(std::move(next_pair));
-
-           }
-           cursor--;
-         }
-
-      } /* End of visited_pair test */
+    char* req_str = simgrid::mc::request_to_string(req, value, simgrid::mc::RequestType::simix);
+    XBT_DEBUG("Execute: %s", req_str);
+    xbt_free(req_str);
 
-    } else {
+    /* Set request as executed */
+    MC_state_set_executed_request(current_pair->graph_state.get(), req, value);
 
-    backtracking:
-      if(visited_num == -1)
-        XBT_DEBUG("No more request to execute. Looking for backtracking point.");
-
-      /* Traverse the stack backwards until a pair with a non empty interleave
-         set is found, deleting all the pairs that have it empty in the way. */
-      while (!livenessStack_.empty()) {
-        std::shared_ptr<simgrid::mc::Pair> current_pair = livenessStack_.back();
-        livenessStack_.pop_back();
-        if (current_pair->requests > 0) {
-          /* We found a backtracking point */
-          XBT_DEBUG("Backtracking to depth %d", current_pair->depth);
-          livenessStack_.push_back(std::move(current_pair));
-          this->replay();
-          XBT_DEBUG("Backtracking done");
-          break;
-        }else{
-          XBT_DEBUG("Delete pair %d at depth %d", current_pair->num, current_pair->depth);
-          if (current_pair->automaton_state->type == 1)
-            this->removeAcceptancePair(current_pair->num);
-        }
-      }
+    /* Update mc_stats */
+    mc_stats->executed_transitions++;
+    if (!current_pair->exploration_started)
+      mc_stats->visited_pairs++;
 
-    } /* End of if (current_pair->requests > 0) else ... */
+    /* Answer the request */
+    simgrid::mc::handle_simcall(req, value);
+
+    /* Wait for requests (schedules processes) */
+    mc_model_checker->wait_for_requests();
+
+    current_pair->requests--;
+    current_pair->exploration_started = true;
+
+    /* Get values of atomic propositions (variables used in the property formula) */
+    std::vector<int> prop_values = this->getPropositionValues();
+
+    // For each enabled transition in the property automaton, push a
+    // (application_state, automaton_state) pair to the exploration stack:
+    int cursor = xbt_dynar_length(current_pair->automaton_state->out) - 1;
+    while (cursor >= 0) {
+      xbt_automaton_transition_t transition_succ = (xbt_automaton_transition_t)xbt_dynar_get_as(current_pair->automaton_state->out, cursor, xbt_automaton_transition_t);
+      if (evaluate_label(transition_succ->label, prop_values))
+          explorationStack_.push_back(this->newPair(
+            current_pair.get(), transition_succ->dst));
+       cursor--;
+     }
 
   }
 
@@ -496,6 +431,52 @@ int LivenessChecker::main(void)
   return SIMGRID_MC_EXIT_SUCCESS;
 }
 
+std::shared_ptr<Pair> LivenessChecker::newPair(Pair* current_pair, xbt_automaton_state_t state)
+{
+  std::shared_ptr<Pair> next_pair = std::make_shared<Pair>();
+  next_pair->automaton_state = state;
+  next_pair->graph_state = std::shared_ptr<simgrid::mc::State>(MC_state_new());
+  next_pair->atomic_propositions = this->getPropositionValues();
+  if (current_pair)
+    next_pair->depth = current_pair->depth + 1;
+  else
+    next_pair->depth = 1;
+  /* Get enabled processes and insert them in the interleave set of the next graph_state */
+  for (auto& p : mc_model_checker->process().simix_processes())
+    if (simgrid::mc::process_is_enabled(&p.copy))
+      MC_state_interleave_process(next_pair->graph_state.get(), &p.copy);
+  next_pair->requests = MC_state_interleave_size(next_pair->graph_state.get());
+  /* FIXME : get search_cycle value for each acceptant state */
+  if (next_pair->automaton_state->type == 1 ||
+      (current_pair && current_pair->search_cycle))
+    next_pair->search_cycle = true;
+  else
+    next_pair->search_cycle = false;
+  return std::move(next_pair);
+}
+
+void LivenessChecker::backtrack()
+{
+  /* Traverse the stack backwards until a pair with a non empty interleave
+     set is found, deleting all the pairs that have it empty in the way. */
+  while (!explorationStack_.empty()) {
+    std::shared_ptr<simgrid::mc::Pair> current_pair = explorationStack_.back();
+    explorationStack_.pop_back();
+    if (current_pair->requests > 0) {
+      /* We found a backtracking point */
+      XBT_DEBUG("Backtracking to depth %d", current_pair->depth);
+      explorationStack_.push_back(std::move(current_pair));
+      this->replay();
+      XBT_DEBUG("Backtracking done");
+      break;
+    } else {
+      XBT_DEBUG("Delete pair %d at depth %d", current_pair->num, current_pair->depth);
+      if (current_pair->automaton_state->type == 1)
+        this->removeAcceptancePair(current_pair->num);
+    }
+  }
+}
+
 int LivenessChecker::run()
 {
   XBT_INFO("Check the liveness property %s", _sg_mc_property_file);
index f94a9e1..f12c0b3 100644 (file)
@@ -29,8 +29,6 @@ SG_END_DECL()
 namespace simgrid {
 namespace mc {
 
-extern XBT_PRIVATE xbt_automaton_t property_automaton;
-
 struct XBT_PRIVATE Pair {
   int num = 0;
   bool search_cycle = false;
@@ -82,9 +80,12 @@ private:
   void replay();
   void removeAcceptancePair(int pair_num);
   void purgeVisitedPairs();
+  void backtrack();
+  std::shared_ptr<Pair> newPair(Pair* pair, xbt_automaton_state_t state);
 public:
+  // A stack of (application_state, automaton_state) pairs for DFS exploration:
+  std::list<std::shared_ptr<Pair>> explorationStack_;
   std::list<std::shared_ptr<VisitedPair>> acceptancePairs_;
-  std::list<std::shared_ptr<Pair>> livenessStack_;
   std::list<std::shared_ptr<VisitedPair>> visitedPairs_;
 };
 
index e0d636b..af180ca 100644 (file)
@@ -30,7 +30,6 @@
 #include "src/mc/mc_private.h"
 #include "src/mc/mc_ignore.h"
 #include "src/mc/mc_exit.h"
-#include "src/mc/LivenessChecker.hpp"
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_ModelChecker, mc, "ModelChecker");
 
index 9874969..06192f2 100644 (file)
@@ -15,7 +15,6 @@
 #include "src/internal_config.h"
 #include "src/mc/mc_forward.hpp"
 #include "src/mc/mc_safety.h"
-#include "src/mc/LivenessChecker.hpp"
 #include "src/mc/mc_private.h"
 #include "src/mc/mc_smx.h"
 #include "src/mc/mc_dwarf.hpp"
index 187a69b..6e9b7b6 100644 (file)
 #include "src/mc/mc_request.h"
 #include "src/mc/mc_safety.h"
 #include "src/mc/mc_snapshot.h"
-#include "src/mc/LivenessChecker.hpp"
 #include "src/mc/mc_private.h"
 #include "src/mc/mc_unw.h"
 #include "src/mc/mc_smx.h"
+#include "src/mc/Checker.hpp"
 #endif
 
 #include "src/mc/mc_record.h"
index 556eaec..28c1533 100644 (file)
@@ -112,6 +112,9 @@ XBT_PRIVATE void find_object_address(
 XBT_PRIVATE
 int snapshot_compare(int num1, simgrid::mc::Snapshot* s1, int num2, simgrid::mc::Snapshot* s2);
 
+// Move is somewhere else (in the LivenessChecker class, in the Session class?):
+extern XBT_PRIVATE xbt_automaton_t property_automaton;
+
 }
 }
 
index 19e7db4..a2f6ce4 100644 (file)
@@ -30,7 +30,7 @@
 #include "src/mc/mc_private.h"
 #include "src/mc/mc_state.h"
 #include "src/mc/mc_smx.h"
-#include "src/mc/LivenessChecker.hpp"
+#include "src/mc/Checker.hpp"
 #endif
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_record, mc,
index 8c2e869..fbdd510 100644 (file)
@@ -19,7 +19,6 @@
 
 #include "src/mc/mc_comm_pattern.h"
 #include "src/mc/mc_safety.h"
-#include "src/mc/LivenessChecker.hpp"
 #include "src/mc/mc_private.h"
 #include "src/mc/Process.hpp"
 #include "src/mc/mc_smx.h"
index 9e857eb..984ca97 100644 (file)
@@ -24,7 +24,6 @@
 #include "src/mc/mc_protocol.h"
 #include "src/mc/mc_safety.h"
 #include "src/mc/mc_comm_pattern.h"
-#include "src/mc/LivenessChecker.hpp"
 #include "src/mc/mc_exit.h"
 #include "src/mc/Session.hpp"
 #include "src/mc/Checker.hpp"
index d28b2a6..8d5788d 100644 (file)
@@ -117,6 +117,18 @@ xbt_dict_t Host::properties() {
   });
 }
 
+/** Retrieve the property value (or NULL if not set) */
+const char*Host::property(const char*key) {
+  simgrid::surf::HostImpl* surf_host = this->extension<simgrid::surf::HostImpl>();
+  return surf_host->getProperty(key);
+}
+void Host::setProperty(const char*key, const char *value){
+  simgrid::simix::kernel([&] {
+    simgrid::surf::HostImpl* surf_host = this->extension<simgrid::surf::HostImpl>();
+    surf_host->setProperty(key,value);
+  });
+}
+
 /** Get the processes attached to the host */
 xbt_swag_t Host::processes()
 {
similarity index 70%
rename from src/simgrid/sg_config.c
rename to src/simgrid/sg_config.cpp
index 62cb97d..22bd446 100644 (file)
@@ -498,114 +498,84 @@ void sg_config_init(int *argc, char **argv)
                      xbt_cfgelm_string, 0, 1, &_sg_cfg_cb__plugin);
 
     describe_model(description, surf_cpu_model_description, "model", "The model to use for the CPU");
-    xbt_cfg_register(&_sg_cfg_set, "cpu/model", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__cpu_model);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "cpu/model", "Cas01");
+    xbt_cfg_register_string(&_sg_cfg_set, "cpu/model", description, "Cas01", &_sg_cfg_cb__cpu_model);
 
     describe_model(description, surf_optimization_mode_description, "optimization mode", "The optimization modes to use for the CPU");
-    xbt_cfg_register(&_sg_cfg_set, "cpu/optim", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__optimization_mode);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "cpu/optim", "Lazy");
+    xbt_cfg_register_string(&_sg_cfg_set, "cpu/optim", description, "Lazy", &_sg_cfg_cb__optimization_mode);
 
     describe_model(description, surf_storage_model_description, "model", "The model to use for the storage");
-    xbt_cfg_register(&_sg_cfg_set, "storage/model", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__storage_mode);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "storage/model", "default");
+    xbt_cfg_register_string(&_sg_cfg_set, "storage/model", description, "default", &_sg_cfg_cb__storage_mode);
 
     describe_model(description, surf_network_model_description, "model", "The model to use for the network");
-    xbt_cfg_register(&_sg_cfg_set, "network/model", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__network_model);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "network/model", "LV08");
+    xbt_cfg_register_string(&_sg_cfg_set, "network/model", description, "LV08", &_sg_cfg_cb__network_model);
 
     describe_model(description, surf_optimization_mode_description, "optimization mode", "The optimization modes to use for the network");
-    xbt_cfg_register(&_sg_cfg_set, "network/optim", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__optimization_mode);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "network/optim", "Lazy");
+    xbt_cfg_register_string(&_sg_cfg_set, "network/optim", description, "Lazy", &_sg_cfg_cb__optimization_mode);
 
     describe_model(description, surf_host_model_description, "model", "The model to use for the host");
-    xbt_cfg_register(&_sg_cfg_set, "host/model", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__host_model);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "host/model", "default");
+    xbt_cfg_register_string(&_sg_cfg_set, "host/model", description, "default", &_sg_cfg_cb__host_model);
 
     describe_model(description, surf_vm_model_description, "model", "The model to use for the vm");
-    xbt_cfg_register(&_sg_cfg_set, "vm/model", description, xbt_cfgelm_string, 1, 1, &_sg_cfg_cb__vm_model);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "vm/model", "default");
+    xbt_cfg_register_string(&_sg_cfg_set, "vm/model", description, "default", &_sg_cfg_cb__vm_model);
 
-    xbt_cfg_register(&_sg_cfg_set, "network/TCP_gamma",
-                     "Size of the biggest TCP window (cat /proc/sys/net/ipv4/tcp_[rw]mem for recv/send window; Use the last given value, which is the max window size)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__tcp_gamma);
-    xbt_cfg_setdefault_double(_sg_cfg_set, "network/TCP_gamma", 4194304.0);
+    xbt_cfg_register_double(&_sg_cfg_set, "network/TCP_gamma",
+        "Size of the biggest TCP window (cat /proc/sys/net/ipv4/tcp_[rw]mem for recv/send window; Use the last given value, which is the max window size)",
+        4194304.0, _sg_cfg_cb__tcp_gamma);
 
-    xbt_cfg_register(&_sg_cfg_set, "surf/precision", "Numerical precision used when updating simulation times (in seconds)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__surf_precision);
-    xbt_cfg_setdefault_double(_sg_cfg_set, "surf/precision", 0.00001);
+    xbt_cfg_register_double(&_sg_cfg_set, "surf/precision", "Numerical precision used when updating simulation times (in seconds)",
+        0.00001, _sg_cfg_cb__surf_precision);
 
-    xbt_cfg_register(&_sg_cfg_set, "maxmin/precision",
-                     "Numerical precision used when computing resource sharing (in ops/sec or bytes/sec)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__maxmin_precision);
-    xbt_cfg_setdefault_double(_sg_cfg_set, "maxmin/precision", 0.00001);
+    xbt_cfg_register_double(&_sg_cfg_set, "maxmin/precision",
+        "Numerical precision used when computing resource sharing (in ops/sec or bytes/sec)",
+        0.00001, _sg_cfg_cb__maxmin_precision);
 
     /* The parameters of network models */
 
-    xbt_cfg_register(&_sg_cfg_set, "network/sender_gap", "Minimum gap between two overlapping sends",
-        xbt_cfgelm_double, 1, 1, _sg_cfg_cb__sender_gap);
-    /* real default for "network/sender_gap" is set in network_smpi.cpp */
-    xbt_cfg_setdefault_double(_sg_cfg_set, "network/sender_gap", NAN);
-
-    xbt_cfg_register(&_sg_cfg_set, "network/latency_factor",
-                     "Correction factor to apply to the provided latency (default value set by network model)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__latency_factor);
-    xbt_cfg_setdefault_double(_sg_cfg_set, "network/latency_factor", 1.0);
-
-    xbt_cfg_register(&_sg_cfg_set, "network/bandwidth_factor",
-                     "Correction factor to apply to the provided bandwidth (default value set by network model)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__bandwidth_factor);
-    xbt_cfg_setdefault_double(_sg_cfg_set, "network/bandwidth_factor", 1.0);
-
-    xbt_cfg_register(&_sg_cfg_set, "network/weight_S",
-                     "Correction factor to apply to the weight of competing streams (default value set by network model)",
-                     xbt_cfgelm_double, 1, 1, _sg_cfg_cb__weight_S);
-    /* real default for "network/weight_S" is set in network_*.cpp */
-    xbt_cfg_setdefault_double(_sg_cfg_set, "network/weight_S", NAN);
+    xbt_cfg_register_double(&_sg_cfg_set, "network/sender_gap", "Minimum gap between two overlapping sends",
+        NAN, _sg_cfg_cb__sender_gap); /* real default for "network/sender_gap" is set in network_smpi.cpp */
+    xbt_cfg_register_double(&_sg_cfg_set, "network/latency_factor",
+        "Correction factor to apply to the provided latency (default value set by network model)",
+        1.0, _sg_cfg_cb__latency_factor);
+    xbt_cfg_register_double(&_sg_cfg_set, "network/bandwidth_factor",
+        "Correction factor to apply to the provided bandwidth (default value set by network model)",
+        1.0, _sg_cfg_cb__bandwidth_factor);
+    xbt_cfg_register_double(&_sg_cfg_set, "network/weight_S",
+        "Correction factor to apply to the weight of competing streams (default value set by network model)",
+        NAN, _sg_cfg_cb__weight_S); /* real default for "network/weight_S" is set in network_*.cpp */
 
     /* Inclusion path */
     xbt_cfg_register(&_sg_cfg_set, "path",
                      "Lookup path for inclusions in platform and deployment XML files",
                      xbt_cfgelm_string, 1, 0, _sg_cfg_cb__surf_path);
 
-    xbt_cfg_register(&_sg_cfg_set, "cpu/maxmin_selective_update",
-                     "Update the constraint set propagating recursively to others constraints (off by default when optim is set to lazy)",
-                     xbt_cfgelm_boolean, 1, 1, NULL);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "cpu/maxmin_selective_update", "no");
-
-    xbt_cfg_register(&_sg_cfg_set, "network/maxmin_selective_update",
-                     "Update the constraint set propagating recursively to others constraints (off by default when optim is set to lazy)",
-                     xbt_cfgelm_boolean, 1, 1, NULL);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "network/maxmin_selective_update", "no");
-
+    xbt_cfg_register_boolean(&_sg_cfg_set, "cpu/maxmin_selective_update",
+        "Update the constraint set propagating recursively to others constraints (off by default when optim is set to lazy)",
+        "no", NULL);
+    xbt_cfg_register_boolean(&_sg_cfg_set, "network/maxmin_selective_update",
+        "Update the constraint set propagating recursively to others constraints (off by default when optim is set to lazy)",
+        "no", NULL);
     /* Replay (this part is enabled even if MC it disabled) */
     xbt_cfg_register(&_sg_cfg_set, "model-check/replay",
       "Enable replay mode with the given path", xbt_cfgelm_string, 0, 1, _sg_cfg_cb_model_check_replay);
 
 #if HAVE_MC
     /* do model-checking-record */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/record",
-                     "Record the model-checking paths",
-                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_model_check_record);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/record", "no");
+    xbt_cfg_register_boolean(&_sg_cfg_set, "model-check/record", "Record the model-checking paths",
+        "no", _sg_cfg_cb_model_check_record);
 
     /* do stateful model-checking */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/checkpoint",
+    xbt_cfg_register_int(&_sg_cfg_set, "model-check/checkpoint",
                      "Specify the amount of steps between checkpoints during stateful model-checking (default: 0 => stateless verification). "
                      "If value=1, one checkpoint is saved for each step => faster verification, but huge memory consumption; higher values are good compromises between speed and memory consumption.",
-                     xbt_cfgelm_int, 1, 1, _mc_cfg_cb_checkpoint);
-    xbt_cfg_setdefault_int(_sg_cfg_set, "model-check/checkpoint", 0);
+                     0, _mc_cfg_cb_checkpoint);
 
     /* do stateful model-checking */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/sparse_checkpoint",
-                     "Use sparse per-page snapshots.",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_sparse_checkpoint);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/sparse_checkpoint", "no");
+    xbt_cfg_register_boolean(&_sg_cfg_set, "model-check/sparse_checkpoint", "Use sparse per-page snapshots.",
+        "no", _mc_cfg_cb_sparse_checkpoint);
 
     /* do stateful model-checking */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/soft-dirty",
-                     "Use sparse per-page snapshots.",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_soft_dirty);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/soft-dirty", "no");
+    xbt_cfg_register_boolean(&_sg_cfg_set, "model-check/soft-dirty", "Use sparse per-page snapshots.",
+        "no", _mc_cfg_cb_soft_dirty);
 
     xbt_cfg_register(&_sg_cfg_set, "model-check/ksm",
                      "Kernel same-page merging",
@@ -619,72 +589,52 @@ void sg_config_init(int *argc, char **argv)
     xbt_cfg_setdefault_string(_sg_cfg_set, "model-check/property", "");
 
     /* do communications determinism model-checking */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/communications_determinism",
-                     "Enable/disable the detection of determinism in the communications schemes",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_comms_determinism);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/communications_determinism", "no");
+    xbt_cfg_register_boolean(&_sg_cfg_set, "model-check/communications_determinism",
+        "Enable/disable the detection of determinism in the communications schemes", "no", _mc_cfg_cb_comms_determinism);
 
     /* do send determinism model-checking */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/send_determinism",
-                     "Enable/disable the detection of send-determinism in the communications schemes",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_send_determinism);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/send_determinism", "no");
+    xbt_cfg_register_boolean(&_sg_cfg_set, "model-check/send_determinism",
+        "Enable/disable the detection of send-determinism in the communications schemes", "no", _mc_cfg_cb_send_determinism);
 
     /* Specify the kind of model-checking reduction */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/reduction",
-                     "Specify the kind of exploration reduction (either none or DPOR)",
-                     xbt_cfgelm_string, 1, 1, _mc_cfg_cb_reduce);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "model-check/reduction", "dpor");
+    xbt_cfg_register_string(&_sg_cfg_set, "model-check/reduction", "Specify the kind of exploration reduction (either none or DPOR)",
+                     "dpor", _mc_cfg_cb_reduce);
 
     /* Enable/disable timeout for wait requests with model-checking */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/timeout",
-                     "Enable/Disable timeout for wait requests",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_timeout);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/timeout", "no");
+    xbt_cfg_register_boolean(&_sg_cfg_set, "model-check/timeout", "Enable/Disable timeout for wait requests", "no",
+        _mc_cfg_cb_timeout);
 
     /* Enable/disable global hash computation with model-checking */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/hash",
-                     "Enable/Disable state hash for state comparison (experimental)",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_hash);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/hash", "no");
+    xbt_cfg_register_boolean(&_sg_cfg_set, "model-check/hash", "Enable/Disable state hash for state comparison (experimental)", "no",
+        _mc_cfg_cb_hash);
 
     /* Set max depth exploration */
-    /* Currently, this option cannot be used. */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/snapshot_fds",
-                     "Whether file descriptors must be snapshoted",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_snapshot_fds);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/snapshot_fds", "no");
+    xbt_cfg_register_boolean(&_sg_cfg_set, "model-check/snapshot_fds", "Whether file descriptors must be snapshoted (currently unusable)", "no",
+        _mc_cfg_cb_snapshot_fds);
 
     /* Set max depth exploration */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/max_depth",
-                     "Specify the max depth of exploration (default : 1000)",
-                     xbt_cfgelm_int, 1, 1, _mc_cfg_cb_max_depth);
-    xbt_cfg_setdefault_int(_sg_cfg_set, "model-check/max_depth", 1000);
+    xbt_cfg_register_int(&_sg_cfg_set, "model-check/max_depth", "Specify the max depth of exploration (default: 1000)", 1000,
+                     _mc_cfg_cb_max_depth);
 
     /* Set number of visited state stored for state comparison reduction*/
-    xbt_cfg_register(&_sg_cfg_set, "model-check/visited",
+    xbt_cfg_register_int(&_sg_cfg_set, "model-check/visited",
                      "Specify the number of visited state stored for state comparison reduction. If value=5, the last 5 visited states are stored",
-                     xbt_cfgelm_int, 1, 1, _mc_cfg_cb_visited);
-    xbt_cfg_setdefault_int(_sg_cfg_set, "model-check/visited", 0);
+                     0, _mc_cfg_cb_visited);
 
     /* Set file name for dot output of graph state */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/dot_output",
+    xbt_cfg_register_string(&_sg_cfg_set, "model-check/dot_output",
                      "Specify the name of dot file corresponding to graph state",
-                     xbt_cfgelm_string, 1, 1, _mc_cfg_cb_dot_output);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "model-check/dot_output", "");
+                     "", _mc_cfg_cb_dot_output);
 
      /* Enable/disable non progressive cycles detection with model-checking */
-    xbt_cfg_register(&_sg_cfg_set, "model-check/termination",
+    xbt_cfg_register_boolean(&_sg_cfg_set, "model-check/termination",
                      "Enable/Disable non progressive cycle detection",
-                     xbt_cfgelm_boolean, 1, 1, _mc_cfg_cb_termination);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "model-check/termination", "no");
+                     "no", _mc_cfg_cb_termination);
 #endif
 
     /* do verbose-exit */
-    xbt_cfg_register(&_sg_cfg_set, "verbose-exit",
-                     "Activate the \"do nothing\" mode in Ctrl-C",
-                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb_verbose_exit);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "verbose-exit", "yes");
+    xbt_cfg_register_boolean(&_sg_cfg_set, "verbose-exit", "Activate the \"do nothing\" mode in Ctrl-C",
+                     "yes", _sg_cfg_cb_verbose_exit);
 
     /* context factory */
     const char *dflt_ctx_fact = "thread";
@@ -703,16 +653,12 @@ void sg_config_init(int *argc, char **argv)
 #endif
       sprintf(p, ".");
     }
-    xbt_cfg_register(&_sg_cfg_set, "contexts/factory", description,
-                     xbt_cfgelm_string, 1, 1, _sg_cfg_cb_context_factory);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "contexts/factory", dflt_ctx_fact);
+    xbt_cfg_register_string(&_sg_cfg_set, "contexts/factory", description, dflt_ctx_fact, _sg_cfg_cb_context_factory);
 
     /* stack size of contexts in KiB */
-    xbt_cfg_register(&_sg_cfg_set, "contexts/stack_size",
-                     "Stack size of contexts in KiB",
-                     xbt_cfgelm_int, 1, 1, _sg_cfg_cb_context_stack_size);
-    xbt_cfg_setdefault_int(_sg_cfg_set, "contexts/stack_size", 8*1024);
-    /* No, it was not set yet (the above setdefault() changed this to 1). */
+    xbt_cfg_register_int(&_sg_cfg_set, "contexts/stack_size", "Stack size of contexts in KiB",
+                     8*1024, _sg_cfg_cb_context_stack_size);
+    /* (FIXME: this is unpleasant) Reset this static variable that was altered when setting the default value. */
     smx_context_stack_size_was_set = 0;
 
     /* guard size for contexts stacks in memory pages */
@@ -728,42 +674,34 @@ void sg_config_init(int *argc, char **argv)
     smx_context_guard_size_was_set = 0;
 
     /* number of parallel threads for user processes */
-    xbt_cfg_register(&_sg_cfg_set, "contexts/nthreads",
+    xbt_cfg_register_int(&_sg_cfg_set, "contexts/nthreads",
                      "Number of parallel threads used to execute user contexts",
-                     xbt_cfgelm_int, 1, 1, _sg_cfg_cb_contexts_nthreads);
-    xbt_cfg_setdefault_int(_sg_cfg_set, "contexts/nthreads", 1);
+                     1, _sg_cfg_cb_contexts_nthreads);
 
     /* minimal number of user contexts to be run in parallel */
-    xbt_cfg_register(&_sg_cfg_set, "contexts/parallel_threshold",
+    xbt_cfg_register_int(&_sg_cfg_set, "contexts/parallel_threshold",
                      "Minimal number of user contexts to be run in parallel (raw contexts only)",
-                     xbt_cfgelm_int, 1, 1, _sg_cfg_cb_contexts_parallel_threshold);
-    xbt_cfg_setdefault_int(_sg_cfg_set, "contexts/parallel_threshold", 2);
+                     2, _sg_cfg_cb_contexts_parallel_threshold);
 
     /* synchronization mode for parallel user contexts */
-    xbt_cfg_register(&_sg_cfg_set, "contexts/synchro",
+    xbt_cfg_register_string(&_sg_cfg_set, "contexts/synchro",
                      "Synchronization mode to use when running contexts in parallel (either futex, posix or busy_wait)",
-                     xbt_cfgelm_string, 1, 1, _sg_cfg_cb_contexts_parallel_mode);
 #if HAVE_FUTEX_H
-    xbt_cfg_setdefault_string(_sg_cfg_set, "contexts/synchro", "futex");
+    "futex",     _sg_cfg_cb_contexts_parallel_mode);
 #else //No futex on mac and posix is unimplememted yet
-    xbt_cfg_setdefault_string(_sg_cfg_set, "contexts/synchro", "busy_wait");
+    "busy_wait", _sg_cfg_cb_contexts_parallel_mode);
 #endif
 
-    xbt_cfg_register(&_sg_cfg_set, "network/coordinates",
+    xbt_cfg_register_boolean(&_sg_cfg_set, "network/coordinates",
                      "\"yes\" or \"no\", specifying whether we use a coordinate-based routing (as Vivaldi)",
-                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb__surf_network_coordinates);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "network/coordinates", "no");
+                     "no", _sg_cfg_cb__surf_network_coordinates);
 
-    xbt_cfg_register(&_sg_cfg_set, "network/crosstraffic",
+    xbt_cfg_register_boolean(&_sg_cfg_set, "network/crosstraffic",
                      "Activate the interferences between uploads and downloads for fluid max-min models (LV08, CM02)",
-                     xbt_cfgelm_boolean, 1, 1, _sg_cfg_cb__surf_network_crosstraffic);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "network/crosstraffic", "yes");
+                     "yes", _sg_cfg_cb__surf_network_crosstraffic);
 
 #if HAVE_NS3
-    xbt_cfg_register(&_sg_cfg_set, "ns3/TcpModel",
-                     "The ns3 tcp model can be : NewReno or Reno or Tahoe",
-                     xbt_cfgelm_string, 1, 1, NULL);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "ns3/TcpModel", "default");
+    xbt_cfg_register_string(&_sg_cfg_set, "ns3/TcpModel", "The ns3 tcp model can be : NewReno or Reno or Tahoe", "default", NULL);
 #endif
 
     //For smpi/bw_factor and smpi/lat_factor
@@ -772,36 +710,25 @@ void sg_config_init(int *argc, char **argv)
     //Values can be modified with command line --cfg=smpi/bw_factor:"threshold0:value0;threshold1:value1;...;thresholdN:valueN"
     //  or with tag config put line <prop id="smpi/bw_factor" value="threshold0:value0;threshold1:value1;...;thresholdN:valueN"></prop>
     // SMPI model can be used without enable_smpi, so keep this out of the ifdef.
-    xbt_cfg_register(&_sg_cfg_set, "smpi/bw_factor",
-                     "Bandwidth factors for smpi.",
-                     xbt_cfgelm_string, 1, 1, NULL);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/bw_factor", "65472:0.940694;15424:0.697866;9376:0.58729;5776:1.08739;3484:0.77493;1426:0.608902;732:0.341987;257:0.338112;0:0.812084");
+    xbt_cfg_register_string(&_sg_cfg_set, "smpi/bw_factor", "Bandwidth factors for smpi.",
+        "65472:0.940694;15424:0.697866;9376:0.58729;5776:1.08739;3484:0.77493;1426:0.608902;732:0.341987;257:0.338112;0:0.812084", NULL);
 
-    xbt_cfg_register(&_sg_cfg_set, "smpi/lat_factor",
-                     "Latency factors for smpi.",
-                     xbt_cfgelm_string, 1, 1, NULL);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/lat_factor", "65472:11.6436;15424:3.48845;9376:2.59299;5776:2.18796;3484:1.88101;1426:1.61075;732:1.9503;257:1.95341;0:2.01467");
+    xbt_cfg_register_string(&_sg_cfg_set, "smpi/lat_factor", "Latency factors for smpi.",
+        "65472:11.6436;15424:3.48845;9376:2.59299;5776:2.18796;3484:1.88101;1426:1.61075;732:1.9503;257:1.95341;0:2.01467", NULL);
     
-    xbt_cfg_register(&_sg_cfg_set, "smpi/IB_penalty_factors",
-                     "Correction factor to communications using Infiniband model with contention (default value based on Stampede cluster profiling)",
-                     xbt_cfgelm_string, 1, 1, NULL);
-    xbt_cfg_setdefault_string(_sg_cfg_set, "smpi/IB_penalty_factors", "0.965;0.925;1.35");
+    xbt_cfg_register_string(&_sg_cfg_set, "smpi/IB_penalty_factors",
+        "Correction factor to communications using Infiniband model with contention (default value based on Stampede cluster profiling)",
+        "0.965;0.925;1.35", NULL);
     
 #if HAVE_SMPI
-    xbt_cfg_register(&_sg_cfg_set, "smpi/running_power",
-                     "Power of the host running the simulation (in flop/s). Used to bench the operations.",
-                     xbt_cfgelm_double, 1, 1, NULL);
-    xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/running_power", 20000.0);
+    xbt_cfg_register_double(&_sg_cfg_set, "smpi/running_power",
+        "Power of the host running the simulation (in flop/s). Used to bench the operations.", 20000.0, NULL);
 
-    xbt_cfg_register(&_sg_cfg_set, "smpi/display_timing",
-                     "Boolean indicating whether we should display the timing after simulation.",
-                     xbt_cfgelm_boolean, 1, 1, NULL);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "smpi/display_timing", "no");
+    xbt_cfg_register_boolean(&_sg_cfg_set, "smpi/display_timing",
+        "Boolean indicating whether we should display the timing after simulation.", "no", NULL);
 
-    xbt_cfg_register(&_sg_cfg_set, "smpi/simulate_computation",
-                     "Boolean indicating whether the computational part of the simulated application should be simulated.",
-                     xbt_cfgelm_boolean, 1, 1, NULL);
-    xbt_cfg_setdefault_boolean(_sg_cfg_set, "smpi/simulate_computation", "yes");
+    xbt_cfg_register_boolean(&_sg_cfg_set, "smpi/simulate_computation",
+        "Boolean indicating whether the computational part of the simulated application should be simulated.", "yes", NULL);
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/use_shared_malloc",
                      "Boolean indicating whether we should use shared memory when using SMPI_SHARED_MALLOC. Allows user to disable it for debug purposes.",
index f990c45..6399590 100644 (file)
@@ -31,10 +31,10 @@ simgrid::xbt::Extension<simgrid::s4u::Host, HostImpl> HostImpl::EXTENSION_ID;
 /*********
  * Model *
  *********/
-HostImpl *HostModel::createHost(const char *name,NetCard *netElm, Cpu *cpu, xbt_dict_t props){
+HostImpl *HostModel::createHost(const char *name, NetCard *netElm, Cpu *cpu){
   xbt_dynar_t storageList = (xbt_dynar_t)xbt_lib_get_or_null(storage_lib, name, ROUTING_STORAGE_HOST_LEVEL);
 
-  HostImpl *host = new simgrid::surf::HostImpl(surf_host_model, name, props, storageList, cpu);
+  HostImpl *host = new simgrid::surf::HostImpl(surf_host_model, name, storageList, cpu);
   XBT_DEBUG("Create host %s with %ld mounted disks", name, xbt_dynar_length(host->p_storage));
   return host;
 }
@@ -61,13 +61,13 @@ void HostModel::adjustWeightOfDummyCpuActions()
 
       /* FIXME: we should use lmm_update_variable_weight() ? */
       /* FIXME: If we assign 1.05 and 0.05, the system makes apparently wrong values. */
-      ws_vm->p_action->setPriority(1);
+      ws_vm->action_->setPriority(1);
 
     } else {
       /* no task exits on this VM */
       XBT_DEBUG("set the weight of the dummy CPU action on PM to 0");
 
-      ws_vm->p_action->setPriority(0);
+      ws_vm->action_->setPriority(0);
     }
   }
 }
@@ -123,19 +123,18 @@ void HostImpl::classInit()
   }
 }
 
-HostImpl::HostImpl(simgrid::surf::HostModel *model, const char *name, xbt_dict_t props,
-                     xbt_dynar_t storage, Cpu *cpu)
+HostImpl::HostImpl(simgrid::surf::HostModel *model, const char *name, xbt_dynar_t storage, Cpu *cpu)
  : Resource(model, name)
- , PropertyHolder(props)
+ , PropertyHolder(nullptr)
  , p_storage(storage), p_cpu(cpu)
 {
   p_params.ramsize = 0;
 }
 
-HostImpl::HostImpl(simgrid::surf::HostModel *model, const char *name, xbt_dict_t props, lmm_constraint_t constraint,
+HostImpl::HostImpl(simgrid::surf::HostModel *model, const char *name, lmm_constraint_t constraint,
                  xbt_dynar_t storage, Cpu *cpu)
  : Resource(model, name, constraint)
- , PropertyHolder(props)
+ , PropertyHolder(nullptr)
  , p_storage(storage), p_cpu(cpu)
 {
   p_params.ramsize = 0;
@@ -392,7 +391,7 @@ xbt_dynar_t HostImpl::getVms()
        iter !=  simgrid::surf::VMModel::ws_vms.end(); ++iter) {
 
     simgrid::surf::VirtualMachine *ws_vm = &*iter;
-    if (this == ws_vm->p_hostPM->extension(simgrid::surf::HostImpl::EXTENSION_ID))
+    if (this == ws_vm->getPm()->extension(simgrid::surf::HostImpl::EXTENSION_ID))
       xbt_dynar_push(dyn, &ws_vm);
   }
 
index 6612221..058140b 100644 (file)
@@ -52,7 +52,7 @@ public:
   HostModel() : Model() {}
   ~HostModel() override {}
 
-  HostImpl *createHost(const char *name, NetCard *net, Cpu *cpu, xbt_dict_t props);
+  HostImpl *createHost(const char *name, NetCard *net, Cpu *cpu);
 
   virtual void adjustWeightOfDummyCpuActions();
   virtual Action *executeParallelTask(int host_nb, sg_host_t *host_list,
@@ -85,7 +85,7 @@ public:
    * @param storage The Storage associated to this Host
    * @param cpu The Cpu associated to this Host
    */
-  HostImpl(HostModel *model, const char *name, xbt_dict_t props, xbt_dynar_t storage, Cpu *cpu);
+  HostImpl(HostModel *model, const char *name, xbt_dynar_t storage, Cpu *cpu);
 
   /**
    * @brief Host constructor
@@ -97,7 +97,7 @@ public:
    * @param storage The Storage associated to this Host
    * @param cpu The Cpu associated to this Host
    */
-  HostImpl(HostModel *model, const char *name, xbt_dict_t props,
+  HostImpl(HostModel *model, const char *name,
       lmm_constraint_t constraint, xbt_dynar_t storage, Cpu *cpu);
 
   /* Host destruction logic */
index 4458b2d..97331c6 100644 (file)
@@ -10,33 +10,33 @@ namespace simgrid {
 namespace surf {
 
 PropertyHolder::PropertyHolder(xbt_dict_t props)
-: p_properties(props)
+: properties_(props)
 {
 }
 
 PropertyHolder::~PropertyHolder() {
-  xbt_dict_free(&p_properties);
+  xbt_dict_free(&properties_);
 }
 
 /** @brief Return the property associated to the provided key (or NULL if not existing) */
 const char *PropertyHolder::getProperty(const char*key) {
-  if (p_properties == NULL)
+  if (properties_ == NULL)
     return NULL;
-  return (const char*) xbt_dict_get_or_null(p_properties,key);
+  return (const char*) xbt_dict_get_or_null(properties_,key);
 }
 
 /** @brief Change the value of a given key in the property set */
 void PropertyHolder::setProperty(const char*key, const char*value) {
-  if (!p_properties)
-    p_properties = xbt_dict_new();
-  xbt_dict_set(p_properties, key, xbt_strdup(value), &xbt_free_f);
+  if (!properties_)
+    properties_ = xbt_dict_new();
+  xbt_dict_set(properties_, key, xbt_strdup(value), &xbt_free_f);
 }
 
 /** @brief Return the whole set of properties. Don't mess with it, dude! */
 xbt_dict_t PropertyHolder::getProperties() {
-  if (!p_properties)
-    p_properties = xbt_dict_new();
-  return p_properties;
+  if (!properties_)
+    properties_ = xbt_dict_new();
+  return properties_;
 }
 
 } /* namespace surf */
index 0684173..3d2cdf1 100644 (file)
@@ -28,7 +28,7 @@ public:
    */
   xbt_dict_t getProperties();
 private:
-  xbt_dict_t p_properties = NULL;
+  xbt_dict_t properties_ = NULL;
 };
 
 } /* namespace surf */
index 432189d..839cea3 100644 (file)
@@ -166,9 +166,10 @@ NetworkCm02Model::NetworkCm02Model()
   }
 }
 
-Link* NetworkCm02Model::createLink(const char *name, double bandwidth, double latency, e_surf_link_sharing_policy_t policy, xbt_dict_t properties)
+Link* NetworkCm02Model::createLink(const char *name, double bandwidth, double latency, e_surf_link_sharing_policy_t policy,
+    xbt_dict_t properties)
 {
-  return new NetworkCm02Link(this, name, properties, maxminSystem_, sg_bandwidth_factor * bandwidth, bandwidth, latency, policy);
+  return new NetworkCm02Link(this, name, properties, bandwidth, latency, policy, maxminSystem_);
 }
 
 void NetworkCm02Model::updateActionsStateLazy(double now, double /*delta*/)
@@ -389,11 +390,9 @@ Action *NetworkCm02Model::communicate(NetCard *src, NetCard *dst, double size, d
  * Resource *
  ************/
 NetworkCm02Link::NetworkCm02Link(NetworkCm02Model *model, const char *name, xbt_dict_t props,
-    lmm_system_t system,
-    double constraint_value,
-    double bandwidth,  double latency,
-    e_surf_link_sharing_policy_t policy)
-: Link(model, name, props, lmm_constraint_new(system, this, constraint_value))
+    double bandwidth,  double latency, e_surf_link_sharing_policy_t policy,
+    lmm_system_t system)
+: Link(model, name, props, lmm_constraint_new(system, this, sg_bandwidth_factor * bandwidth))
 {
   m_bandwidth.scale = 1.0;
   m_bandwidth.peak = bandwidth;
index 54cf61f..cf97be4 100644 (file)
@@ -58,9 +58,8 @@ namespace simgrid {
     class NetworkCm02Link : public Link {
     public:
       NetworkCm02Link(NetworkCm02Model *model, const char *name, xbt_dict_t props,
-          lmm_system_t system,
-          double constraint_value, double bandwidth, double latency,
-          e_surf_link_sharing_policy_t policy);
+          double bandwidth, double latency, e_surf_link_sharing_policy_t policy,
+          lmm_system_t system);
 
       void apply_event(tmgr_trace_iterator_t event, double value) override;
       void updateBandwidth(double value) override;
index 082934e..7473f1f 100644 (file)
 namespace simgrid {
   namespace surf {
 
-    class NetworkModel;
     class NetworkAction;
 
-    /*************
-     * Callbacks *
-     *************/
-
-
     /** @brief Callback signal fired when the state of a NetworkAction changes
      *  Signature: `void(NetworkAction *action, simgrid::surf::Action::State old, simgrid::surf::Action::State current)` */
     XBT_PUBLIC_DATA(simgrid::xbt::signal<void(simgrid::surf::NetworkAction*, simgrid::surf::Action::State, simgrid::surf::Action::State)>) networkActionStateChangedCallbacks;
 
-      }
+  }
 }
 /*********
  * Model *
@@ -70,8 +64,6 @@ namespace simgrid {
        * @param bandwidth The initial bandwidth of the Link in bytes per second
        * @param latency The initial latency of the Link in seconds
        * @param policy The sharing policy of the Link
-       * @param properties Dictionary of properties associated to this Resource
-       * @return The created Link
        */
       virtual Link* createLink(const char *name, double bandwidth, double latency,
           e_surf_link_sharing_policy_t policy, xbt_dict_t properties)=0;
@@ -79,7 +71,7 @@ namespace simgrid {
       /**
        * @brief Create a communication between two hosts.
        * @details It makes calls to the routing part, and execute the communication
-       * between the two end points.
+       *          between the two end points.
        *
        * @param src The source of the communication
        * @param dst The destination of the communication
@@ -144,23 +136,10 @@ namespace simgrid {
         public simgrid::surf::Resource,
         public simgrid::surf::PropertyHolder {
         public:
-      /**
-       * @brief Link constructor
-       *
-       * @param model The NetworkModel associated to this Link
-       * @param name The name of the Link
-       * @param props Dictionary of properties associated to this Link
-       */
-      Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t props);
 
-      /**
-       * @brief Link constructor
-       *
-       * @param model The NetworkModel associated to this Link
-       * @param name The name of the Link
-       * @param props Dictionary of properties associated to this Link
-       * @param constraint The lmm constraint associated to this Cpu if it is part of a LMM component
-       */
+      /** @brief Constructor of non-LMM links */
+      Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t props);
+      /** @brief Constructor of LMM links */
       Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t props, lmm_constraint_t constraint);
 
       /* Link destruction logic */
index 1932e5a..9fa57c7 100644 (file)
@@ -151,7 +151,14 @@ void sg_platf_new_host(sg_platf_host_cbarg_t host)
     cpu->setStateTrace(host->state_trace);
   if (host->speed_trace)
     cpu->setSpeedTrace(host->speed_trace);
-  surf_host_model->createHost(host->id, netcard, cpu, host->properties)->attach(h);
+  surf_host_model->createHost(host->id, netcard, cpu)->attach(h);
+
+  if (host->properties) {
+    xbt_dict_cursor_t cursor=NULL;
+    char *key,*data;
+    xbt_dict_foreach(host->properties,cursor,key,data)
+      h->setProperty(key,data);
+  }
 
   if (host->pstate != 0)
     cpu->setPState(host->pstate);
index b5ada0e..7fe3e71 100644 (file)
@@ -406,7 +406,7 @@ public:
   bool operator==(const Resource &other) const;
 
   /**
-   * @brief Apply an event of external load event to that storage
+   * @brief Apply an event of external load event to that resource
    *
    * @param event What happened
    * @param value [TODO]
index e640cc3..75017d8 100644 (file)
@@ -32,9 +32,9 @@ VMModel::vm_list_t VMModel::ws_vms;
  * Resource *
  ************/
 
-VirtualMachine::VirtualMachine(HostModel *model, const char *name, xbt_dict_t props, simgrid::s4u::Host *hostPM)
-: HostImpl(model, name, props, NULL, NULL, NULL)
-, p_hostPM(hostPM)
+VirtualMachine::VirtualMachine(HostModel *model, const char *name, simgrid::s4u::Host *hostPM)
+: HostImpl(model, name, NULL, NULL, NULL)
+, hostPM_(hostPM)
 {
   VMModel::ws_vms.push_back(*this);
   simgrid::s4u::Host::by_name_or_create(name)->extension_set<simgrid::surf::HostImpl>(this);
@@ -48,7 +48,7 @@ VirtualMachine::~VirtualMachine()
   VMDestructedCallbacks(this);
   VMModel::ws_vms.erase(VMModel::vm_list_t::s_iterator_to(*this));
   /* Free the cpu_action of the VM. */
-  XBT_ATTRIB_UNUSED int ret = p_action->unref();
+  XBT_ATTRIB_UNUSED int ret = action_->unref();
   xbt_assert(ret == 1, "Bug: some resource still remains");
 }
 
@@ -74,7 +74,7 @@ void VirtualMachine::turnOff() {
 
 /** @brief returns the physical machine on which the VM is running **/
 sg_host_t VirtualMachine::getPm() {
-  return p_hostPM;
+  return hostPM_;
 }
 
 }
index 5c6872e..b65d291 100644 (file)
@@ -53,17 +53,7 @@ extern XBT_PRIVATE simgrid::xbt::signal<void(simgrid::surf::VirtualMachine*)> VM
  */
 class VirtualMachine : public HostImpl {
 public:
-  /**
-   * @brief Constructor
-   *
-   * @param model VMModel associated to this VM
-   * @param name The name of the VM
-   * @param props Dictionary of properties associated to this VM
-   * @param host The host
-   */
-  VirtualMachine(simgrid::surf::HostModel *model, const char *name, xbt_dict_t props, simgrid::s4u::Host *host);
-
-  /** @brief Destructor */
+  VirtualMachine(simgrid::surf::HostModel *model, const char *name, simgrid::s4u::Host *host);
   ~VirtualMachine();
 
   /** @brief Suspend the VM */
@@ -88,13 +78,14 @@ public:
   virtual void setAffinity(Cpu *cpu, unsigned long mask)=0;
 
   /* The vm object of the lower layer */
-  CpuAction *p_action;
-  simgrid::s4u::Host *p_hostPM;
+  CpuAction *action_;
+protected:
+  simgrid::s4u::Host *hostPM_;
 
+public:
   void turnOn() override;
   void turnOff() override;
 
-public:
   e_surf_vm_state_t getState();
   void setState(e_surf_vm_state_t state);
 protected:
index aee9b99..fde670b 100644 (file)
@@ -33,7 +33,7 @@ void VMHL13Model::updateActionsState(double /*now*/, double /*delta*/) {}
 
 VirtualMachine *VMHL13Model::createVM(const char *name, sg_host_t host_PM)
 {
-  VirtualMachine* vm = new VMHL13(this, name, NULL, host_PM);
+  VirtualMachine* vm = new VMHL13(this, name, host_PM);
   VMCreatedCallbacks(vm);
   return vm;
 }
@@ -75,8 +75,8 @@ double VMHL13Model::next_occuring_event(double now)
     Cpu *cpu = ws_vm->p_cpu;
     xbt_assert(cpu, "cpu-less host");
 
-    double solved_value = ws_vm->p_action->getVariable()->value;
-    XBT_DEBUG("assign %f to vm %s @ pm %s", solved_value, ws_vm->getName(), ws_vm->p_hostPM->name().c_str());
+    double solved_value = ws_vm->action_->getVariable()->value;
+    XBT_DEBUG("assign %f to vm %s @ pm %s", solved_value, ws_vm->getName(), ws_vm->getPm()->name().c_str());
 
     // TODO: check lmm_update_constraint_bound() works fine instead of the below manual substitution.
     // cpu_cas01->constraint->bound = solved_value;
@@ -95,8 +95,8 @@ double VMHL13Model::next_occuring_event(double now)
 /************
  * Resource *
  ************/
-VMHL13::VMHL13(VMModel *model, const char* name, xbt_dict_t props, sg_host_t host_PM)
- : VirtualMachine(model, name, props, host_PM)
+VMHL13::VMHL13(VMModel *model, const char* name, sg_host_t host_PM)
+ : VirtualMachine(model, name, host_PM)
 {
   /* Currently, we assume a VM has no storage. */
   p_storage = NULL;
@@ -123,20 +123,20 @@ VMHL13::VMHL13(VMModel *model, const char* name, xbt_dict_t props, sg_host_t hos
 
   /* We create cpu_action corresponding to a VM process on the host operating system. */
   /* FIXME: TODO: we have to periodically input GUESTOS_NOISE to the system? how ? */
-  p_action = sub_cpu->execution_start(0);
+  action_ = sub_cpu->execution_start(0);
 
-  XBT_VERB("Create VM(%s)@PM(%s) with %ld mounted disks", name, p_hostPM->name().c_str(), xbt_dynar_length(p_storage));
+  XBT_VERB("Create VM(%s)@PM(%s) with %ld mounted disks", name, hostPM_->name().c_str(), xbt_dynar_length(p_storage));
 }
 
 void VMHL13::suspend()
 {
-  p_action->suspend();
+  action_->suspend();
   p_vm_state = SURF_VM_STATE_SUSPENDED;
 }
 
 void VMHL13::resume()
 {
-  p_action->resume();
+  action_->resume();
   p_vm_state = SURF_VM_STATE_RUNNING;
 }
 
@@ -145,7 +145,7 @@ void VMHL13::save()
   p_vm_state = SURF_VM_STATE_SAVING;
 
   /* FIXME: do something here */
-  p_action->suspend();
+  action_->suspend();
   p_vm_state = SURF_VM_STATE_SAVED;
 }
 
@@ -154,7 +154,7 @@ void VMHL13::restore()
   p_vm_state = SURF_VM_STATE_RESTORING;
 
   /* FIXME: do something here */
-  p_action->resume();
+  action_->resume();
   p_vm_state = SURF_VM_STATE_RUNNING;
 }
 
@@ -163,47 +163,47 @@ void VMHL13::migrate(sg_host_t host_dest)
 {
    HostImpl *surfHost_dst = host_dest->extension<HostImpl>();
    const char *vm_name = getName();
-   const char *pm_name_src = p_hostPM->name().c_str();
+   const char *pm_name_src = hostPM_->name().c_str();
    const char *pm_name_dst = surfHost_dst->getName();
 
    /* update net_elm with that of the destination physical host */
    sg_host_by_name(vm_name)->pimpl_netcard = sg_host_by_name(pm_name_dst)->pimpl_netcard;
 
-   p_hostPM = host_dest;
+   hostPM_ = host_dest;
 
    /* Update vcpu's action for the new pm */
    {
      /* create a cpu action bound to the pm model at the destination. */
      CpuAction *new_cpu_action = static_cast<CpuAction*>(host_dest->pimpl_cpu->execution_start(0));
 
-     Action::State state = p_action->getState();
+     Action::State state = action_->getState();
      if (state != Action::State::done)
        XBT_CRITICAL("FIXME: may need a proper handling, %d", static_cast<int>(state));
-     if (p_action->getRemainsNoUpdate() > 0)
-       XBT_CRITICAL("FIXME: need copy the state(?), %f", p_action->getRemainsNoUpdate());
+     if (action_->getRemainsNoUpdate() > 0)
+       XBT_CRITICAL("FIXME: need copy the state(?), %f", action_->getRemainsNoUpdate());
 
      /* keep the bound value of the cpu action of the VM. */
-     double old_bound = p_action->getBound();
+     double old_bound = action_->getBound();
      if (old_bound != 0) {
        XBT_DEBUG("migrate VM(%s): set bound (%f) at %s", vm_name, old_bound, pm_name_dst);
        new_cpu_action->setBound(old_bound);
      }
 
-     XBT_ATTRIB_UNUSED int ret = p_action->unref();
+     XBT_ATTRIB_UNUSED int ret = action_->unref();
      xbt_assert(ret == 1, "Bug: some resource still remains");
 
-     p_action = new_cpu_action;
+     action_ = new_cpu_action;
    }
 
    XBT_DEBUG("migrate VM(%s): change PM (%s to %s)", vm_name, pm_name_src, pm_name_dst);
 }
 
 void VMHL13::setBound(double bound){
p_action->setBound(bound);
action_->setBound(bound);
 }
 
 void VMHL13::setAffinity(Cpu *cpu, unsigned long mask){
p_action->setAffinity(cpu, mask);
action_->setAffinity(cpu, mask);
 }
 
 }
index 7b66c2a..a901656 100644 (file)
@@ -45,7 +45,7 @@ public:
 
 class VMHL13 : public VirtualMachine {
 public:
-  VMHL13(VMModel *model, const char* name, xbt_dict_t props, sg_host_t host_PM);
+  VMHL13(VMModel *model, const char* name, sg_host_t host_PM);
   ~VMHL13() {}
 
   void suspend() override;
index f9659a1..cb0d0f4 100644 (file)
@@ -236,6 +236,23 @@ void xbt_cfg_register(xbt_cfg_t * cfg, const char *name, const char *desc, e_xbt
   xbt_dict_set((xbt_dict_t) * cfg, name, res, NULL);
 }
 
+void xbt_cfg_register_double(xbt_cfg_t * cfg, const char *name, const char *desc, double default_value,xbt_cfg_cb_t cb_set){
+  xbt_cfg_register(cfg,name,desc,xbt_cfgelm_double,1,1,cb_set);
+  xbt_cfg_setdefault_double(cfg, name, default_value);
+}
+void xbt_cfg_register_int(xbt_cfg_t * cfg, const char *name, const char *desc, int default_value,xbt_cfg_cb_t cb_set){
+  xbt_cfg_register(cfg,name,desc,xbt_cfgelm_int,1,1,cb_set);
+  xbt_cfg_setdefault_int(cfg, name, default_value);
+}
+void xbt_cfg_register_string(xbt_cfg_t * cfg, const char *name, const char *desc, const char *default_value, xbt_cfg_cb_t cb_set){
+  xbt_cfg_register(cfg,name,desc,xbt_cfgelm_string,1,1,cb_set);
+  xbt_cfg_setdefault_string(cfg, name, default_value);
+}
+void xbt_cfg_register_boolean(xbt_cfg_t * cfg, const char *name, const char *desc, const char*default_value,xbt_cfg_cb_t cb_set){
+  xbt_cfg_register(cfg,name,desc,xbt_cfgelm_boolean,1,1,cb_set);
+  xbt_cfg_setdefault_boolean(cfg, name, default_value);
+}
+
 void xbt_cfg_register_alias(xbt_cfg_t * cfg, const char *newname, const char *oldname)
 {
   if (*cfg == NULL)
index 88f426d..ae4b051 100644 (file)
@@ -477,8 +477,7 @@ Each category has an optional appender. An appender is a pointer to a
 structure which starts with a pointer to a do_append() function. do_append()
 prints a message to a log.
 
-When a category is passed a message by one of the logging macros, the
-category performs the following actions:
+When a category is passed a message by one of the logging macros, the category performs the following actions:
 
   - if the category has an appender, the message is passed to the
     appender's do_append() function,
@@ -1025,8 +1024,6 @@ static void _set_inherited_thresholds(xbt_log_category_t cat)
       _set_inherited_thresholds(child);
     }
   }
-
-
 }
 
 void xbt_log_threshold_set(xbt_log_category_t cat, e_xbt_log_priority_t threshold)
@@ -1211,8 +1208,7 @@ void xbt_log_control_set(const char *control_string)
     return;
   }
 
-  /* Parse each entry and either use it right now (if the category was already
-     created), or store it for further use */
+  /* Parse each entry and either use it right now (if the category was already created), or store it for further use */
   xbt_dynar_foreach(set_strings, cpt, str) {
     xbt_log_category_t cat = NULL;
 
index 4e912b9..0bf7c56 100644 (file)
@@ -1,7 +1,4 @@
-set(bin_files
-  ${bin_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/generate_report
-  PARENT_SCOPE)
+set(bin_files  ${bin_files}  ${CMAKE_CURRENT_SOURCE_DIR}/generate_report  PARENT_SCOPE)
 
 if("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_HOME_DIRECTORY}")
 else()
@@ -13,24 +10,20 @@ else()
     endforeach()
 endif()
 
-set(txt_files
-  ${txt_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/README
-  ${CMAKE_CURRENT_SOURCE_DIR}/runtests
-  ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  ${CMAKE_CURRENT_SOURCE_DIR}/hostfile
-  ${CMAKE_CURRENT_SOURCE_DIR}/checktests
-  ${CMAKE_CURRENT_SOURCE_DIR}/generate_report
-  ${CMAKE_CURRENT_SOURCE_DIR}/util/mtest.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/util/dtypes.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/util/mtest_manual.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/f77/testlist
-  ${CMAKE_CURRENT_SOURCE_DIR}/f90/testlist
-  ${CMAKE_CURRENT_SOURCE_DIR}/include/mpitestconf.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/include/dtypes.h
-  ${CMAKE_CURRENT_SOURCE_DIR}/include/mpitest.h
-  PARENT_SCOPE)
-
+set(txt_files  ${txt_files}  ${CMAKE_CURRENT_SOURCE_DIR}/README
+                             ${CMAKE_CURRENT_SOURCE_DIR}/runtests
+                             ${CMAKE_CURRENT_SOURCE_DIR}/testlist
+                             ${CMAKE_CURRENT_SOURCE_DIR}/hostfile
+                             ${CMAKE_CURRENT_SOURCE_DIR}/checktests
+                             ${CMAKE_CURRENT_SOURCE_DIR}/generate_report
+                             ${CMAKE_CURRENT_SOURCE_DIR}/util/mtest.c
+                             ${CMAKE_CURRENT_SOURCE_DIR}/util/dtypes.c
+                             ${CMAKE_CURRENT_SOURCE_DIR}/util/mtest_manual.c
+                             ${CMAKE_CURRENT_SOURCE_DIR}/f77/testlist
+                             ${CMAKE_CURRENT_SOURCE_DIR}/f90/testlist
+                             ${CMAKE_CURRENT_SOURCE_DIR}/include/mpitestconf.h
+                             ${CMAKE_CURRENT_SOURCE_DIR}/include/dtypes.h
+                             ${CMAKE_CURRENT_SOURCE_DIR}/include/mpitest.h                            PARENT_SCOPE)
 
 #build only once files used in each test (C version compiled here at root, F77 is in f77/util, and F90 in F90/util)
 
index 90eba93..7f27b9f 100644 (file)
@@ -9,65 +9,16 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
   include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include/")
 
-  add_executable(attr2type attr2type.c)
-  add_executable(attrend2 attrend2.c)
-  add_executable(attrend attrend.c)
-  add_executable(attrerr attrerr.c)
-  add_executable(attrerrcomm attrerrcomm.c)
-  add_executable(attrerrtype attrerrtype.c)
-#  add_executable(attric attric.c)
-  add_executable(attrorder attrorder.c)
-  add_executable(attrordercomm attrordercomm.c)
-  add_executable(attrordertype attrordertype.c)
-  add_executable(attrt attrt.c)
-  add_executable(baseattr2 baseattr2.c)
-  add_executable(baseattrcomm baseattrcomm.c)
-  add_executable(fkeyval fkeyval.c)
-#  add_executable(fkeyvalcomm fkeyvalcomm.c)
-#  add_executable(fkeyvaltype fkeyvaltype.c)
-#  add_executable(keyval_double_free keyval_double_free.c)
-
-  target_link_libraries(attr2type simgrid mtest_c)
-  target_link_libraries(attrend2 simgrid mtest_c)
-  target_link_libraries(attrend simgrid mtest_c)
-  target_link_libraries(attrerr simgrid mtest_c)
-  target_link_libraries(attrerrcomm simgrid mtest_c)
-  target_link_libraries(attrerrtype simgrid mtest_c)
-#  target_link_libraries(attric simgrid mtest_c)
-  target_link_libraries(attrorder simgrid mtest_c)
-  target_link_libraries(attrordercomm simgrid mtest_c)
-  target_link_libraries(attrordertype simgrid mtest_c)
-  target_link_libraries(attrt simgrid mtest_c)
-  target_link_libraries(baseattr2 simgrid mtest_c)
-  target_link_libraries(baseattrcomm simgrid mtest_c)
-  target_link_libraries(fkeyval simgrid mtest_c)
-#  target_link_libraries(fkeyvalcomm simgrid mtest_c)
-#  target_link_libraries(fkeyvaltype simgrid mtest_c)
-#  target_link_libraries(keyval_double_free simgrid mtest_c)
-
+  foreach(file attr2type attrend2 attrend attrerr attrerrcomm attrerrtype attrorder attrordercomm attrordertype attrt
+          baseattr2 baseattrcomm fkeyval) #attric fkeyvalcomm fkeyvaltype keyval_double_free
+    add_executable(${file} ${file}.c)
+    target_link_libraries(${file} simgrid mtest_c)
+  endforeach()
 endif()
 
-set(examples_src
-  ${examples_src}
-  ${CMAKE_CURRENT_SOURCE_DIR}/attr2type.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/attrend2.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/attrend.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/attrerr.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/attrerrcomm.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/attrerrtype.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/attric.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/attrorder.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/attrordercomm.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/attrordertype.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/attrt.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/baseattr2.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/baseattrcomm.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/fkeyval.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/fkeyvalcomm.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/fkeyvaltype.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/keyval_double_free.c
-  PARENT_SCOPE)
-set(txt_files
-  ${txt_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE)
+foreach(file attr2type attrend2 attrend attrerr attrerrcomm attrerrtype attrorder attrordercomm attrordertype attrt
+        baseattr2 baseattrcomm fkeyval attric fkeyvalcomm fkeyvaltype keyval_double_free)
+  set(examples_src  ${examples_src} ${CMAKE_CURRENT_SOURCE_DIR}/${file}.c)
+endforeach()
+set(examples_src  ${examples_src}                                        PARENT_SCOPE)
+set(txt_files     ${txt_files}     ${CMAKE_CURRENT_SOURCE_DIR}/testlist  PARENT_SCOPE)
index 07b3936..3e8e1c7 100644 (file)
@@ -9,87 +9,20 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
   include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include/")
 
-  add_executable(cmfree cmfree.c)
-  add_executable(cmsplit2 cmsplit2.c)
-  add_executable(cmsplit cmsplit.c)
-  add_executable(cmsplit_type cmsplit_type.c)
-  add_executable(commcreate1 commcreate1.c)
-  add_executable(comm_create_group comm_create_group.c)
-  add_executable(comm_group_half comm_group_half.c)
-  add_executable(comm_group_rand comm_group_rand.c)
-#  add_executable(comm_idup comm_idup.c)
-#  add_executable(comm_idup_mul comm_idup_mul.c)
-#  add_executable(comm_idup_overlap comm_idup_overlap.c)
-  add_executable(comm_info comm_info.c)
-#  add_executable(commname commname.c)
-  add_executable(ctxalloc ctxalloc.c)
-  add_executable(ctxsplit ctxsplit.c)
-  add_executable(dup dup.c)
-#  add_executable(dupic dupic.c)
-  add_executable(dup_with_info dup_with_info.c)
-#  add_executable(ic1 ic1.c)
-#  add_executable(ic2 ic2.c)
-#  add_executable(iccreate iccreate.c)
-#  add_executable(icgroup icgroup.c)
-#  add_executable(icm icm.c)
-#  add_executable(icsplit icsplit.c)
-#  add_executable(probe-intercomm probe-intercomm.c)
-
-  target_link_libraries(cmfree simgrid mtest_c)
-  target_link_libraries(cmsplit2 simgrid mtest_c)
-  target_link_libraries(cmsplit simgrid mtest_c)
-  target_link_libraries(cmsplit_type simgrid mtest_c)
-  target_link_libraries(commcreate1 simgrid mtest_c)
-  target_link_libraries(comm_create_group simgrid mtest_c)
-  target_link_libraries(comm_group_half simgrid mtest_c)
-  target_link_libraries(comm_group_rand simgrid mtest_c)
-#  target_link_libraries(comm_idup simgrid mtest_c)
-  target_link_libraries(comm_info simgrid mtest_c)
-#  target_link_libraries(commname simgrid mtest_c)
-  target_link_libraries(ctxalloc simgrid mtest_c)
-  target_link_libraries(ctxsplit simgrid mtest_c)
-  target_link_libraries(dup simgrid mtest_c)
-#  target_link_libraries(dupic simgrid mtest_c)
-  target_link_libraries(dup_with_info simgrid mtest_c)
-#  target_link_libraries(ic1 simgrid mtest_c)
-#  target_link_libraries(ic2 simgrid mtest_c)
-#  target_link_libraries(iccreate simgrid mtest_c)
-#  target_link_libraries(icgroup simgrid mtest_c)
-#  target_link_libraries(icm simgrid mtest_c)
-#  target_link_libraries(icsplit simgrid mtest_c)
-#  target_link_libraries(probe-intercomm simgrid mtest_c)
-
+  foreach(file cmfree cmsplit2 cmsplit cmsplit_type commcreate1 comm_create_group comm_group_half comm_group_rand 
+          comm_info ctxalloc ctxsplit dup dup_with_info) 
+    # not compiled files
+    # comm_idup comm_idup_mul comm_idup_overlap commname dupic ic1 ic2 iccreate icgroup icm icsplit probe-intercomm 
+    add_executable(${file} ${file}.c)
+    target_link_libraries(${file} simgrid mtest_c)
+  endforeach()
 endif()
 
-set(examples_src
-  ${examples_src}
- ${CMAKE_CURRENT_SOURCE_DIR}/cmfree.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/cmsplit2.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/cmsplit.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/cmsplit_type.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/commcreate1.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/comm_create_group.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/comm_group_half.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/comm_group_rand.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/comm_idup.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/comm_idup_overlap.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/comm_idup_mul.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/comm_info.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/commname.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/ctxalloc.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/ctxsplit.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/dup.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/dupic.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/dup_with_info.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/ic1.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/ic2.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/iccreate.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/icgroup.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/icm.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/icsplit.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/probe-intercomm.c 
-  PARENT_SCOPE)
-set(txt_files
-  ${txt_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE)
+foreach(file cmfree cmsplit2 cmsplit cmsplit_type commcreate1 comm_create_group comm_group_half comm_group_rand 
+        comm_idup comm_idup_overlap comm_idup_mul comm_info commname ctxalloc ctxsplit dup dupic dup_with_info ic1 ic2 
+        iccreate icgroup icm icsplit probe-intercomm)
+  set(examples_src ${examples_src}  ${CMAKE_CURRENT_SOURCE_DIR}/${file}.c)
+endforeach()
+
+set(examples_src ${examples_src}                                         PARENT_SCOPE)
+set(txt_files    ${txt_files}     ${CMAKE_CURRENT_SOURCE_DIR}/testlist   PARENT_SCOPE)
index f5229fc..d50ee7b 100644 (file)
@@ -9,209 +9,37 @@ if(enable_smpi AND enable_smpi_MPICH3_testsuite)
   include_directories(BEFORE "${CMAKE_HOME_DIRECTORY}/include/smpi")
   include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../include/")
 
-#  add_executable(blockindexed-misc blockindexed-misc.c)
-  add_executable(blockindexed-zero-count blockindexed-zero-count.c)
-#  add_executable(contents contents.c)
-  add_executable(contigstruct contigstruct.c)
-  add_executable(contig-zero-count contig-zero-count.c)
-  add_executable(cxx-types cxx-types.c)
-#  add_executable(darray-cyclic darray-cyclic.c)
-#  add_executable(darray-pack darray-pack.c)
-  add_executable(dataalign dataalign.c)
-  add_executable(gaddress gaddress.c)
-#  add_executable(get-elements get-elements.c)
-#  add_executable(get-elements-pairtype get-elements-pairtype.c)
-#  add_executable(getpartelm getpartelm.c)
-#  add_executable(get-struct get-struct.c)
-  add_executable(hindexed_block hindexed_block.c)
-  add_executable(hindexed_block_contents hindexed_block_contents.c)
-#  add_executable(hindexed-zeros hindexed-zeros.c)
-#  add_executable(hvecblklen hvecblklen.c)
-#  add_executable(indexed-misc indexed-misc.c)
-#  add_executable(large-count large-count.c)
-#  add_executable(large_type large_type.c)
-#  add_executable(large_type_sendrec large_type_sendrec.c)
-#  add_executable(lbub lbub.c)
-  add_executable(localpack localpack.c)
-  add_executable(longdouble longdouble.c)
-#  add_executable(lots-of-types lots-of-types.c)
-#  add_executable(pairtype-pack pairtype-pack.c)
-#  add_executable(pairtype-size-extent pairtype-size-extent.c)
-#  add_executable(segtest segtest.c)
+  foreach(file blockindexed-zero-count contigstruct contig-zero-count cxx-types dataalign gaddress hindexed_block
+          hindexed_block_contents localpack longdouble simple-commit simple-pack simple-resized simple-size-extent
+          struct-derived-zeros struct-ezhov struct-pack struct-verydeep struct-zero-count tfree transpose-pack tresized2
+          tresized typecommit typefree typelb typename unpack zeroblks zeroparms)
+    # not compiled files
+    # blockindexed-misc contents darray-cyclic darray-pack get-elements get-elements-pairtype getpartelm get-struct
+    # hindexed-zeros hvecblklen indexed-misc large-count large_type large_type_sendrec lbub lots-of-type pairtype-pack
+    # pairtype-size-extent segtest simple-pack-external sizedtypes slice-pack slice-pack-external struct-empty-el
+    # struct-no-real-type structpack2 subarray subarray-pack tmatchsize triangular-pack unusual-noncontigs vecblklen
+    # zero-blklen-vector
+    add_executable(${file} ${file}.c)
+    target_link_libraries(${file} simgrid mtest_c)
+  endforeach()
+
   add_executable(sendrecvt2 ${CMAKE_CURRENT_SOURCE_DIR}/../util/dtypes.c sendrecvt2.c)
   add_executable(sendrecvt4 ${CMAKE_CURRENT_SOURCE_DIR}/../util/dtypes.c sendrecvt4.c)
-  add_executable(simple-commit simple-commit.c)
-  add_executable(simple-pack simple-pack.c)
-#  add_executable(simple-pack-external simple-pack-external.c)
-  add_executable(simple-resized simple-resized.c)
-  add_executable(simple-size-extent simple-size-extent.c)
-#  add_executable(sizedtypes sizedtypes.c)
-#  add_executable(slice-pack slice-pack.c)
-#  add_executable(slice-pack-external slice-pack-external.c)
-  add_executable(struct-derived-zeros struct-derived-zeros.c)
-#  add_executable(struct-empty-el struct-empty-el.c)
-  add_executable(struct-ezhov struct-ezhov.c)
-#  add_executable(struct-no-real-types struct-no-real-types.c)
-  add_executable(struct-pack struct-pack.c)
-#  add_executable(structpack2 structpack2.c)
-  add_executable(struct-verydeep struct-verydeep.c)
-  add_executable(struct-zero-count struct-zero-count.c)
-#  add_executable(subarray subarray.c)
-#  add_executable(subarray-pack subarray-pack.c)
-  add_executable(tfree tfree.c)
-#  add_executable(tmatchsize tmatchsize.c)
-  add_executable(transpose-pack transpose-pack.c)
-  add_executable(tresized2 tresized2.c)
-  add_executable(tresized tresized.c)
-#  add_executable(triangular-pack triangular-pack.c)
-  add_executable(typecommit typecommit.c)
-  add_executable(typefree typefree.c)
-  add_executable(typelb typelb.c)
-  add_executable(typename typename.c)
-  add_executable(unpack unpack.c)
-#  add_executable(unusual-noncontigs unusual-noncontigs.c)
-#  add_executable(vecblklen vecblklen.c)
-#  add_executable(zero-blklen-vector zero-blklen-vector.c)
-  add_executable(zeroblks zeroblks.c)
-  add_executable(zeroparms zeroparms.c)
-
-#  target_link_libraries(blockindexed-misc simgrid mtest_c)
-  target_link_libraries(blockindexed-zero-count simgrid mtest_c)
-#  target_link_libraries(contents simgrid mtest_c)
-  target_link_libraries(contigstruct simgrid mtest_c)
-  target_link_libraries(contig-zero-count simgrid mtest_c)
-  target_link_libraries(cxx-types simgrid mtest_c)
-#  target_link_libraries(darray-cyclic simgrid mtest_c)
-#  target_link_libraries(darray-pack simgrid mtest_c)
-  target_link_libraries(dataalign simgrid mtest_c)
-  target_link_libraries(gaddress simgrid mtest_c)
-#  target_link_libraries(get-elements simgrid mtest_c)
-#  target_link_libraries(get-elements-pairtype simgrid mtest_c)
-#  target_link_libraries(getpartelm simgrid mtest_c)
-#  target_link_libraries(get-struct simgrid mtest_c)
-  target_link_libraries(hindexed_block simgrid mtest_c)
-  target_link_libraries(hindexed_block_contents simgrid mtest_c)
-#  target_link_libraries(hindexed-zeros simgrid mtest_c).
-#  target_link_libraries(hvecblklen simgrid mtest_c)
-#  target_link_libraries(indexed-misc simgrid mtest_c)
-#  target_link_libraries(large-count simgrid mtest_c)
-#  target_link_libraries(large_type simgrid mtest_c)
-#  target_link_libraries(large_type_sendrec simgrid mtest_c)
-#  target_link_libraries(lbub simgrid mtest_c)
-  target_link_libraries(localpack simgrid mtest_c)
-  target_link_libraries(longdouble simgrid mtest_c)
-#  target_link_libraries(lots-of-types simgrid mtest_c)
-#  target_link_libraries(pairtype-pack simgrid mtest_c)
-#  target_link_libraries(pairtype-size-extent simgrid mtest_c)
-#  target_link_libraries(segtest simgrid mtest_c)
   target_link_libraries(sendrecvt2 simgrid mtest_c)
   target_link_libraries(sendrecvt4 simgrid mtest_c)
-  target_link_libraries(simple-commit simgrid mtest_c)
-  target_link_libraries(simple-pack simgrid mtest_c)
-#  target_link_libraries(simple-pack-external simgrid mtest_c)
-  target_link_libraries(simple-resized simgrid mtest_c)
-  target_link_libraries(simple-size-extent simgrid mtest_c)
-#  target_link_libraries(sizedtypes simgrid mtest_c)
-#  target_link_libraries(slice-pack simgrid mtest_c)
-#  target_link_libraries(slice-pack-external simgrid mtest_c)
-  target_link_libraries(struct-derived-zeros simgrid mtest_c)
-#  target_link_libraries(struct-empty-el simgrid mtest_c)
-  target_link_libraries(struct-ezhov simgrid mtest_c)
-#  target_link_libraries(struct-no-real-types simgrid mtest_c)
-  target_link_libraries(struct-pack simgrid mtest_c)
-#  target_link_libraries(structpack2 simgrid mtest_c)
-  target_link_libraries(struct-verydeep simgrid mtest_c)
-  target_link_libraries(struct-zero-count simgrid mtest_c)
-#  target_link_libraries(subarray simgrid mtest_c)
-#  target_link_libraries(subarray-pack simgrid mtest_c)
-  target_link_libraries(tfree simgrid mtest_c)
-#  target_link_libraries(tmatchsize simgrid mtest_c)
-  target_link_libraries(transpose-pack simgrid mtest_c)
-  target_link_libraries(tresized2 simgrid mtest_c)
-  target_link_libraries(tresized simgrid mtest_c)
-#  target_link_libraries(triangular-pack simgrid mtest_c)
-  target_link_libraries(typecommit simgrid mtest_c)
-  target_link_libraries(typefree simgrid mtest_c)
-  target_link_libraries(typelb simgrid mtest_c)
-  target_link_libraries(typename simgrid mtest_c)
-  target_link_libraries(unpack simgrid mtest_c)
-#  target_link_libraries(unusual-noncontigs simgrid mtest_c)
-#  target_link_libraries(vecblklen simgrid mtest_c)
-#  target_link_libraries(zero-blklen-vector simgrid mtest_c)
-  target_link_libraries(zeroblks simgrid mtest_c)
-  target_link_libraries(zeroparms simgrid mtest_c)
-
 endif()
 
-set(examples_src
-  ${examples_src}
- ${CMAKE_CURRENT_SOURCE_DIR}/blockindexed-misc.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/blockindexed-zero-count.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/contents.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/contigstruct.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/contig-zero-count.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/cxx-types.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/darray-cyclic.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/darray-pack.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/dataalign.c
- ${CMAKE_CURRENT_SOURCE_DIR}/gaddress.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/get-elements.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/get-elements-pairtype.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/getpartelm.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/get-struct.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/hindexed_block.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/hindexed_block_contents.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/hindexed-zeros.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/hvecblklen.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/indexed-misc.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/large-count.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/large_type.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/large_type_sendrec.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/lbub.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/localpack.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/longdouble.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/lots-of-types.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/pairtype-pack.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/pairtype-size-extent.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/segtest.c
- ${CMAKE_CURRENT_SOURCE_DIR}/sendrecvt2.c
- ${CMAKE_CURRENT_SOURCE_DIR}/sendrecvt4.c
- ${CMAKE_CURRENT_SOURCE_DIR}/simple-commit.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/simple-pack.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/simple-pack-external.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/simple-resized.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/simple-size-extent.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/sizedtypes.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/slice-pack.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/slice-pack-external.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/struct-derived-zeros.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/struct-empty-el.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/struct-ezhov.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/struct-no-real-types.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/struct-pack.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/structpack2.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/struct-verydeep.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/struct-zero-count.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/subarray.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/subarray-pack.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/tfree.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/tmatchsize.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/transpose-pack.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/tresized2.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/tresized.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/triangular-pack.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/typecommit.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/typefree.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/typelb.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/typename.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/unpack.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/unusual-noncontigs.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/vecblklen.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/zero-blklen-vector.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/zeroblks.c 
- ${CMAKE_CURRENT_SOURCE_DIR}/zeroparms.c 
-  PARENT_SCOPE)
-set(txt_files
-  ${txt_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/testlist
-  PARENT_SCOPE)
+foreach(file blockindexed-misc blockindexed-zero-count contents contigstruct contig-zero-count cxx-types darray-cyclic 
+        darray-pack dataalign gaddress get-elements get-elements-pairtype getpartelm get-struct hindexed_block
+        hindexed_block_contents hindexed-zeros hvecblklen indexed-misc large-count large_type large_type_sendrec lbub
+        localpack longdouble lots-of-types pairtype-pack pairtype-size-extent segtest sendrecvt2 sendrecvt4 
+        simple-commit simple-pack simple-pack-external simple-resized simple-size-extent sizedtypes slice-pack 
+        slice-pack-external struct-derived-zeros struct-empty-el struct-ezhov struct-no-real-types struct-pack 
+        structpack2 struct-verydeep struct-zero-count subarray subarray-pack tfree tmatchsize transpose-pack tresized2
+        tresized triangular-pack typecommit typefree typelb typename unpack unusual-noncontigs vecblklen 
+        zero-blklen-vector zeroblks zeroparms)
+  set(examples_src  ${examples_src} ${CMAKE_CURRENT_SOURCE_DIR}/${file}.c)
+endforeach()
+
+set(examples_src  ${examples_src}                                        PARENT_SCOPE)
+set(txt_files     ${txt_files}     ${CMAKE_CURRENT_SOURCE_DIR}/testlist  PARENT_SCOPE)
index 6a32436..05a1e89 100644 (file)
@@ -389,7 +389,7 @@ set(S4U_SRC
 )
 
 set(SIMGRID_SRC
-  src/simgrid/sg_config.c
+  src/simgrid/sg_config.cpp
   src/simgrid/host.cpp
   src/simgrid/util.hpp
   )
@@ -924,13 +924,6 @@ set(txt_files
 # Add your CMakeLists file here to see your subdir built.
 set(CMAKEFILES_TXT
   examples/java/CMakeLists.txt
-    examples/java/async/CMakeLists.txt
-    examples/java/cloud/CMakeLists.txt
-    examples/java/cloud/migration/CMakeLists.txt
-    examples/java/mutualExclusion/CMakeLists.txt
-    examples/java/pingPong/CMakeLists.txt
-    examples/java/priority/CMakeLists.txt
-    examples/java/tracing/CMakeLists.txt
   examples/msg/CMakeLists.txt
     examples/msg/cloud/CMakeLists.txt
     examples/msg/mc/CMakeLists.txt