From: degomme Date: Sun, 3 Apr 2016 22:16:36 +0000 (+0200) Subject: Merge branch 'master' of git+ssh://scm.gforge.inria.fr/gitroot/simgrid/simgrid X-Git-Tag: v3_13~193 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/4b597ac2a550a08c142293e59e4c4d2bdad8ff5d?hp=e20f73916d9a6e7673754b4ace779c896793a19d Merge branch 'master' of git+ssh://scm.gforge.inria.fr/gitroot/simgrid/simgrid --- diff --git a/.gitignore b/.gitignore index 792d54aa45..9d1bf7e3f9 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/doc/doxygen/platform.doc b/doc/doxygen/platform.doc index 2c5e144d2a..ce025a06ee 100644 --- a/doc/doxygen/platform.doc +++ b/doc/doxygen/platform.doc @@ -1814,7 +1814,7 @@ characteristics (lookup : time to resolve a route): \li Cluster: 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 +<cabinet> 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 +<cabinet>, <backbone> and friends is rather tedious. The +easiest way to retrieve some control of your model without diving into +the <cluster> internals is certainly to create one separate +<cluster> 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 diff --git a/examples/java/CMakeLists.txt b/examples/java/CMakeLists.txt index d8ed9bfc53..bcc30d75ef 100644 --- a/examples/java/CMakeLists.txt +++ b/examples/java/CMakeLists.txt @@ -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() diff --git a/examples/java/mutualExclusion/Coordinator.java b/examples/java/app/centralizedmutex/Coordinator.java similarity index 98% rename from examples/java/mutualExclusion/Coordinator.java rename to examples/java/app/centralizedmutex/Coordinator.java index f605279144..f89fef94f4 100644 --- a/examples/java/mutualExclusion/Coordinator.java +++ b/examples/java/app/centralizedmutex/Coordinator.java @@ -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; diff --git a/examples/java/mutualExclusion/GrantTask.java b/examples/java/app/centralizedmutex/GrantTask.java similarity index 91% rename from examples/java/mutualExclusion/GrantTask.java rename to examples/java/app/centralizedmutex/GrantTask.java index fb405a908d..ff21e2a90a 100644 --- a/examples/java/mutualExclusion/GrantTask.java +++ b/examples/java/app/centralizedmutex/GrantTask.java @@ -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 {} diff --git a/examples/java/async/AsyncTest.java b/examples/java/app/centralizedmutex/Main.java similarity index 58% rename from examples/java/async/AsyncTest.java rename to examples/java/app/centralizedmutex/Main.java index 0c6d1fecde..7a8a7ac2eb 100644 --- a/examples/java/async/AsyncTest.java +++ b/examples/java/app/centralizedmutex/Main.java @@ -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(); diff --git a/examples/java/mutualExclusion/Node.java b/examples/java/app/centralizedmutex/Node.java similarity index 97% rename from examples/java/mutualExclusion/Node.java rename to examples/java/app/centralizedmutex/Node.java index 353dfd7947..b8fd1d1f95 100644 --- a/examples/java/mutualExclusion/Node.java +++ b/examples/java/app/centralizedmutex/Node.java @@ -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; diff --git a/examples/java/mutualExclusion/ReleaseTask.java b/examples/java/app/centralizedmutex/ReleaseTask.java similarity index 91% rename from examples/java/mutualExclusion/ReleaseTask.java rename to examples/java/app/centralizedmutex/ReleaseTask.java index 2a0e020e33..ebc2286b8d 100644 --- a/examples/java/mutualExclusion/ReleaseTask.java +++ b/examples/java/app/centralizedmutex/ReleaseTask.java @@ -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 {} diff --git a/examples/java/mutualExclusion/RequestTask.java b/examples/java/app/centralizedmutex/RequestTask.java similarity index 93% rename from examples/java/mutualExclusion/RequestTask.java rename to examples/java/app/centralizedmutex/RequestTask.java index 1b86e4b874..adfc3a78ae 100644 --- a/examples/java/mutualExclusion/RequestTask.java +++ b/examples/java/app/centralizedmutex/RequestTask.java @@ -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 index 0000000000..feaf851cd8 --- /dev/null +++ b/examples/java/app/centralizedmutex/app_centralizedmutex.tesh @@ -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... diff --git a/examples/java/mutualExclusion/mutex_centralized_deployment.xml b/examples/java/app/centralizedmutex/centralizedmutex.xml similarity index 68% rename from examples/java/mutualExclusion/mutex_centralized_deployment.xml rename to examples/java/app/centralizedmutex/centralizedmutex.xml index 0f92c3053f..4d4bcb8e9d 100644 --- a/examples/java/mutualExclusion/mutex_centralized_deployment.xml +++ b/examples/java/app/centralizedmutex/centralizedmutex.xml @@ -1,14 +1,14 @@ - + - + - + diff --git a/examples/java/app/masterworker/Master.java b/examples/java/app/masterworker/Master.java index a030b69438..6c2b872c70 100644 --- a/examples/java/app/masterworker/Master.java +++ b/examples/java/app/masterworker/Master.java @@ -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. */ diff --git a/examples/java/app/masterworker/README b/examples/java/app/masterworker/README index 14bc4c4a3e..56d2f2988f 100644 --- a/examples/java/app/masterworker/README +++ b/examples/java/app/masterworker/README @@ -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: diff --git a/examples/java/app/masterworker/Worker.java b/examples/java/app/masterworker/Worker.java index 9ca9a2d26a..ff68aacd6f 100644 --- a/examples/java/app/masterworker/Worker.java +++ b/examples/java/app/masterworker/Worker.java @@ -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); diff --git a/examples/java/pingPong/PingPongTest.java b/examples/java/app/pingpong/Main.java similarity index 51% rename from examples/java/pingPong/PingPongTest.java rename to examples/java/app/pingpong/Main.java index cb7ef02b6b..cce0555d35 100644 --- a/examples/java/pingPong/PingPongTest.java +++ b/examples/java/app/pingpong/Main.java @@ -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(); } } diff --git a/examples/java/pingPong/PingPongTask.java b/examples/java/app/pingpong/PingPongTask.java similarity index 97% rename from examples/java/pingPong/PingPongTask.java rename to examples/java/app/pingpong/PingPongTask.java index 17f2bedcdf..f4a556f3e9 100644 --- a/examples/java/pingPong/PingPongTask.java +++ b/examples/java/app/pingpong/PingPongTask.java @@ -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; diff --git a/examples/java/pingPong/Receiver.java b/examples/java/app/pingpong/Receiver.java similarity index 82% rename from examples/java/pingPong/Receiver.java rename to examples/java/app/pingpong/Receiver.java index 0d6f1ced74..7bb0d29d4f 100644 --- a/examples/java/pingPong/Receiver.java +++ b/examples/java/app/pingpong/Receiver.java @@ -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 { diff --git a/examples/java/pingPong/Sender.java b/examples/java/app/pingpong/Sender.java similarity index 87% rename from examples/java/pingPong/Sender.java rename to examples/java/app/pingpong/Sender.java index 530b67a306..9644b4de1d 100644 --- a/examples/java/pingPong/Sender.java +++ b/examples/java/app/pingpong/Sender.java @@ -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 index 0000000000..0c704bfca0 --- /dev/null +++ b/examples/java/app/pingpong/app_pingpong.tesh @@ -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 index 4167099fd9..0000000000 --- a/examples/java/async/CMakeLists.txt +++ /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 index 39b1a4f9b6..0000000000 --- a/examples/java/async/FinalizeTask.java +++ /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 index 965bb8c72f..0000000000 --- a/examples/java/async/Forwarder.java +++ /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 index 19e66ea9ff..0000000000 --- a/examples/java/async/Master.java +++ /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 comms = new ArrayList(); - - 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 index 0d6dcc2dcb..0000000000 --- a/examples/java/async/README +++ /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 index 3d32d2a0e2..0000000000 --- a/examples/java/async/Slave.java +++ /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 index 8a33bbb201..0000000000 --- a/examples/java/async/async.tesh +++ /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 index 7ef4d13b62..0000000000 --- a/examples/java/async/asyncDeployment.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/java/async/dsend/Main.java b/examples/java/async/dsend/Main.java new file mode 100644 index 0000000000..09d441af23 --- /dev/null +++ b/examples/java/async/dsend/Main.java @@ -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 index 0000000000..4f6c3f0a9d --- /dev/null +++ b/examples/java/async/dsend/Receiver.java @@ -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 index 0000000000..d80429af6f --- /dev/null +++ b/examples/java/async/dsend/Sender.java @@ -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 index 0000000000..484f90b38e --- /dev/null +++ b/examples/java/async/dsend/async_dsend.tesh @@ -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 index 6ffe068ba8..0000000000 --- a/examples/java/cloud/CMakeLists.txt +++ /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 index d0cebd084f..0000000000 --- a/examples/java/cloud/FinalizeTask.java +++ /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 diff --git a/examples/java/cloud/Cloud.java b/examples/java/cloud/masterworker/Main.java similarity index 87% rename from examples/java/cloud/Cloud.java rename to examples/java/cloud/masterworker/Main.java index f5f2cd9de7..c241c7896a 100644 --- a/examples/java/cloud/Cloud.java +++ b/examples/java/cloud/masterworker/Main.java @@ -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); } diff --git a/examples/java/cloud/Master.java b/examples/java/cloud/masterworker/Master.java similarity index 79% rename from examples/java/cloud/Master.java rename to examples/java/cloud/masterworker/Master.java index 211b17b7dd..c783dec801 100644 --- a/examples/java/cloud/Master.java +++ b/examples/java/cloud/masterworker/Master.java @@ -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 vms = new ArrayList(); // 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); } diff --git a/examples/java/cloud/Slave.java b/examples/java/cloud/masterworker/Worker.java similarity index 83% rename from examples/java/cloud/Slave.java rename to examples/java/cloud/masterworker/Worker.java index b8b3728da2..2220730fef 100644 --- a/examples/java/cloud/Slave.java +++ b/examples/java/cloud/masterworker/Worker.java @@ -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(); diff --git a/examples/java/cloud/cloud.tesh b/examples/java/cloud/masterworker/cloud_masterworker.tesh similarity index 92% rename from examples/java/cloud/cloud.tesh rename to examples/java/cloud/masterworker/cloud_masterworker.tesh index 7dd261faed..2b38e95daa 100644 --- a/examples/java/cloud/cloud.tesh +++ b/examples/java/cloud/masterworker/cloud_masterworker.tesh @@ -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 index 104b39e0b1..0000000000 --- a/examples/java/cloud/migration/CMakeLists.txt +++ /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) diff --git a/examples/java/cloud/migration/Main.java b/examples/java/cloud/migration/Main.java index df35b648d5..244569f6e5 100644 --- a/examples/java/cloud/migration/Main.java +++ b/examples/java/cloud/migration/Main.java @@ -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(); } } diff --git a/examples/java/cloud/migration/Test.java b/examples/java/cloud/migration/Test.java index e67b32c4e6..c9ccc6e088 100644 --- a/examples/java/cloud/migration/Test.java +++ b/examples/java/cloud/migration/Test.java @@ -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 index 0000000000..73aec7ceca --- /dev/null +++ b/examples/java/cloud/migration/cloud_migration.tesh @@ -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 index 0b5dffa14d..0000000000 --- a/examples/java/cloud/migration/deploy_simple.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/examples/java/cloud/migration/migration.tesh b/examples/java/cloud/migration/migration.tesh deleted file mode 100644 index 0368370d49..0000000000 --- a/examples/java/cloud/migration/migration.tesh +++ /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 index a5e9bed788..0000000000 --- a/examples/java/mutualExclusion/CMakeLists.txt +++ /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 index ef1fc02dda..0000000000 --- a/examples/java/mutualExclusion/MutexCentral.java +++ /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 index 1c03a20da3..0000000000 --- a/examples/java/mutualExclusion/mutualexclusion.tesh +++ /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 index 910bedb066..0000000000 --- a/examples/java/pingPong/CMakeLists.txt +++ /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 index c7eec34aac..0000000000 --- a/examples/java/pingPong/pingPongDeployment.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/examples/java/pingPong/pingpong.tesh b/examples/java/pingPong/pingpong.tesh deleted file mode 100644 index 93643a7272..0000000000 --- a/examples/java/pingPong/pingpong.tesh +++ /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 index f254e91e32..0000000000 --- a/examples/java/priority/CMakeLists.txt +++ /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 index 004ef19c2d..0000000000 --- a/examples/java/priority/priority.tesh +++ /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 index ddf55b5eb5..0000000000 --- a/examples/java/priority/priorityDeployment.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/examples/java/process/kill/Killer.java b/examples/java/process/kill/Killer.java index b46590838e..35c799073c 100644 --- a/examples/java/process/kill/Killer.java +++ b/examples/java/process/kill/Killer.java @@ -1,5 +1,3 @@ -/* Master of a basic master/slave example in Java */ - /* Copyright (c) 2006-2014. The SimGrid Team. * All rights reserved. */ diff --git a/examples/java/priority/Priority.java b/examples/java/task/priority/Main.java similarity index 95% rename from examples/java/priority/Priority.java rename to examples/java/task/priority/Main.java index 10fa76acb9..adf7fc2d10 100644 --- a/examples/java/priority/Priority.java +++ b/examples/java/task/priority/Main.java @@ -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) { diff --git a/examples/java/priority/Test.java b/examples/java/task/priority/Test.java similarity index 97% rename from examples/java/priority/Test.java rename to examples/java/task/priority/Test.java index 8fb44d3a4c..7edd279f3c 100644 --- a/examples/java/priority/Test.java +++ b/examples/java/task/priority/Test.java @@ -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 index 0000000000..a2784b2570 --- /dev/null +++ b/examples/java/task/priority/priority.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/examples/java/task/priority/task_priority.tesh b/examples/java/task/priority/task_priority.tesh new file mode 100644 index 0000000000..c859505556 --- /dev/null +++ b/examples/java/task/priority/task_priority.tesh @@ -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! diff --git a/examples/java/tracing/TracingTest.java b/examples/java/trace/pingpong/Main.java similarity index 65% rename from examples/java/tracing/TracingTest.java rename to examples/java/trace/pingpong/Main.java index 5a033e3386..1e82ea8077 100644 --- a/examples/java/tracing/TracingTest.java +++ b/examples/java/trace/pingpong/Main.java @@ -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"); diff --git a/examples/java/tracing/PingPongTask.java b/examples/java/trace/pingpong/PingPongTask.java similarity index 97% rename from examples/java/tracing/PingPongTask.java rename to examples/java/trace/pingpong/PingPongTask.java index 22ee817f0a..e6ea4bb7e9 100644 --- a/examples/java/tracing/PingPongTask.java +++ b/examples/java/trace/pingpong/PingPongTask.java @@ -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; diff --git a/examples/java/tracing/Receiver.java b/examples/java/trace/pingpong/Receiver.java similarity index 87% rename from examples/java/tracing/Receiver.java rename to examples/java/trace/pingpong/Receiver.java index 725d9cfa14..0a57d52496 100644 --- a/examples/java/tracing/Receiver.java +++ b/examples/java/trace/pingpong/Receiver.java @@ -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 { diff --git a/examples/java/tracing/Sender.java b/examples/java/trace/pingpong/Sender.java similarity index 91% rename from examples/java/tracing/Sender.java rename to examples/java/trace/pingpong/Sender.java index 8d9206b023..f17cabd6ff 100644 --- a/examples/java/tracing/Sender.java +++ b/examples/java/trace/pingpong/Sender.java @@ -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 index 0000000000..e302f26bb7 --- /dev/null +++ b/examples/java/trace/pingpong/trace_pingpong.tesh @@ -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 index 1bb938cd01..0000000000 --- a/examples/java/tracing/CMakeLists.txt +++ /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 index 4b0937c9f0..0000000000 --- a/examples/java/tracing/tracingPingPong.tesh +++ /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 index ed7db68c49..0000000000 --- a/examples/java/tracing/tracingPingPongDeployment.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/examples/msg/CMakeLists.txt b/examples/msg/CMakeLists.txt index 1cbec028ff..1021e691bc 100644 --- a/examples/msg/CMakeLists.txt +++ b/examples/msg/CMakeLists.txt @@ -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) diff --git a/examples/msg/cloud/master_worker_vm.c b/examples/msg/cloud/master_worker_vm.c index bd0bfc788e..0137bdfa26 100644 --- a/examples/msg/cloud/master_worker_vm.c +++ b/examples/msg/cloud/master_worker_vm.c @@ -12,7 +12,7 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example") /** @addtogroup MSG_examples * - * - cloud/masterslave_virtual_machines.c: Master/workers + * - cloud/master_worker_vm.c: Master/workers * example on a cloud. The classical example revisited to demonstrate the use of virtual machines. */ diff --git a/examples/msg/cloud/master_worker_vm.tesh b/examples/msg/cloud/master_worker_vm.tesh index 37b2eb0e0f..9187794b29 100644 --- a/examples/msg/cloud/master_worker_vm.tesh +++ b/examples/msg/cloud/master_worker_vm.tesh @@ -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 diff --git a/examples/msg/energy-ptask/energy-ptask.c b/examples/msg/energy-ptask/energy-ptask.c index 46990fa126..522ed982ca 100644 --- a/examples/msg/energy-ptask/energy-ptask.c +++ b/examples/msg/energy-ptask/energy-ptask.c @@ -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; } diff --git a/examples/msg/failures/failures.c b/examples/msg/failures/failures.c index 070d75af8f..4a261ceaeb 100644 --- a/examples/msg/failures/failures.c +++ b/examples/msg/failures/failures.c @@ -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(); diff --git a/examples/msg/failures/failures.tesh b/examples/msg/failures/failures.tesh index 7d80ba5931..77da0165b9 100644 --- a/examples/msg/failures/failures.tesh +++ b/examples/msg/failures/failures.tesh @@ -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 index e7e5e228eb..0000000000 --- a/examples/msg/masterslave-mailbox/masterslave-mailbox-multicore_d.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/examples/msg/masterslave-mailbox/masterslave-mailbox-vivaldi.tesh b/examples/msg/masterslave-mailbox/masterslave-mailbox-vivaldi.tesh deleted file mode 100644 index e8e9e1c885..0000000000 --- a/examples/msg/masterslave-mailbox/masterslave-mailbox-vivaldi.tesh +++ /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 index d5a4930f9d..0000000000 --- a/examples/msg/masterslave-mailbox/masterslave-mailbox-vivaldi_d.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/msg/masterslave-mailbox/masterslave-mailbox_d.xml b/examples/msg/masterslave-mailbox/masterslave-mailbox_d.xml deleted file mode 100644 index 5bd6985e18..0000000000 --- a/examples/msg/masterslave-mailbox/masterslave-mailbox_d.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/examples/msg/masterslave/masterslave.tesh b/examples/msg/masterslave/masterslave.tesh deleted file mode 100644 index dedea57bb8..0000000000 --- a/examples/msg/masterslave/masterslave.tesh +++ /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 index 53d2099688..0000000000 --- a/examples/msg/masterslave/masterslave_cpu_ti.tesh +++ /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 index 6ebf11b2f4..0000000000 --- a/examples/msg/masterslave/masterslave_d.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/msg/masterslave-mailbox/masterslave-mailbox-multicore.tesh b/examples/msg/masterworker-mailbox/masterworker-mailbox-multicore.tesh similarity index 51% rename from examples/msg/masterslave-mailbox/masterslave-mailbox-multicore.tesh rename to examples/msg/masterworker-mailbox/masterworker-mailbox-multicore.tesh index e7c6c05c53..b1312624a1 100644 --- a/examples/msg/masterslave-mailbox/masterslave-mailbox-multicore.tesh +++ b/examples/msg/masterworker-mailbox/masterworker-mailbox-multicore.tesh @@ -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 index 0000000000..8a011ce1ea --- /dev/null +++ b/examples/msg/masterworker-mailbox/masterworker-mailbox-multicore_d.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/examples/msg/masterworker-mailbox/masterworker-mailbox-vivaldi.tesh b/examples/msg/masterworker-mailbox/masterworker-mailbox-vivaldi.tesh new file mode 100644 index 0000000000..2f488002a2 --- /dev/null +++ b/examples/msg/masterworker-mailbox/masterworker-mailbox-vivaldi.tesh @@ -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 index 0000000000..a1660c0f3c --- /dev/null +++ b/examples/msg/masterworker-mailbox/masterworker-mailbox-vivaldi_d.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/msg/masterslave-mailbox/masterslave-mailbox.c b/examples/msg/masterworker-mailbox/masterworker-mailbox.c similarity index 85% rename from examples/msg/masterslave-mailbox/masterslave-mailbox.c rename to examples/msg/masterworker-mailbox/masterworker-mailbox.c index 2002f02e00..e381763989 100644 --- a/examples/msg/masterslave-mailbox/masterslave-mailbox.c +++ b/examples/msg/masterworker-mailbox/masterworker-mailbox.c @@ -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(); diff --git a/examples/msg/masterslave-mailbox/masterslave-mailbox.tesh b/examples/msg/masterworker-mailbox/masterworker-mailbox.tesh similarity index 60% rename from examples/msg/masterslave-mailbox/masterslave-mailbox.tesh rename to examples/msg/masterworker-mailbox/masterworker-mailbox.tesh index 2c86e25184..ba612eeb4e 100644 --- a/examples/msg/masterslave-mailbox/masterslave-mailbox.tesh +++ b/examples/msg/masterworker-mailbox/masterworker-mailbox.tesh @@ -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 index 0000000000..d4630047de --- /dev/null +++ b/examples/msg/masterworker-mailbox/masterworker-mailbox_d.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/examples/msg/masterslave/masterslave.c b/examples/msg/masterworker/masterworker.c similarity index 74% rename from examples/msg/masterslave/masterslave.c rename to examples/msg/masterworker/masterworker.c index c731acd891..664836ac43 100644 --- a/examples/msg/masterslave/masterslave.c +++ b/examples/msg/masterworker/masterworker.c @@ -10,8 +10,8 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example") /** @addtogroup MSG_examples * - * - masterslave/masterslave.c: Master/slaves example. 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 + * - masterworker/masterworker.c: Master/workers example. 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 index 0000000000..158a2b963c --- /dev/null +++ b/examples/msg/masterworker/masterworker.tesh @@ -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 index 0000000000..ee58a962df --- /dev/null +++ b/examples/msg/masterworker/masterworker_cpu_ti.tesh @@ -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 index 0000000000..4746b97a3e --- /dev/null +++ b/examples/msg/masterworker/masterworker_d.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/msg/ns3/3hosts_2links_d.xml b/examples/msg/ns3/3hosts_2links_d.xml index 915c5c8769..661289ad11 100644 --- a/examples/msg/ns3/3hosts_2links_d.xml +++ b/examples/msg/ns3/3hosts_2links_d.xml @@ -6,7 +6,7 @@ - + diff --git a/examples/msg/ns3/3links-timer_d.xml b/examples/msg/ns3/3links-timer_d.xml index ee686fd20f..b74c49cf41 100644 --- a/examples/msg/ns3/3links-timer_d.xml +++ b/examples/msg/ns3/3links-timer_d.xml @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + diff --git a/examples/msg/ns3/3links_d.xml b/examples/msg/ns3/3links_d.xml index 41da034300..2aa4d1198c 100644 --- a/examples/msg/ns3/3links_d.xml +++ b/examples/msg/ns3/3links_d.xml @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + diff --git a/examples/msg/ns3/crosstraffic_d.xml b/examples/msg/ns3/crosstraffic_d.xml index 212bca5297..95d99dd329 100644 --- a/examples/msg/ns3/crosstraffic_d.xml +++ b/examples/msg/ns3/crosstraffic_d.xml @@ -6,7 +6,7 @@ - + @@ -14,7 +14,7 @@ - + @@ -22,7 +22,7 @@ - + @@ -30,7 +30,7 @@ - + diff --git a/examples/msg/ns3/dogbone_d.xml b/examples/msg/ns3/dogbone_d.xml index 0fd2359c25..4288e6331d 100644 --- a/examples/msg/ns3/dogbone_d.xml +++ b/examples/msg/ns3/dogbone_d.xml @@ -11,10 +11,10 @@ - + - + diff --git a/examples/msg/ns3/ns3.c b/examples/msg/ns3/ns3.c index 9a8df98255..9c2ecf795f 100644 --- a/examples/msg/ns3/ns3.c +++ b/examples/msg/ns3/ns3.c @@ -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]); diff --git a/examples/msg/ns3/ns3.tesh b/examples/msg/ns3/ns3.tesh index 50c83db585..869ec46bd9 100644 --- a/examples/msg/ns3/ns3.tesh +++ b/examples/msg/ns3/ns3.tesh @@ -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 diff --git a/examples/msg/ns3/one_cluster_d.xml b/examples/msg/ns3/one_cluster_d.xml index 98102d2f59..9c3dd43837 100644 --- a/examples/msg/ns3/one_cluster_d.xml +++ b/examples/msg/ns3/one_cluster_d.xml @@ -6,7 +6,7 @@ - + diff --git a/examples/msg/ns3/onelink_d.xml b/examples/msg/ns3/onelink_d.xml index a3450be011..39113f5d90 100644 --- a/examples/msg/ns3/onelink_d.xml +++ b/examples/msg/ns3/onelink_d.xml @@ -6,7 +6,7 @@ - + diff --git a/examples/msg/ns3/two_clusters_d.xml b/examples/msg/ns3/two_clusters_d.xml index 81d1aef69f..99f25838db 100644 --- a/examples/msg/ns3/two_clusters_d.xml +++ b/examples/msg/ns3/two_clusters_d.xml @@ -6,7 +6,7 @@ - + diff --git a/examples/msg/priority/priority_d.xml b/examples/msg/priority/priority_d.xml deleted file mode 100644 index 7a6c462180..0000000000 --- a/examples/msg/priority/priority_d.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/examples/msg/priority/priority.c b/examples/msg/task-priority/task-priority.c similarity index 77% rename from examples/msg/priority/priority.c rename to examples/msg/task-priority/task-priority.c index 6b951e443e..37f477bea4 100644 --- a/examples/msg/priority/priority.c +++ b/examples/msg/task-priority/task-priority.c @@ -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); diff --git a/examples/msg/priority/priority.tesh b/examples/msg/task-priority/task-priority.tesh similarity index 60% rename from examples/msg/priority/priority.tesh rename to examples/msg/task-priority/task-priority.tesh index 34f171279b..57fe178567 100644 --- a/examples/msg/priority/priority.tesh +++ b/examples/msg/task-priority/task-priority.tesh @@ -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 index 0000000000..dc50e150ee --- /dev/null +++ b/examples/msg/task-priority/task-priority_d.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/examples/msg/token_ring/token_ring.c b/examples/msg/token_ring/token_ring.c index bc270cd1ac..4dc5d71b6a 100644 --- a/examples/msg/token_ring/token_ring.c +++ b/examples/msg/token_ring/token_ring.c @@ -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)); diff --git a/examples/msg/trace-categories/trace-categories.c b/examples/msg/trace-categories/trace-categories.c index acc12b3b0a..704ddc14ab 100644 --- a/examples/msg/trace-categories/trace-categories.c +++ b/examples/msg/trace-categories/trace-categories.c @@ -6,8 +6,8 @@ /** @addtogroup MSG_examples * - * - tracing/categories.c 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 + * - tracing/categories.c 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(); diff --git a/examples/msg/trace-categories/trace-categories.tesh b/examples/msg/trace-categories/trace-categories.tesh index cbbde48c1d..12486a1505 100644 --- a/examples/msg/trace-categories/trace-categories.tesh +++ b/examples/msg/trace-categories/trace-categories.tesh @@ -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' diff --git a/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c b/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c index ba3eb0885b..c9c45038da 100644 --- a/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c +++ b/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.c @@ -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(); diff --git a/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.tesh b/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.tesh index 87f0aad486..44bc0977a9 100644 --- a/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.tesh +++ b/examples/msg/trace-link-srcdst-user-variables/trace-link-srcdst-user-variables.tesh @@ -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' diff --git a/examples/msg/trace-link-user-variables/trace-link-user-variables.c b/examples/msg/trace-link-user-variables/trace-link-user-variables.c index cb9f44fd8f..5c97ac6cb0 100644 --- a/examples/msg/trace-link-user-variables/trace-link-user-variables.c +++ b/examples/msg/trace-link-user-variables/trace-link-user-variables.c @@ -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(); diff --git a/examples/msg/trace-link-user-variables/trace-link-user-variables.tesh b/examples/msg/trace-link-user-variables/trace-link-user-variables.tesh index ca53d3d602..75ef0a1683 100644 --- a/examples/msg/trace-link-user-variables/trace-link-user-variables.tesh +++ b/examples/msg/trace-link-user-variables/trace-link-user-variables.tesh @@ -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' diff --git a/examples/msg/trace-masterslave/trace-masterslave.c b/examples/msg/trace-masterworker/trace-masterworker.c similarity index 89% rename from examples/msg/trace-masterslave/trace-masterslave.c rename to examples/msg/trace-masterworker/trace-masterworker.c index 1b8e266bfa..335dd095e0 100644 --- a/examples/msg/trace-masterslave/trace-masterslave.c +++ b/examples/msg/trace-masterworker/trace-masterworker.c @@ -6,8 +6,8 @@ /** @addtogroup MSG_examples * - * - tracing/ms.c 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 + * - tracing/ms.c 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(); diff --git a/examples/msg/trace-masterslave/trace-masterslave.tesh b/examples/msg/trace-masterworker/trace-masterworker.tesh similarity index 62% rename from examples/msg/trace-masterslave/trace-masterslave.tesh rename to examples/msg/trace-masterworker/trace-masterworker.tesh index f0d6da8da6..2e6686c029 100644 --- a/examples/msg/trace-masterslave/trace-masterslave.tesh +++ b/examples/msg/trace-masterworker/trace-masterworker.tesh @@ -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 diff --git a/examples/msg/trace-user-variables/trace-user-variables.c b/examples/msg/trace-user-variables/trace-user-variables.c index 5e6a05735c..35100475f2 100644 --- a/examples/msg/trace-user-variables/trace-user-variables.c +++ b/examples/msg/trace-user-variables/trace-user-variables.c @@ -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(); diff --git a/examples/msg/trace-user-variables/trace-user-variables.tesh b/examples/msg/trace-user-variables/trace-user-variables.tesh index 7e77460bb4..42d3e50c43 100644 --- a/examples/msg/trace-user-variables/trace-user-variables.tesh +++ b/examples/msg/trace-user-variables/trace-user-variables.tesh @@ -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 diff --git a/examples/platforms/config_tracing.xml b/examples/platforms/config_tracing.xml index 9b32ad8bdb..496876da06 100644 --- a/examples/platforms/config_tracing.xml +++ b/examples/platforms/config_tracing.xml @@ -5,9 +5,9 @@ - - - + + + diff --git a/include/simgrid/s4u/host.hpp b/include/simgrid/s4u/host.hpp index 2e5144a0ca..04ce05eb24 100644 --- a/include/simgrid/s4u/host.hpp +++ b/include/simgrid/s4u/host.hpp @@ -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); diff --git a/include/xbt/config.h b/include/xbt/config.h index cfef4ffd59..1373a8ff06 100644 --- a/include/xbt/config.h +++ b/include/xbt/config.h @@ -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); diff --git a/src/instr/instr_config.cpp b/src/instr/instr_config.cpp index 1bd97943b5..5237dfbf60 100644 --- a/src/instr/instr_config.cpp +++ b/src/instr/instr_config.cpp @@ -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, diff --git a/src/mc/LivenessChecker.cpp b/src/mc/LivenessChecker.cpp index 2034ebf126..abf36efed1 100644 --- a/src/mc/LivenessChecker.cpp +++ b/src/mc/LivenessChecker.cpp @@ -133,7 +133,7 @@ std::shared_ptr 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 initial_pair = std::make_shared(); - initial_pair->automaton_state = automaton_state; - initial_pair->graph_state = std::shared_ptr(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 const& pair : livenessStack_) { - if (pair == livenessStack_.back()) + for (std::shared_ptr const& pair : explorationStack_) { + if (pair == explorationStack_.back()) break; std::shared_ptr state = pair->graph_state; @@ -311,7 +294,7 @@ LivenessChecker::~LivenessChecker() RecordTrace LivenessChecker::getRecordTrace() // override { RecordTrace res; - for (std::shared_ptr const& pair : livenessStack_) { + for (std::shared_ptr 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 LivenessChecker::getTextualTrace() // override { std::vector trace; - for (std::shared_ptr const& pair : livenessStack_) { + for (std::shared_ptr 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 LivenessChecker::getTextualTrace() // override int LivenessChecker::main(void) { - int visited_num = -1; - - while (!livenessStack_.empty()){ - - /* Get current pair */ - std::shared_ptr current_pair = livenessStack_.back(); + while (!explorationStack_.empty()){ + std::shared_ptr 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 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 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 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 next_pair = std::make_shared(); - next_pair->graph_state = std::shared_ptr(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 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 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 LivenessChecker::newPair(Pair* current_pair, xbt_automaton_state_t state) +{ + std::shared_ptr next_pair = std::make_shared(); + next_pair->automaton_state = state; + next_pair->graph_state = std::shared_ptr(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 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); diff --git a/src/mc/LivenessChecker.hpp b/src/mc/LivenessChecker.hpp index f94a9e171b..f12c0b3be1 100644 --- a/src/mc/LivenessChecker.hpp +++ b/src/mc/LivenessChecker.hpp @@ -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 newPair(Pair* pair, xbt_automaton_state_t state); public: + // A stack of (application_state, automaton_state) pairs for DFS exploration: + std::list> explorationStack_; std::list> acceptancePairs_; - std::list> livenessStack_; std::list> visitedPairs_; }; diff --git a/src/mc/ModelChecker.cpp b/src/mc/ModelChecker.cpp index e0d636b490..af180ca3df 100644 --- a/src/mc/ModelChecker.cpp +++ b/src/mc/ModelChecker.cpp @@ -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"); diff --git a/src/mc/mc_compare.cpp b/src/mc/mc_compare.cpp index 9874969b4c..06192f23c3 100644 --- a/src/mc/mc_compare.cpp +++ b/src/mc/mc_compare.cpp @@ -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" diff --git a/src/mc/mc_global.cpp b/src/mc/mc_global.cpp index 187a69b442..6e9b7b6683 100644 --- a/src/mc/mc_global.cpp +++ b/src/mc/mc_global.cpp @@ -31,10 +31,10 @@ #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" diff --git a/src/mc/mc_private.h b/src/mc/mc_private.h index 556eaecb3b..28c1533afb 100644 --- a/src/mc/mc_private.h +++ b/src/mc/mc_private.h @@ -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; + } } diff --git a/src/mc/mc_record.cpp b/src/mc/mc_record.cpp index 19e7db49ec..a2f6ce4633 100644 --- a/src/mc/mc_record.cpp +++ b/src/mc/mc_record.cpp @@ -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, diff --git a/src/mc/mc_visited.cpp b/src/mc/mc_visited.cpp index 8c2e869be1..fbdd510678 100644 --- a/src/mc/mc_visited.cpp +++ b/src/mc/mc_visited.cpp @@ -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" diff --git a/src/mc/simgrid_mc.cpp b/src/mc/simgrid_mc.cpp index 9e857eba7b..984ca974c6 100644 --- a/src/mc/simgrid_mc.cpp +++ b/src/mc/simgrid_mc.cpp @@ -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" diff --git a/src/s4u/s4u_host.cpp b/src/s4u/s4u_host.cpp index d28b2a6743..8d5788d0ec 100644 --- a/src/s4u/s4u_host.cpp +++ b/src/s4u/s4u_host.cpp @@ -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(); + return surf_host->getProperty(key); +} +void Host::setProperty(const char*key, const char *value){ + simgrid::simix::kernel([&] { + simgrid::surf::HostImpl* surf_host = this->extension(); + surf_host->setProperty(key,value); + }); +} + /** Get the processes attached to the host */ xbt_swag_t Host::processes() { diff --git a/src/simgrid/sg_config.c b/src/simgrid/sg_config.cpp similarity index 70% rename from src/simgrid/sg_config.c rename to src/simgrid/sg_config.cpp index 62cb97dd81..22bd4467d2 100644 --- a/src/simgrid/sg_config.c +++ b/src/simgrid/sg_config.cpp @@ -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 // 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.", diff --git a/src/surf/HostImpl.cpp b/src/surf/HostImpl.cpp index f990c45ea6..63995901bc 100644 --- a/src/surf/HostImpl.cpp +++ b/src/surf/HostImpl.cpp @@ -31,10 +31,10 @@ simgrid::xbt::Extension 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); } diff --git a/src/surf/HostImpl.hpp b/src/surf/HostImpl.hpp index 66122211fc..058140b169 100644 --- a/src/surf/HostImpl.hpp +++ b/src/surf/HostImpl.hpp @@ -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 */ diff --git a/src/surf/PropertyHolder.cpp b/src/surf/PropertyHolder.cpp index 4458b2d8db..97331c6632 100644 --- a/src/surf/PropertyHolder.cpp +++ b/src/surf/PropertyHolder.cpp @@ -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 */ diff --git a/src/surf/PropertyHolder.hpp b/src/surf/PropertyHolder.hpp index 0684173fa6..3d2cdf1d82 100644 --- a/src/surf/PropertyHolder.hpp +++ b/src/surf/PropertyHolder.hpp @@ -28,7 +28,7 @@ public: */ xbt_dict_t getProperties(); private: - xbt_dict_t p_properties = NULL; + xbt_dict_t properties_ = NULL; }; } /* namespace surf */ diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index 432189ddf6..839cea3413 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -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; diff --git a/src/surf/network_cm02.hpp b/src/surf/network_cm02.hpp index 54cf61fe09..cf97be463f 100644 --- a/src/surf/network_cm02.hpp +++ b/src/surf/network_cm02.hpp @@ -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; diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index 082934e5e4..7473f1fa8e 100644 --- a/src/surf/network_interface.hpp +++ b/src/surf/network_interface.hpp @@ -26,19 +26,13 @@ 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) 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 */ diff --git a/src/surf/sg_platf.cpp b/src/surf/sg_platf.cpp index 1932e5a89a..9fa57c7a29 100644 --- a/src/surf/sg_platf.cpp +++ b/src/surf/sg_platf.cpp @@ -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); diff --git a/src/surf/surf_interface.hpp b/src/surf/surf_interface.hpp index b5ada0e884..7fe3e71f64 100644 --- a/src/surf/surf_interface.hpp +++ b/src/surf/surf_interface.hpp @@ -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] diff --git a/src/surf/virtual_machine.cpp b/src/surf/virtual_machine.cpp index e640cc373a..75017d8790 100644 --- a/src/surf/virtual_machine.cpp +++ b/src/surf/virtual_machine.cpp @@ -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(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_; } } diff --git a/src/surf/virtual_machine.hpp b/src/surf/virtual_machine.hpp index 5c6872e1b2..b65d29198b 100644 --- a/src/surf/virtual_machine.hpp +++ b/src/surf/virtual_machine.hpp @@ -53,17 +53,7 @@ extern XBT_PRIVATE simgrid::xbt::signal 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: diff --git a/src/surf/vm_hl13.cpp b/src/surf/vm_hl13.cpp index aee9b9927d..fde670b2df 100644 --- a/src/surf/vm_hl13.cpp +++ b/src/surf/vm_hl13.cpp @@ -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(); 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(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(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); } } diff --git a/src/surf/vm_hl13.hpp b/src/surf/vm_hl13.hpp index 7b66c2a01a..a901656b9d 100644 --- a/src/surf/vm_hl13.hpp +++ b/src/surf/vm_hl13.hpp @@ -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; diff --git a/src/xbt/config.c b/src/xbt/config.c index f9659a10ff..cb0d0f4339 100644 --- a/src/xbt/config.c +++ b/src/xbt/config.c @@ -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) diff --git a/src/xbt/log.c b/src/xbt/log.c index 88f426d966..ae4b051d65 100644 --- a/src/xbt/log.c +++ b/src/xbt/log.c @@ -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; diff --git a/teshsuite/smpi/mpich3-test/CMakeLists.txt b/teshsuite/smpi/mpich3-test/CMakeLists.txt index 4e912b95a4..0bf7c568b9 100644 --- a/teshsuite/smpi/mpich3-test/CMakeLists.txt +++ b/teshsuite/smpi/mpich3-test/CMakeLists.txt @@ -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) diff --git a/teshsuite/smpi/mpich3-test/attr/CMakeLists.txt b/teshsuite/smpi/mpich3-test/attr/CMakeLists.txt index 90eba93fde..7f27b9f4f3 100644 --- a/teshsuite/smpi/mpich3-test/attr/CMakeLists.txt +++ b/teshsuite/smpi/mpich3-test/attr/CMakeLists.txt @@ -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) diff --git a/teshsuite/smpi/mpich3-test/comm/CMakeLists.txt b/teshsuite/smpi/mpich3-test/comm/CMakeLists.txt index 07b39360ad..3e8e1c71b1 100644 --- a/teshsuite/smpi/mpich3-test/comm/CMakeLists.txt +++ b/teshsuite/smpi/mpich3-test/comm/CMakeLists.txt @@ -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) diff --git a/teshsuite/smpi/mpich3-test/datatype/CMakeLists.txt b/teshsuite/smpi/mpich3-test/datatype/CMakeLists.txt index f5229fc050..d50ee7b6cb 100644 --- a/teshsuite/smpi/mpich3-test/datatype/CMakeLists.txt +++ b/teshsuite/smpi/mpich3-test/datatype/CMakeLists.txt @@ -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) diff --git a/tools/cmake/DefinePackages.cmake b/tools/cmake/DefinePackages.cmake index 6a32436756..05a1e898a0 100644 --- a/tools/cmake/DefinePackages.cmake +++ b/tools/cmake/DefinePackages.cmake @@ -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