Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add Chord to the test suite
authorChristophe Thiéry <christopho128@gmail.com>
Thu, 21 Apr 2011 09:18:55 +0000 (11:18 +0200)
committerChristophe Thiéry <christopho128@gmail.com>
Thu, 21 Apr 2011 09:18:55 +0000 (11:18 +0200)
buildtools/Cmake/AddTests.cmake
examples/msg/chord/chord.c
examples/msg/chord/chord.tesh [new file with mode: 0644]

index e9e0733..a17cdec 100644 (file)
@@ -193,6 +193,10 @@ ADD_TEST(msg-masterslave-cpu-ti-thread     ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contex
 ADD_TEST(msg-masterslave-cpu-ti-ucontext       ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:ucontext         --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/masterslave    --cd ${CMAKE_HOME_DIRECTORY}/examples/msg masterslave/masterslave_cpu_ti.tesh)
 ADD_TEST(msg-trace-thread      ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:thread           --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg        --cd ${CMAKE_HOME_DIRECTORY}/examples/msg trace/trace.tesh)
 ADD_TEST(msg-trace-ucontext    ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:ucontext         --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg        --cd ${CMAKE_HOME_DIRECTORY}/examples/msg trace/trace.tesh)
+ADD_TEST(msg-chord-thread      ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:thread           --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord  --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
+ADD_TEST(msg-chord-thread-parallel     ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:thread           --cfg contexts/nthreads:4       --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord  --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
+ADD_TEST(msg-chord-ucontext    ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:ucontext         --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord  --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
+ADD_TEST(msg-chord-ucontext-parallel   ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:ucontext         --cfg contexts/nthreads:4       --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord  --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
 
 if(HAVE_RAWCTX)
   ADD_TEST(msg-masterslave-multicore-raw               ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:raw              --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg    --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_multicore.tesh)
@@ -204,6 +208,8 @@ if(HAVE_RAWCTX)
   ADD_TEST(msg-properties-raw          ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:raw              --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg    --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/properties/msg_prop.tesh)
   ADD_TEST(msg-masterslave-cpu-ti-raw          ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:raw              --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/masterslave    --cd ${CMAKE_HOME_DIRECTORY}/examples/msg masterslave/masterslave_cpu_ti.tesh)
   ADD_TEST(msg-trace-raw               ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:raw              --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg        --cd ${CMAKE_HOME_DIRECTORY}/examples/msg trace/trace.tesh)
+  ADD_TEST(msg-chord-raw       ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:raw              --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord  --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
+  ADD_TEST(msg-chord-raw-parallel      ${CMAKE_BINARY_DIR}/bin/tesh    --cfg contexts/factory:raw      --cfg contexts/nthreads:4       --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord  --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
 endif(HAVE_RAWCTX)
 
 IF(${ARCH_32_BITS})
index 3c287b7..15d3423 100644 (file)
@@ -890,8 +890,6 @@ static void random_lookup(node_t node)
  */
 int main(int argc, char *argv[])
 {
-  xbt_os_timer_t timer = xbt_os_timer_new();
-
   if (argc < 3) {
     printf("Usage: %s [-nb_bits=n] [-timeout=t] platform_file deployment_file\n", argv[0]);
     printf("example: %s ../msg_platform.xml chord.xml\n", argv[0]);
@@ -933,10 +931,8 @@ int main(int argc, char *argv[])
   MSG_function_register("node", node);
   MSG_launch_application(application_file);
 
-  xbt_os_timer_start(timer);
   MSG_error_t res = MSG_main();
-  xbt_os_timer_stop(timer);
-  XBT_CRITICAL("Simulation time %lf, messages created: %ld", xbt_os_timer_elapsed(timer), smx_total_comms);
+  XBT_CRITICAL("Messages created: %ld", smx_total_comms);
   XBT_INFO("Simulated time: %g", MSG_get_clock());
 
   MSG_clean();
diff --git a/examples/msg/chord/chord.tesh b/examples/msg/chord/chord.tesh
new file mode 100644 (file)
index 0000000..77e9cf3
--- /dev/null
@@ -0,0 +1,429 @@
+#! ./tesh
+
+p Testing the Chord implementation with MSG
+
+! output sort
+$ $SG_TEST_EXENV ./chord$EXEEXT -nb_bits=6 ${srcdir:=.}/../msg_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
+> [  0.000000] (4:node@Geoff) Joining the ring with id 32, knowing node 1
+> [  0.000000] (5:node@TeX) Joining the ring with id 21, knowing node 1
+> [  0.000000] (6:node@Jean_Yves) Joining the ring with id 14, knowing node 1
+> [  0.000000] (7:node@Boivin) Joining the ring with id 8, knowing node 1
+> [  0.000000] (8:node@Jacquelin) My finger table:
+> [  0.000000] (8:node@Jacquelin) Start | Succ 
+> [  0.000000] (8:node@Jacquelin)    2  |   1 
+> [  0.000000] (8:node@Jacquelin)    3  |   1 
+> [  0.000000] (8:node@Jacquelin)    5  |   1 
+> [  0.000000] (8:node@Jacquelin)    9  |   1 
+> [  0.000000] (8:node@Jacquelin)   17  |   1 
+> [  0.000000] (8:node@Jacquelin)   33  |   1 
+> [  0.000000] (8:node@Jacquelin) Predecessor: -1
+> [  6.018864] (1:node@Gatien) My finger table:
+> [  6.018864] (1:node@Gatien) Start | Succ 
+> [  6.018864] (1:node@Gatien)   49  |   1 
+> [  6.018864] (1:node@Gatien)   50  |  48 
+> [  6.018864] (1:node@Gatien)   52  |  48 
+> [  6.018864] (1:node@Gatien)   56  |  48 
+> [  6.018864] (1:node@Gatien)    0  |  48 
+> [  6.018864] (1:node@Gatien)   16  |  48 
+> [  6.018864] (1:node@Gatien) Predecessor: -1
+> [ 10.710204] (2:node@McGee) My finger table:
+> [ 10.710204] (2:node@McGee) Start | Succ 
+> [ 10.710204] (2:node@McGee)   43  |   1 
+> [ 10.710204] (2:node@McGee)   44  |  42 
+> [ 10.710204] (2:node@McGee)   46  |  42 
+> [ 10.710204] (2:node@McGee)   50  |  42 
+> [ 10.710204] (2:node@McGee)   58  |  42 
+> [ 10.710204] (2:node@McGee)   10  |  42 
+> [ 10.710204] (2:node@McGee) Predecessor: -1
+> [ 17.433288] (3:node@iRMX) My finger table:
+> [ 17.433288] (3:node@iRMX) Start | Succ 
+> [ 17.433288] (3:node@iRMX)   39  |   1 
+> [ 17.433288] (3:node@iRMX)   40  |  38 
+> [ 17.433288] (3:node@iRMX)   42  |  38 
+> [ 17.433288] (3:node@iRMX)   46  |  38 
+> [ 17.433288] (3:node@iRMX)   54  |  38 
+> [ 17.433288] (3:node@iRMX)    6  |  38 
+> [ 17.433288] (3:node@iRMX) Predecessor: -1
+> [ 20.004273] (4:node@Geoff) My finger table:
+> [ 20.004273] (4:node@Geoff) Start | Succ 
+> [ 20.004273] (4:node@Geoff)   33  |   1 
+> [ 20.004273] (4:node@Geoff)   34  |  32 
+> [ 20.004273] (4:node@Geoff)   36  |  32 
+> [ 20.004273] (4:node@Geoff)   40  |  32 
+> [ 20.004273] (4:node@Geoff)   48  |  32 
+> [ 20.004273] (4:node@Geoff)    0  |  32 
+> [ 20.004273] (4:node@Geoff) Predecessor: -1
+> [ 26.449094] (5:node@TeX) My finger table:
+> [ 26.449094] (5:node@TeX) Start | Succ 
+> [ 26.449094] (5:node@TeX)   22  |   1 
+> [ 26.449094] (5:node@TeX)   23  |  21 
+> [ 26.449094] (5:node@TeX)   25  |  21 
+> [ 26.449094] (5:node@TeX)   29  |  21 
+> [ 26.449094] (5:node@TeX)   37  |  21 
+> [ 26.449094] (5:node@TeX)   53  |  21 
+> [ 26.449094] (5:node@TeX) Predecessor: -1
+> [ 30.739573] (6:node@Jean_Yves) My finger table:
+> [ 30.739573] (6:node@Jean_Yves) Start | Succ 
+> [ 30.739573] (6:node@Jean_Yves)   15  |   1 
+> [ 30.739573] (6:node@Jean_Yves)   16  |  14 
+> [ 30.739573] (6:node@Jean_Yves)   18  |  14 
+> [ 30.739573] (6:node@Jean_Yves)   22  |  14 
+> [ 30.739573] (6:node@Jean_Yves)   30  |  14 
+> [ 30.739573] (6:node@Jean_Yves)   46  |  14 
+> [ 30.739573] (6:node@Jean_Yves) Predecessor: -1
+> [ 35.838541] (7:node@Boivin) My finger table:
+> [ 35.838541] (7:node@Boivin) Start | Succ 
+> [ 35.838541] (7:node@Boivin)    9  |   1 
+> [ 35.838541] (7:node@Boivin)   10  |   8 
+> [ 35.838541] (7:node@Boivin)   12  |   8 
+> [ 35.838541] (7:node@Boivin)   16  |   8 
+> [ 35.838541] (7:node@Boivin)   24  |   8 
+> [ 35.838541] (7:node@Boivin)   40  |   8 
+> [ 35.838541] (7:node@Boivin) Predecessor: -1
+> [ 75.000000] (8:node@Jacquelin) My finger table:
+> [ 75.000000] (8:node@Jacquelin) Start | Succ 
+> [ 75.000000] (8:node@Jacquelin)    2  |   1 
+> [ 75.000000] (8:node@Jacquelin)    3  |   1 
+> [ 75.000000] (8:node@Jacquelin)    5  |   1 
+> [ 75.000000] (8:node@Jacquelin)    9  |   1 
+> [ 75.000000] (8:node@Jacquelin)   17  |   1 
+> [ 75.000000] (8:node@Jacquelin)   33  |   1 
+> [ 75.000000] (8:node@Jacquelin) Predecessor: 32
+> [ 80.000000] (8:node@Jacquelin) My finger table:
+> [ 80.000000] (8:node@Jacquelin) Start | Succ 
+> [ 80.000000] (8:node@Jacquelin)    2  |   1 
+> [ 80.000000] (8:node@Jacquelin)    3  |   1 
+> [ 80.000000] (8:node@Jacquelin)    5  |   1 
+> [ 80.000000] (8:node@Jacquelin)    9  |   1 
+> [ 80.000000] (8:node@Jacquelin)   17  |   1 
+> [ 80.000000] (8:node@Jacquelin)   33  |   1 
+> [ 80.000000] (8:node@Jacquelin) Predecessor: 42
+> [ 81.018864] (8:node@Jacquelin) My finger table:
+> [ 81.018864] (8:node@Jacquelin) Start | Succ 
+> [ 81.018864] (8:node@Jacquelin)    2  |  42 
+> [ 81.018864] (8:node@Jacquelin)    3  |   1 
+> [ 81.018864] (8:node@Jacquelin)    5  |   1 
+> [ 81.018864] (8:node@Jacquelin)    9  |   1 
+> [ 81.018864] (8:node@Jacquelin)   17  |   1 
+> [ 81.018864] (8:node@Jacquelin)   33  |   1 
+> [ 81.018864] (8:node@Jacquelin) Predecessor: 48
+> [113.891588] (2:node@McGee) My finger table:
+> [113.891588] (2:node@McGee) Start | Succ 
+> [113.891588] (2:node@McGee)   43  |  48 
+> [113.891588] (2:node@McGee)   44  |  42 
+> [113.891588] (2:node@McGee)   46  |  42 
+> [113.891588] (2:node@McGee)   50  |  42 
+> [113.891588] (2:node@McGee)   58  |  42 
+> [113.891588] (2:node@McGee)   10  |  42 
+> [113.891588] (2:node@McGee) Predecessor: 1
+> [135.929315] (1:node@Gatien) My finger table:
+> [135.929315] (1:node@Gatien) Start | Succ 
+> [135.929315] (1:node@Gatien)   49  |   1 
+> [135.929315] (1:node@Gatien)   50  |  48 
+> [135.929315] (1:node@Gatien)   52  |  48 
+> [135.929315] (1:node@Gatien)   56  |  48 
+> [135.929315] (1:node@Gatien)    0  |  48 
+> [135.929315] (1:node@Gatien)   16  |  48 
+> [135.929315] (1:node@Gatien) Predecessor: 42
+> [187.822191] (2:node@McGee) My finger table:
+> [187.822191] (2:node@McGee) Start | Succ 
+> [187.822191] (2:node@McGee)   43  |  48 
+> [187.822191] (2:node@McGee)   44  |  42 
+> [187.822191] (2:node@McGee)   46  |  42 
+> [187.822191] (2:node@McGee)   50  |  42 
+> [187.822191] (2:node@McGee)   58  |  42 
+> [187.822191] (2:node@McGee)   10  |  42 
+> [187.822191] (2:node@McGee) Predecessor: 14
+> [196.476362] (2:node@McGee) My finger table:
+> [196.476362] (2:node@McGee) Start | Succ 
+> [196.476362] (2:node@McGee)   43  |  48 
+> [196.476362] (2:node@McGee)   44  |  42 
+> [196.476362] (2:node@McGee)   46  |  42 
+> [196.476362] (2:node@McGee)   50  |  42 
+> [196.476362] (2:node@McGee)   58  |  42 
+> [196.476362] (2:node@McGee)   10  |  42 
+> [196.476362] (2:node@McGee) Predecessor: 38
+> [239.187724] (3:node@iRMX) My finger table:
+> [239.187724] (3:node@iRMX) Start | Succ 
+> [239.187724] (3:node@iRMX)   39  |  42 
+> [239.187724] (3:node@iRMX)   40  |  38 
+> [239.187724] (3:node@iRMX)   42  |  38 
+> [239.187724] (3:node@iRMX)   46  |  38 
+> [239.187724] (3:node@iRMX)   54  |  38 
+> [239.187724] (3:node@iRMX)    6  |  38 
+> [239.187724] (3:node@iRMX) Predecessor: 32
+> [246.101146] (1:node@Gatien) My finger table:
+> [246.101146] (1:node@Gatien) Start | Succ 
+> [246.101146] (1:node@Gatien)   49  |   1 
+> [246.101146] (1:node@Gatien)   50  |   1 
+> [246.101146] (1:node@Gatien)   52  |  48 
+> [246.101146] (1:node@Gatien)   56  |  48 
+> [246.101146] (1:node@Gatien)    0  |  48 
+> [246.101146] (1:node@Gatien)   16  |  48 
+> [246.101146] (1:node@Gatien) Predecessor: 42
+> [253.395755] (7:node@Boivin) My finger table:
+> [253.395755] (7:node@Boivin) Start | Succ 
+> [253.395755] (7:node@Boivin)    9  |  32 
+> [253.395755] (7:node@Boivin)   10  |  32 
+> [253.395755] (7:node@Boivin)   12  |   8 
+> [253.395755] (7:node@Boivin)   16  |   8 
+> [253.395755] (7:node@Boivin)   24  |   8 
+> [253.395755] (7:node@Boivin)   40  |   8 
+> [253.395755] (7:node@Boivin) Predecessor: -1
+> [259.532923] (8:node@Jacquelin) My finger table:
+> [259.532923] (8:node@Jacquelin) Start | Succ 
+> [259.532923] (8:node@Jacquelin)    2  |  32 
+> [259.532923] (8:node@Jacquelin)    3  |  32 
+> [259.532923] (8:node@Jacquelin)    5  |   1 
+> [259.532923] (8:node@Jacquelin)    9  |   1 
+> [259.532923] (8:node@Jacquelin)   17  |   1 
+> [259.532923] (8:node@Jacquelin)   33  |   1 
+> [259.532923] (8:node@Jacquelin) Predecessor: 48
+> [261.420507] (2:node@McGee) My finger table:
+> [261.420507] (2:node@McGee) Start | Succ 
+> [261.420507] (2:node@McGee)   43  |  48 
+> [261.420507] (2:node@McGee)   44  |  48 
+> [261.420507] (2:node@McGee)   46  |  42 
+> [261.420507] (2:node@McGee)   50  |  42 
+> [261.420507] (2:node@McGee)   58  |  42 
+> [261.420507] (2:node@McGee)   10  |  42 
+> [261.420507] (2:node@McGee) Predecessor: 38
+> [262.822955] (6:node@Jean_Yves) My finger table:
+> [262.822955] (6:node@Jean_Yves) Start | Succ 
+> [262.822955] (6:node@Jean_Yves)   15  |  32 
+> [262.822955] (6:node@Jean_Yves)   16  |  32 
+> [262.822955] (6:node@Jean_Yves)   18  |  14 
+> [262.822955] (6:node@Jean_Yves)   22  |  14 
+> [262.822955] (6:node@Jean_Yves)   30  |  14 
+> [262.822955] (6:node@Jean_Yves)   46  |  14 
+> [262.822955] (6:node@Jean_Yves) Predecessor: -1
+> [268.142943] (3:node@iRMX) My finger table:
+> [268.142943] (3:node@iRMX) Start | Succ 
+> [268.142943] (3:node@iRMX)   39  |  42 
+> [268.142943] (3:node@iRMX)   40  |  42 
+> [268.142943] (3:node@iRMX)   42  |  38 
+> [268.142943] (3:node@iRMX)   46  |  38 
+> [268.142943] (3:node@iRMX)   54  |  38 
+> [268.142943] (3:node@iRMX)    6  |  38 
+> [268.142943] (3:node@iRMX) Predecessor: 32
+> [271.623232] (5:node@TeX) My finger table:
+> [271.623232] (5:node@TeX) Start | Succ 
+> [271.623232] (5:node@TeX)   22  |  32 
+> [271.623232] (5:node@TeX)   23  |  32 
+> [271.623232] (5:node@TeX)   25  |  21 
+> [271.623232] (5:node@TeX)   29  |  21 
+> [271.623232] (5:node@TeX)   37  |  21 
+> [271.623232] (5:node@TeX)   53  |  21 
+> [271.623232] (5:node@TeX) Predecessor: -1
+> [279.057600] (4:node@Geoff) My finger table:
+> [279.057600] (4:node@Geoff) Start | Succ 
+> [279.057600] (4:node@Geoff)   33  |  38 
+> [279.057600] (4:node@Geoff)   34  |  32 
+> [279.057600] (4:node@Geoff)   36  |  32 
+> [279.057600] (4:node@Geoff)   40  |  32 
+> [279.057600] (4:node@Geoff)   48  |  32 
+> [279.057600] (4:node@Geoff)    0  |  32 
+> [279.057600] (4:node@Geoff) Predecessor: 8
+> [281.486619] (4:node@Geoff) My finger table:
+> [281.486619] (4:node@Geoff) Start | Succ 
+> [281.486619] (4:node@Geoff)   33  |  38 
+> [281.486619] (4:node@Geoff)   34  |  38 
+> [281.486619] (4:node@Geoff)   36  |  32 
+> [281.486619] (4:node@Geoff)   40  |  32 
+> [281.486619] (4:node@Geoff)   48  |  32 
+> [281.486619] (4:node@Geoff)    0  |  32 
+> [281.486619] (4:node@Geoff) Predecessor: 8
+> [292.924102] (4:node@Geoff) My finger table:
+> [292.924102] (4:node@Geoff) Start | Succ 
+> [292.924102] (4:node@Geoff)   33  |  38 
+> [292.924102] (4:node@Geoff)   34  |  38 
+> [292.924102] (4:node@Geoff)   36  |  32 
+> [292.924102] (4:node@Geoff)   40  |  32 
+> [292.924102] (4:node@Geoff)   48  |  32 
+> [292.924102] (4:node@Geoff)    0  |  32 
+> [292.924102] (4:node@Geoff) Predecessor: 21
+> [338.206033] (5:node@TeX) My finger table:
+> [338.206033] (5:node@TeX) Start | Succ 
+> [338.206033] (5:node@TeX)   22  |  32 
+> [338.206033] (5:node@TeX)   23  |  32 
+> [338.206033] (5:node@TeX)   25  |  21 
+> [338.206033] (5:node@TeX)   29  |  21 
+> [338.206033] (5:node@TeX)   37  |  21 
+> [338.206033] (5:node@TeX)   53  |  21 
+> [338.206033] (5:node@TeX) Predecessor: 14
+> [369.341418] (1:node@Gatien) My finger table:
+> [369.341418] (1:node@Gatien) Start | Succ 
+> [369.341418] (1:node@Gatien)   49  |   1 
+> [369.341418] (1:node@Gatien)   50  |   1 
+> [369.341418] (1:node@Gatien)   52  |   1 
+> [369.341418] (1:node@Gatien)   56  |  48 
+> [369.341418] (1:node@Gatien)    0  |  48 
+> [369.341418] (1:node@Gatien)   16  |  48 
+> [369.341418] (1:node@Gatien) Predecessor: 42
+> [379.982438] (8:node@Jacquelin) My finger table:
+> [379.982438] (8:node@Jacquelin) Start | Succ 
+> [379.982438] (8:node@Jacquelin)    2  |  14 
+> [379.982438] (8:node@Jacquelin)    3  |  32 
+> [379.982438] (8:node@Jacquelin)    5  |  14 
+> [379.982438] (8:node@Jacquelin)    9  |   1 
+> [379.982438] (8:node@Jacquelin)   17  |   1 
+> [379.982438] (8:node@Jacquelin)   33  |   1 
+> [379.982438] (8:node@Jacquelin) Predecessor: 48
+> [384.034401] (2:node@McGee) My finger table:
+> [384.034401] (2:node@McGee) Start | Succ 
+> [384.034401] (2:node@McGee)   43  |  48 
+> [384.034401] (2:node@McGee)   44  |  48 
+> [384.034401] (2:node@McGee)   46  |  48 
+> [384.034401] (2:node@McGee)   50  |  42 
+> [384.034401] (2:node@McGee)   58  |  42 
+> [384.034401] (2:node@McGee)   10  |  42 
+> [384.034401] (2:node@McGee) Predecessor: 38
+> [386.415281] (6:node@Jean_Yves) My finger table:
+> [386.415281] (6:node@Jean_Yves) Start | Succ 
+> [386.415281] (6:node@Jean_Yves)   15  |  21 
+> [386.415281] (6:node@Jean_Yves)   16  |  32 
+> [386.415281] (6:node@Jean_Yves)   18  |  14 
+> [386.415281] (6:node@Jean_Yves)   22  |  14 
+> [386.415281] (6:node@Jean_Yves)   30  |  14 
+> [386.415281] (6:node@Jean_Yves)   46  |  14 
+> [386.415281] (6:node@Jean_Yves) Predecessor: 1
+> [386.415281] (6:node@Jean_Yves) My finger table:
+> [386.415281] (6:node@Jean_Yves) Start | Succ 
+> [386.415281] (6:node@Jean_Yves)   15  |  21 
+> [386.415281] (6:node@Jean_Yves)   16  |  32 
+> [386.415281] (6:node@Jean_Yves)   18  |  21 
+> [386.415281] (6:node@Jean_Yves)   22  |  14 
+> [386.415281] (6:node@Jean_Yves)   30  |  14 
+> [386.415281] (6:node@Jean_Yves)   46  |  14 
+> [386.415281] (6:node@Jean_Yves) Predecessor: 1
+> [390.149558] (7:node@Boivin) My finger table:
+> [390.149558] (7:node@Boivin) Start | Succ 
+> [390.149558] (7:node@Boivin)    9  |  14 
+> [390.149558] (7:node@Boivin)   10  |  32 
+> [390.149558] (7:node@Boivin)   12  |  14 
+> [390.149558] (7:node@Boivin)   16  |   8 
+> [390.149558] (7:node@Boivin)   24  |   8 
+> [390.149558] (7:node@Boivin)   40  |   8 
+> [390.149558] (7:node@Boivin) Predecessor: -1
+> [392.283872] (6:node@Jean_Yves) My finger table:
+> [392.283872] (6:node@Jean_Yves) Start | Succ 
+> [392.283872] (6:node@Jean_Yves)   15  |  21 
+> [392.283872] (6:node@Jean_Yves)   16  |  32 
+> [392.283872] (6:node@Jean_Yves)   18  |  21 
+> [392.283872] (6:node@Jean_Yves)   22  |  14 
+> [392.283872] (6:node@Jean_Yves)   30  |  14 
+> [392.283872] (6:node@Jean_Yves)   46  |  14 
+> [392.283872] (6:node@Jean_Yves) Predecessor: 8
+> [404.370688] (4:node@Geoff) My finger table:
+> [404.370688] (4:node@Geoff) Start | Succ 
+> [404.370688] (4:node@Geoff)   33  |  38 
+> [404.370688] (4:node@Geoff)   34  |  38 
+> [404.370688] (4:node@Geoff)   36  |  38 
+> [404.370688] (4:node@Geoff)   40  |  32 
+> [404.370688] (4:node@Geoff)   48  |  32 
+> [404.370688] (4:node@Geoff)    0  |  32 
+> [404.370688] (4:node@Geoff) Predecessor: 21
+> [405.070972] (3:node@iRMX) My finger table:
+> [405.070972] (3:node@iRMX) Start | Succ 
+> [405.070972] (3:node@iRMX)   39  |  42 
+> [405.070972] (3:node@iRMX)   40  |  42 
+> [405.070972] (3:node@iRMX)   42  |  42 
+> [405.070972] (3:node@iRMX)   46  |  38 
+> [405.070972] (3:node@iRMX)   54  |  38 
+> [405.070972] (3:node@iRMX)    6  |  38 
+> [405.070972] (3:node@iRMX) Predecessor: 32
+> [418.336053] (5:node@TeX) My finger table:
+> [418.336053] (5:node@TeX) Start | Succ 
+> [418.336053] (5:node@TeX)   22  |  32 
+> [418.336053] (5:node@TeX)   23  |  32 
+> [418.336053] (5:node@TeX)   25  |  32 
+> [418.336053] (5:node@TeX)   29  |  21 
+> [418.336053] (5:node@TeX)   37  |  21 
+> [418.336053] (5:node@TeX)   53  |  21 
+> [418.336053] (5:node@TeX) Predecessor: 14
+> [448.762027] (7:node@Boivin) My finger table:
+> [448.762027] (7:node@Boivin) Start | Succ 
+> [448.762027] (7:node@Boivin)    9  |  14 
+> [448.762027] (7:node@Boivin)   10  |  32 
+> [448.762027] (7:node@Boivin)   12  |  14 
+> [448.762027] (7:node@Boivin)   16  |   8 
+> [448.762027] (7:node@Boivin)   24  |   8 
+> [448.762027] (7:node@Boivin)   40  |   8 
+> [448.762027] (7:node@Boivin) Predecessor: 1
+> [490.780259] (1:node@Gatien) My finger table:
+> [490.780259] (1:node@Gatien) Start | Succ 
+> [490.780259] (1:node@Gatien)   49  |   1 
+> [490.780259] (1:node@Gatien)   50  |   1 
+> [490.780259] (1:node@Gatien)   52  |   1 
+> [490.780259] (1:node@Gatien)   56  |   1 
+> [490.780259] (1:node@Gatien)    0  |  48 
+> [490.780259] (1:node@Gatien)   16  |  48 
+> [490.780259] (1:node@Gatien) Predecessor: 42
+> [505.134969] (8:node@Jacquelin) My finger table:
+> [505.134969] (8:node@Jacquelin) Start | Succ 
+> [505.134969] (8:node@Jacquelin)    2  |   8 
+> [505.134969] (8:node@Jacquelin)    3  |  32 
+> [505.134969] (8:node@Jacquelin)    5  |  14 
+> [505.134969] (8:node@Jacquelin)    9  |  14 
+> [505.134969] (8:node@Jacquelin)   17  |   1 
+> [505.134969] (8:node@Jacquelin)   33  |   1 
+> [505.134969] (8:node@Jacquelin) Predecessor: 48
+> [519.547951] (6:node@Jean_Yves) My finger table:
+> [519.547951] (6:node@Jean_Yves) Start | Succ 
+> [519.547951] (6:node@Jean_Yves)   15  |  21 
+> [519.547951] (6:node@Jean_Yves)   16  |  32 
+> [519.547951] (6:node@Jean_Yves)   18  |  21 
+> [519.547951] (6:node@Jean_Yves)   22  |  32 
+> [519.547951] (6:node@Jean_Yves)   30  |  14 
+> [519.547951] (6:node@Jean_Yves)   46  |  14 
+> [519.547951] (6:node@Jean_Yves) Predecessor: 8
+> [523.456709] (2:node@McGee) My finger table:
+> [523.456709] (2:node@McGee) Start | Succ 
+> [523.456709] (2:node@McGee)   43  |  48 
+> [523.456709] (2:node@McGee)   44  |  48 
+> [523.456709] (2:node@McGee)   46  |  48 
+> [523.456709] (2:node@McGee)   50  |   1 
+> [523.456709] (2:node@McGee)   58  |  42 
+> [523.456709] (2:node@McGee)   10  |  42 
+> [523.456709] (2:node@McGee) Predecessor: 38
+> [541.506552] (5:node@TeX) My finger table:
+> [541.506552] (5:node@TeX) Start | Succ 
+> [541.506552] (5:node@TeX)   22  |  32 
+> [541.506552] (5:node@TeX)   23  |  32 
+> [541.506552] (5:node@TeX)   25  |  32 
+> [541.506552] (5:node@TeX)   29  |  32 
+> [541.506552] (5:node@TeX)   37  |  21 
+> [541.506552] (5:node@TeX)   53  |  21 
+> [541.506552] (5:node@TeX) Predecessor: 14
+> [542.490747] (4:node@Geoff) My finger table:
+> [542.490747] (4:node@Geoff) Start | Succ 
+> [542.490747] (4:node@Geoff)   33  |  38 
+> [542.490747] (4:node@Geoff)   34  |  38 
+> [542.490747] (4:node@Geoff)   36  |  38 
+> [542.490747] (4:node@Geoff)   40  |  42 
+> [542.490747] (4:node@Geoff)   48  |  32 
+> [542.490747] (4:node@Geoff)    0  |  32 
+> [542.490747] (4:node@Geoff) Predecessor: 21
+> [543.696191] (7:node@Boivin) My finger table:
+> [543.696191] (7:node@Boivin) Start | Succ 
+> [543.696191] (7:node@Boivin)    9  |  14 
+> [543.696191] (7:node@Boivin)   10  |  32 
+> [543.696191] (7:node@Boivin)   12  |  14 
+> [543.696191] (7:node@Boivin)   16  |  21 
+> [543.696191] (7:node@Boivin)   24  |   8 
+> [543.696191] (7:node@Boivin)   40  |   8 
+> [543.696191] (7:node@Boivin) Predecessor: 1
+> [547.073600] (3:node@iRMX) My finger table:
+> [547.073600] (3:node@iRMX) Start | Succ 
+> [547.073600] (3:node@iRMX)   39  |  42 
+> [547.073600] (3:node@iRMX)   40  |  42 
+> [547.073600] (3:node@iRMX)   42  |  42 
+> [547.073600] (3:node@iRMX)   46  |  48 
+> [547.073600] (3:node@iRMX)   54  |  38 
+> [547.073600] (3:node@iRMX)    6  |  38 
+> [547.073600] (3:node@iRMX) Predecessor: 32
+> [655.138775] (0:@) Messages created: 838
+> [655.138775] (0:@) Simulated time: 655.139