examples/msg/bittorrent/bittorrent_platfgen
examples/msg/categories.trace
examples/msg/chainsend/chainsend
-examples/msg/chord/chord
-examples/msg/chord/chord_stateful
-examples/msg/chord/deployments
-examples/msg/chord/exp_*
+examples/msg/dht-chord/dht-chord
examples/msg/cloud/bound
examples/msg/cloud/master_worker_vm
examples/msg/cloud/migrate_vm
examples/msg/io/storage
examples/msg/irc_isend/peer
examples/msg/irc_isend/toto.txt
-examples/msg/kademlia/kademlia
+examples/msg/dht-kademlia/kademlia
examples/msg/masterslave/masterslave_arg
examples/msg/masterslave/masterslave_cluster
examples/msg/masterslave/masterslave_failure
examples/msg/parallel_contexts/pcontexts
examples/msg/parallel_contexts/pcontexts2
examples/msg/parallel_task/parallel_task
-examples/msg/pastry/pastry
+examples/msg/dht-pastry/pastry
examples/msg/pmm/pmm
examples/msg/priority/priority
examples/msg/procmig.trace
examples/s4u/io/s4u_io
examples/simdag/dax/sd_dax
examples/simdag/dot/dot_test
-examples/simdag/dot/dot_test2
examples/simdag/dot/simulate_dot
examples/simdag/goal/goal_test
examples/simdag/io/sd_io
-foreach(x exception migration parallel_task pmm priority properties suspend synchro token_ring)
+foreach(x dht-chord exception migration parallel_task pmm priority properties suspend synchro token_ring)
add_executable (${x} ${x}/${x}.c)
target_link_libraries(${x} simgrid)
set_target_properties(${x} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${x})
endforeach()
set(txt_files ${txt_files} ${CMAKE_CURRENT_SOURCE_DIR}/README PARENT_SCOPE)
+set(bin_files ${bin_files} ${CMAKE_CURRENT_SOURCE_DIR}/dht-chord/generate.py PARENT_SCOPE)
set(examples_src ${examples_src} PARENT_SCOPE)
-set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/parallel_task/parallel_task_energy.tesh PARENT_SCOPE)
-set(xml_files ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/priority/priority_d.xml
+set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/dht-chord/dht-chord_crosstraffic.tesh
+ ${CMAKE_CURRENT_SOURCE_DIR}/parallel_task/parallel_task_energy.tesh PARENT_SCOPE)
+set(xml_files ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/dht-chord/chord.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/dht-chord/chord10.xml
+ ${CMAKE_CURRENT_SOURCE_DIR}/priority/priority_d.xml
${CMAKE_CURRENT_SOURCE_DIR}/properties/properties_d.xml PARENT_SCOPE)
-foreach(x migration priority properties suspend synchro token_ring)
+foreach(x dht-chord migration priority properties suspend synchro 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()
-ADD_TESH_FACTORIES(msg-ptask "thread;ucontext;raw" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/parallel_task/parallel_task.tesh)
-ADD_TESH_FACTORIES(msg-ptask-energy "thread;ucontext;raw" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/parallel_task/parallel_task_energy.tesh)
+ADD_TESH_FACTORIES(msg-dht-chord-crosstraffic "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/dht-chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/dht-chord dht-chord_crosstraffic.tesh)
+ADD_TESH_FACTORIES(msg-dht-chord-crosstraffic-parallel "thread;ucontext;raw" --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/dht-chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/dht-chord dht-chord_crosstraffic.tesh)
+ADD_TESH_FACTORIES(msg-dht-chord-parallel "thread;ucontext;raw" --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/dht-chord --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/dht-chord dht-chord.tesh)
+ADD_TESH_FACTORIES(msg-ptask "thread;ucontext;raw" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/parallel_task/parallel_task.tesh)
+ADD_TESH_FACTORIES(msg-ptask-energy "thread;ucontext;raw" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/parallel_task/parallel_task_energy.tesh)
+
ADD_TESH(msg-pmm --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/pmm/pmm.tesh)
# This one is not usable:
# ADD_TESH_FACTORIES(msg-exception "thread;ucontext;raw" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/exception/exception.tesh)
+++ /dev/null
-add_executable (chord chord.c)
-target_link_libraries(chord simgrid)
-
-ADD_TESH_FACTORIES(msg-chord "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord_crosstraffic.tesh)
-ADD_TESH_FACTORIES(msg-chord-no-crosstraffic "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
-ADD_TESH_FACTORIES(msg-chord-parallel "thread;ucontext;raw" --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord_crosstraffic.tesh)
-ADD_TESH_FACTORIES(msg-chord-no-crosstraffic-parallel "thread;ucontext;raw" --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
-
-set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/chord.tesh
- ${CMAKE_CURRENT_SOURCE_DIR}/chord_crosstraffic.tesh PARENT_SCOPE)
-set(xml_files ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/chord.xml
- ${CMAKE_CURRENT_SOURCE_DIR}/chord10.xml PARENT_SCOPE)
-set(examples_src ${examples_src} ${CMAKE_CURRENT_SOURCE_DIR}/chord.c PARENT_SCOPE)
-set(bin_files ${bin_files} ${CMAKE_CURRENT_SOURCE_DIR}/generate.py PARENT_SCOPE)
p Testing the Chord implementation with MSG
! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/chord$EXEEXT -nb_bits=6 ${srcdir:=.}/../../platforms/platform.xml ${srcdir:=.}/chord.xml --cfg=network/crosstraffic:0 --log=msg_chord.thres:verbose "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ $SG_TEST_EXENV ${bindir:=.}/dht-chord$EXEEXT -nb_bits=6 ${srcdir:=.}/platform.xml ${srcdir:=.}/../msg/dht-chord/chord.xml --cfg=network/crosstraffic:0 --log=msg_chord.thres:verbose "--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:node@Gatien) Joining the ring with id 48, knowing node 1
> [ 0.000000] (2:node@McGee) Joining the ring with id 42, knowing node 1
> [804.364963] (0:maestro@) Simulated time: 804.365
! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/chord$EXEEXT ${srcdir:=.}/../../platforms/routing_none.xml ${srcdir:=.}/chord10.xml --cfg=network/crosstraffic:0 --log=msg_chord.thres:verbose "--log=root.fmt:[%11.6r]%e(%i:%P@%h)%e%m%n" --cfg=network/model:Constant
+$ $SG_TEST_EXENV ${bindir:=.}/dht-chord$EXEEXT ${srcdir:=.}/routing_none.xml ${srcdir:=.}/../msg/dht-chord/chord10.xml --cfg=network/crosstraffic:0 --log=msg_chord.thres:verbose "--log=root.fmt:[%11.6r]%e(%i:%P@%h)%e%m%n" --cfg=network/model:Constant
> [ 0.000000] (0:maestro@) Configuration change: Set 'network/crosstraffic' to '0'
> [ 0.000000] (0:maestro@) Configuration change: Set 'network/model' to 'Constant'
> [ 0.000000] (1:node@node-0.acme.org) My finger table:
p> Testing the Chord implementation with MSG
! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/chord$EXEEXT -nb_bits=6 ${srcdir:=.}/../../platforms/platform.xml ${srcdir:=.}/chord.xml --log=msg_chord.thres:verbose "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ $SG_TEST_EXENV ${bindir:=.}/dht-chord$EXEEXT -nb_bits=6 ${srcdir:=.}/../../platforms/platform.xml ${srcdir:=.}/chord.xml --log=msg_chord.thres:verbose "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
> [ 0.000000] (1:node@Gatien) Joining the ring with id 48, knowing node 1
> [ 0.000000] (2:node@McGee) Joining the ring with id 42, knowing node 1
> [ 0.000000] (3:node@iRMX) Joining the ring with id 38, knowing node 1
> [804.365058] (0:maestro@) Simulated time: 804.365
! output sort 19
-$ $SG_TEST_EXENV ${bindir:=.}/chord$EXEEXT ${srcdir:=.}/../../platforms/routing_none.xml ${srcdir:=.}/chord10.xml --log=msg_chord.thres:verbose "--log=root.fmt:[%11.6r]%e(%i:%P@%h)%e%m%n" --cfg=network/model:Constant
+$ $SG_TEST_EXENV ${bindir:=.}/dht-chord$EXEEXT ${srcdir:=.}/../../platforms/routing_none.xml ${srcdir:=.}/chord10.xml --log=msg_chord.thres:verbose "--log=root.fmt:[%11.6r]%e(%i:%P@%h)%e%m%n" --cfg=network/model:Constant
> [ 0.000000] (0:maestro@) Configuration change: Set 'network/model' to 'Constant'
> [ 0.000000] (1:node@node-0.acme.org) My finger table:
> [ 0.000000] (1:node@node-0.acme.org) Start | Succ
add_executable (kademlia kademlia.c node.c routing_table.c task.c answer.c)
target_link_libraries(kademlia simgrid)
-ADD_TESH_FACTORIES(msg-kademlia "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/kademlia kademlia.tesh)
-ADD_TESH(msg-kademlia-parallel --cfg contexts/nthreads:4 --cfg contexts/factory:thread ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/kademlia kademlia.tesh)
+ADD_TESH_FACTORIES(msg-dht-kademlia "thread;ucontext;raw;boost" --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/dht-kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/dht-kademlia kademlia.tesh)
+ADD_TESH(msg-dht-kademlia-parallel --cfg contexts/nthreads:4 --cfg contexts/factory:thread ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/dht-kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/dht-kademlia kademlia.tesh)
foreach (file answer kademlia node routing_table task)
set(examples_src ${examples_src} ${CMAKE_CURRENT_SOURCE_DIR}/${file}.c ${CMAKE_CURRENT_SOURCE_DIR}/${file}.h)
add_executable (pastry pastry.c)
target_link_libraries(pastry simgrid)
-# ADD_TESH_FACTORIES(msg-pastry "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/pastry --cd ${CMAKE_BINARY_DIR}/examples/msg/pastry ${CMAKE_HOME_DIRECTORY}/examples/msg/pastry/pastry.tesh)
+# ADD_TESH_FACTORIES(msg-dht-pastry "thread;ucontext;raw;boost" --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/dht-pastry --cd ${CMAKE_BINARY_DIR}/examples/msg/dht-pastry pastry.tesh)
set(tesh_files ${tesh_files} ${CMAKE_CURRENT_SOURCE_DIR}/pastry.tesh PARENT_SCOPE)
set(xml_files ${xml_files} ${CMAKE_CURRENT_SOURCE_DIR}/pastry10.xml PARENT_SCOPE)
<?xml version='1.0'?>
<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid/simgrid.dtd">
<platform version="4">
-
<process host="S1" function="master">
<argument value="20000000"/>
<argument value="C1"/>
<argument value="0"/>
</process>
-
<process host="S2" function="master">
<argument value="20000000"/>
<argument value="C2"/>
<argument value="1"/>
</process>
-
<process host="C1" function="slave">
<argument value="0"/>
</process>
#! ./tesh
p In the NS3 tests, the timings are not shown because the exact values may vary with your NS3 version.
-p We just want to check that the NS3 bindings of SimGrid are working correctly, we don't want to throughoutly test NS3.
+p We just want to check that the NS3 bindings of SimGrid are working correctly, we don't want to thoroughly test NS3.
p 3hosts 2links
if(HAVE_GRAPHVIZ)
- foreach(x dot_test ptg_test simulate_dot dot_test2)
+ foreach(x dot_test ptg_test simulate_dot)
add_executable (${x} ${x}.c)
target_link_libraries(${x} simgrid)
set(examples_src ${examples_src} ${CMAKE_CURRENT_SOURCE_DIR}/${x}.c)
+++ /dev/null
-/* simple test trying to load a DOT file. */
-
-/* Copyright (c) 2010-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. */
-
-#include "simgrid/simdag.h"
-#include <stdio.h>
-
-XBT_LOG_NEW_DEFAULT_CATEGORY(test, "Logging specific to this SimDag example");
-
-int main(int argc, char **argv)
-{
- xbt_dynar_t dot;
- unsigned int cursor;
- SD_task_t task, *dot_as_array=NULL;
-
- /* SD initialization */
- SD_init(&argc, argv);
-
- /* Check our arguments */
- xbt_assert(argc > 1, "Usage: %s dot_file", argv[0]);
-
- /* load the DOT file */
- dot = SD_dotload(argv[1]);
-
- /* Display all the tasks */
- XBT_INFO("------------------- Display all tasks of the loaded DAG ---------------------------");
- xbt_dynar_foreach(dot, cursor, task) {
- SD_task_dump(task);
- }
-
- XBT_INFO("--------------------- Transform the dynar into an array ---------------------------");
- cursor=0;
- dot_as_array = (SD_task_t*) xbt_dynar_to_array(dot);
- XBT_INFO("----------------------------- dump tasks again ------------------------------------");
- while ((task=dot_as_array[cursor++])){
- SD_task_dump(task);
- }
-
- cursor=0;
- while ((task=dot_as_array[cursor++])){
- SD_task_destroy(task);
- }
-
- free(dot_as_array);
-
- /* exit */
- SD_exit();
- return 0;
-}
SD_task_dump(task);
}
- FILE *dotout = fopen("dot.dot", "w");
- fprintf(dotout, "digraph A {\n");
- xbt_dynar_foreach(dot, cursor, task) {
- SD_task_dotty(task, dotout);
- }
- fprintf(dotout, "}\n");
- fclose(dotout);
-
- /* Schedule them all on all the first workstation */
+ /* Schedule them all on all the first host*/
XBT_INFO("------------------- Schedule tasks ---------------------------");
- const sg_host_t *ws_list = sg_host_list();
+ const sg_host_t *hosts = sg_host_list();
int count = sg_host_count();
xbt_dynar_foreach(dot, cursor, task) {
if (SD_task_get_kind(task) == SD_TASK_COMP_PAR_AMDAHL) {
- SD_task_schedulev(task, count, ws_list);
+ SD_task_schedulev(task, count, hosts);
}
}
/* load the DOT file and schedule tasks */
dot = SD_dotload_with_sched(argv[2]);
if(!dot){
- XBT_CRITICAL("The dot file with the provided scheduling is wrong, more information with the option : --log=sd_dotparse.thres:verbose");
+ XBT_CRITICAL("The dot file with the provided scheduling is wrong,"
+ " more information with the option : --log=sd_dotparse.thres:verbose");
SD_exit();
exit(2);
}
char *tracefilename;
char *last = strrchr(argv[2], '.');
tracefilename = bprintf("%.*s.trace", (int) (last == NULL ? strlen(argv[2]) : last - argv[2]),argv[2]);
- if (argc == 4)
+ if (argc == 4)
tracefilename = xbt_strdup(argv[3]);
-
/* Display all the tasks */
XBT_INFO("------------------- Display all tasks of the loaded DAG ---------------------------");
SD_task_dump(task);
}
- FILE *dotout = fopen("dot.dot", "w");
- fprintf(dotout, "digraph A {\n");
- xbt_dynar_foreach(dot, cursor, task) {
- SD_task_dotty(task, dotout);
- }
- fprintf(dotout, "}\n");
- fclose(dotout);
-
XBT_INFO("------------------- Run the schedule ---------------------------");
SD_simulate(-1);
examples/msg/actions/CMakeLists.txt
examples/msg/bittorrent/CMakeLists.txt
examples/msg/chainsend/CMakeLists.txt
- examples/msg/chord/CMakeLists.txt
examples/msg/cloud/CMakeLists.txt
+ examples/msg/dht-kademlia/CMakeLists.txt
+ examples/msg/dht-pastry/CMakeLists.txt
examples/msg/energy/CMakeLists.txt
examples/msg/gtnets/CMakeLists.txt
examples/msg/icomms/CMakeLists.txt
examples/msg/io/CMakeLists.txt
- examples/msg/kademlia/CMakeLists.txt
examples/msg/masterslave/CMakeLists.txt
examples/msg/mc/CMakeLists.txt
examples/msg/ns3/CMakeLists.txt
- examples/msg/pastry/CMakeLists.txt
examples/msg/sendrecv/CMakeLists.txt
examples/msg/set-maestro/CMakeLists.txt
examples/msg/start_kill_time/CMakeLists.txt