Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'surf++'
authorPaul Bédaride <paul.bedaride@gmail.com>
Fri, 15 Nov 2013 14:27:48 +0000 (15:27 +0100)
committerPaul Bédaride <paul.bedaride@gmail.com>
Fri, 15 Nov 2013 14:27:48 +0000 (15:27 +0100)
Conflicts:
src/include/surf/surf.h
src/instr/instr_private.h
src/simix/smx_smurf_private.h
src/smpi/smpi_bench.c
src/surf/workstation.c

285 files changed:
CMakeLists.txt
ChangeLog
INSTALL
NEWS
buildtools/Cmake/AddTests.cmake
buildtools/Cmake/CompleteInFiles.cmake
buildtools/Cmake/DefinePackages.cmake
buildtools/Cmake/Distrib.cmake
buildtools/Cmake/Flags.cmake
buildtools/Cmake/MakeExe.cmake
buildtools/Cmake/MakeJava.cmake
buildtools/Cmake/Modules/FindF2c.cmake
buildtools/Cmake/Modules/FindGFortran.cmake [new file with mode: 0644]
buildtools/Cmake/PrintArgs.cmake
buildtools/Cmake/Scripts/tesh.pl
buildtools/Cmake/Supernovae.cmake
buildtools/Cmake/src/internal_config.h.in
buildtools/Cmake/src/simgrid.nsi.in
buildtools/jenkins/run.sh
doc/doxygen/bindings.doc
doc/doxygen/inside_release.doc
doc/doxygen/introduction.doc
doc/doxygen/options.doc
doc/doxygen/tracing.doc
examples/java/async/CMakeLists.txt
examples/java/async/async.tesh
examples/java/bittorrent/CMakeLists.txt
examples/java/bittorrent/bittorrent.tesh
examples/java/chord/CMakeLists.txt
examples/java/chord/chord.tesh
examples/java/cloud/CMakeLists.txt
examples/java/cloud/cloud.tesh
examples/java/commTime/CMakeLists.txt
examples/java/commTime/commtime.tesh
examples/java/io/CMakeLists.txt
examples/java/kademlia/CMakeLists.txt
examples/java/kademlia/kademlia.tesh
examples/java/master_slave_bypass/CMakeLists.txt
examples/java/master_slave_bypass/bypass.tesh
examples/java/master_slave_kill/CMakeLists.txt
examples/java/master_slave_kill/kill.tesh
examples/java/masterslave/CMakeLists.txt
examples/java/masterslave/masterslave.tesh
examples/java/migration/CMakeLists.txt
examples/java/migration/migration.tesh
examples/java/mutualExclusion/CMakeLists.txt
examples/java/mutualExclusion/mutualexclusion.tesh
examples/java/pingPong/CMakeLists.txt
examples/java/pingPong/pingpong.tesh
examples/java/priority/CMakeLists.txt
examples/java/priority/priority.tesh
examples/java/startKillTime/CMakeLists.txt
examples/java/startKillTime/startKillTime.tesh
examples/java/suspend/CMakeLists.txt
examples/java/suspend/suspend.tesh
examples/java/tracing/CMakeLists.txt
examples/java/tracing/tracingPingPong.tesh
examples/msg/actions/NAS_LU_S_4/instr_actions.tesh
examples/msg/chord/chord.c
examples/msg/chord/chord.tesh
examples/msg/chord/chord_crosstraffic.tesh
examples/msg/energy/e2/energy_consumption.tesh
examples/msg/energy/e3/concurrent_tasks.tesh
examples/msg/gtnets/tracing-gtnets-dogbone-gtnets.tesh
examples/msg/gtnets/tracing-gtnets-dogbone-lv08.tesh
examples/msg/gtnets/tracing-gtnets-onelink-gtnets.tesh
examples/msg/gtnets/tracing-gtnets-onelink-lv08.tesh
examples/msg/gtnets/tracing-gtnets-waxman.tesh
examples/msg/io/CMakeLists.txt
examples/msg/io/file.c
examples/msg/io/io.tesh
examples/msg/io/storage.c [new file with mode: 0644]
examples/msg/io/storage.tesh [new file with mode: 0644]
examples/msg/mc/bugged1_liveness.tesh
examples/msg/mc/bugged1_liveness_visited.tesh
examples/msg/sendrecv/sendrecv_CLM03.tesh
examples/msg/tracing/categories.c
examples/msg/tracing/categories.tesh
examples/msg/tracing/link_srcdst_user_variables.c
examples/msg/tracing/link_srcdst_user_variables.tesh
examples/msg/tracing/link_user_variables.c
examples/msg/tracing/link_user_variables.tesh
examples/msg/tracing/ms.c
examples/msg/tracing/ms.tesh
examples/msg/tracing/procmig.c
examples/msg/tracing/procmig.tesh
examples/msg/tracing/simple.c
examples/msg/tracing/trace_platform.c
examples/msg/tracing/trace_platform.tesh
examples/msg/tracing/user_variables.c
examples/msg/tracing/user_variables.tesh
examples/platforms/content/small_content.txt [new file with mode: 0644]
examples/platforms/storage.xml
examples/scala/master_slave_bypass/CMakeLists.txt
examples/scala/master_slave_bypass/bypass.tesh
examples/scala/master_slave_kill/CMakeLists.txt
examples/scala/master_slave_kill/kill.tesh
examples/scala/masterslave/CMakeLists.txt
examples/scala/masterslave/masterslave.tesh
examples/simdag/io/io.tesh
examples/simdag/test_simdag_tracing.tesh
examples/smpi/MM/Summa.c
examples/smpi/NAS/FT/ft.f
examples/smpi/energy/CMakeLists.txt [new file with mode: 0644]
examples/smpi/energy/energy.tesh [new file with mode: 0644]
examples/smpi/energy/f77/CMakeLists.txt [new file with mode: 0644]
examples/smpi/energy/f77/energy.tesh [new file with mode: 0644]
examples/smpi/energy/f77/sef.f [new file with mode: 0644]
examples/smpi/energy/f90/CMakeLists.txt [new file with mode: 0644]
examples/smpi/energy/f90/energy.tesh [new file with mode: 0644]
examples/smpi/energy/f90/sef90.f90 [new file with mode: 0644]
examples/smpi/energy/hostfile [new file with mode: 0644]
examples/smpi/energy/platform.xml [new file with mode: 0644]
examples/smpi/energy/se.c [new file with mode: 0644]
examples/smpi/replay/actions_allReduce.txt
examples/smpi/replay/actions_bcast.txt
examples/smpi/replay/actions_bcast_reduce_datatypes.txt
examples/smpi/replay/actions_reducescatter.txt
examples/smpi/replay/actions_with_isend.txt
examples/smpi/replay/smpi_replay.tesh
examples/smpi/tracing/smpi_traced.tesh
include/msg/msg.h
include/simgrid/modelchecker.h
include/simgrid/simix.h
include/simgrid_config.h.in
include/smpi/mpif.h.in
include/smpi/smpi.h
include/smpi/smpif.h.in
include/xbt/ex.h
src/bindings/java/org/simgrid/msg/Msg.java
src/include/smpi/smpi_interface.h
src/include/surf/maxmin.h
src/include/surf/surf.h
src/instr/instr_TI_trace.c [new file with mode: 0644]
src/instr/instr_config.c
src/instr/instr_paje_trace.c
src/instr/instr_private.h
src/instr/instr_trace.c [new file with mode: 0644]
src/mc/mc_liveness.c
src/msg/msg_host.c
src/msg/msg_io.c
src/simdag/sd_daxloader.c
src/simgrid/sg_config.c
src/simix/smx_context.c
src/simix/smx_io.c
src/simix/smx_io_private.h
src/simix/smx_network.c
src/simix/smx_network_private.h
src/simix/smx_smurf_private.h
src/simix/smx_user.c
src/smpi/colls/allgather-SMP-NTS.c
src/smpi/colls/allgatherv-mpich-rdb.c
src/smpi/colls/reduce-scatter-gather.c
src/smpi/colls/scatter-ompi.c
src/smpi/colls/smpi_automatic_selector.c
src/smpi/instr_smpi.c
src/smpi/private.h
src/smpi/smpi_base.c
src/smpi/smpi_bench.c
src/smpi/smpi_coll.c
src/smpi/smpi_dvfs.c [new file with mode: 0644]
src/smpi/smpi_f77.c
src/smpi/smpi_global.c
src/smpi/smpi_pmpi.c
src/smpi/smpi_replay.c
src/smpi/smpicc.in
src/smpi/smpif90.in
src/smpi/smpiff.in
src/smpi/smpirun.in
src/smpi/smpitools.sh [new file with mode: 0644]
src/surf/maxmin.c
src/surf/network.c
src/surf/storage.c
src/surf/storage.cpp
src/surf/storage.hpp
src/surf/surf.c
src/surf/surf_interface.cpp
src/surf/workstation.c
src/xbt/automaton/automatonparse_promela.c
src/xbt/dict.c
src/xbt/dict_cursor.c
src/xbt/dynar.c
src/xbt/fifo.c
src/xbt/log.c
src/xbt/mmalloc/mm_legacy.c
src/xbt/xbt_os_thread.c
src/xbt/xbt_os_time.c
src/xbt/xbt_replay.c
teshsuite/msg/storage/CMakeLists.txt
teshsuite/msg/storage/storage_basic.c [moved from teshsuite/msg/storage/storage.c with 100% similarity]
teshsuite/msg/storage/storage_basic.tesh [moved from teshsuite/msg/storage/storage.tesh with 95% similarity]
teshsuite/smpi/CMakeLists.txt
teshsuite/smpi/TI_output.tesh [new file with mode: 0644]
teshsuite/smpi/alltoall_basic.c
teshsuite/smpi/mpich3-test/attr/attrerr.c
teshsuite/smpi/mpich3-test/attr/attrerrcomm.c
teshsuite/smpi/mpich3-test/attr/attrerrtype.c
teshsuite/smpi/mpich3-test/attr/attric.c
teshsuite/smpi/mpich3-test/attr/attrt.c
teshsuite/smpi/mpich3-test/coll/allgatherv4.c
teshsuite/smpi/mpich3-test/coll/allred.c
teshsuite/smpi/mpich3-test/coll/allred3.c
teshsuite/smpi/mpich3-test/coll/allred4.c
teshsuite/smpi/mpich3-test/coll/allred5.c
teshsuite/smpi/mpich3-test/coll/alltoall1.c
teshsuite/smpi/mpich3-test/coll/alltoallv.c
teshsuite/smpi/mpich3-test/coll/alltoallv0.c
teshsuite/smpi/mpich3-test/coll/alltoallw2.c
teshsuite/smpi/mpich3-test/coll/bcastzerotype.c
teshsuite/smpi/mpich3-test/coll/coll13.c
teshsuite/smpi/mpich3-test/coll/coll2.c
teshsuite/smpi/mpich3-test/coll/coll3.c
teshsuite/smpi/mpich3-test/coll/coll6.c
teshsuite/smpi/mpich3-test/coll/coll7.c
teshsuite/smpi/mpich3-test/coll/icalltoallv.c
teshsuite/smpi/mpich3-test/coll/icalltoallw.c
teshsuite/smpi/mpich3-test/coll/nonblocking.c
teshsuite/smpi/mpich3-test/coll/nonblocking2.c
teshsuite/smpi/mpich3-test/coll/nonblocking3.c
teshsuite/smpi/mpich3-test/coll/red3.c
teshsuite/smpi/mpich3-test/coll/red4.c
teshsuite/smpi/mpich3-test/coll/red_scat_block.c
teshsuite/smpi/mpich3-test/coll/redscat3.c
teshsuite/smpi/mpich3-test/coll/redscatbkinter.c
teshsuite/smpi/mpich3-test/coll/redscatblk3.c
teshsuite/smpi/mpich3-test/coll/redscatinter.c
teshsuite/smpi/mpich3-test/coll/scatterv.c
teshsuite/smpi/mpich3-test/coll/uoplong.c
teshsuite/smpi/mpich3-test/comm/cmfree.c
teshsuite/smpi/mpich3-test/comm/cmsplit.c
teshsuite/smpi/mpich3-test/comm/comm_create_group.c
teshsuite/smpi/mpich3-test/comm/comm_idup.c
teshsuite/smpi/mpich3-test/comm/commcreate1.c
teshsuite/smpi/mpich3-test/comm/ic1.c
teshsuite/smpi/mpich3-test/comm/ic2.c
teshsuite/smpi/mpich3-test/comm/iccreate.c
teshsuite/smpi/mpich3-test/comm/icsplit.c
teshsuite/smpi/mpich3-test/comm/probe-intercomm.c
teshsuite/smpi/mpich3-test/datatype/darray-cyclic.c
teshsuite/smpi/mpich3-test/datatype/getpartelm.c
teshsuite/smpi/mpich3-test/datatype/large-count.c
teshsuite/smpi/mpich3-test/datatype/struct-ezhov.c
teshsuite/smpi/mpich3-test/datatype/tfree.c
teshsuite/smpi/mpich3-test/datatype/tresized.c
teshsuite/smpi/mpich3-test/datatype/tresized2.c
teshsuite/smpi/mpich3-test/f90/coll/CMakeLists.txt
teshsuite/smpi/mpich3-test/f90/datatype/CMakeLists.txt
teshsuite/smpi/mpich3-test/f90/datatype/indtype.f90
teshsuite/smpi/mpich3-test/f90/datatype/structf.f90
teshsuite/smpi/mpich3-test/f90/init/CMakeLists.txt
teshsuite/smpi/mpich3-test/f90/pt2pt/CMakeLists.txt
teshsuite/smpi/mpich3-test/group/gtranks.c
teshsuite/smpi/mpich3-test/group/gtranksperf.c
teshsuite/smpi/mpich3-test/pt2pt/bottom.c
teshsuite/smpi/mpich3-test/pt2pt/bsendfrag.c
teshsuite/smpi/mpich3-test/pt2pt/bsendpending.c
teshsuite/smpi/mpich3-test/pt2pt/cancelrecv.c
teshsuite/smpi/mpich3-test/pt2pt/eagerdt.c
teshsuite/smpi/mpich3-test/pt2pt/large_message.c
teshsuite/smpi/mpich3-test/pt2pt/mprobe.c
teshsuite/smpi/mpich3-test/pt2pt/pscancel.c
teshsuite/smpi/mpich3-test/pt2pt/rqfreeb.c
teshsuite/smpi/mpich3-test/pt2pt/scancel.c
teshsuite/smpi/mpich3-test/pt2pt/scancel2.c
teshsuite/smpi/mpich3-test/pt2pt/sendall.c
teshsuite/smpi/mpich3-test/pt2pt/sendrecv3.c
teshsuite/smpi/mpich3-test/util/mtest.c
teshsuite/smpi/pt2pt.tesh
teshsuite/smpi/reduce.tesh
teshsuite/smpi/reduce_scatter_coll.tesh
teshsuite/xbt/mmalloc_test.c
testsuite/xbt/log_usage.c
tools/graphicator/graphicator.c
tools/graphicator/graphicator.tesh
tools/simgrid.supp
tools/spell/sg_stopwords.txt
tools/tesh/CMakeLists.txt
tools/tesh/IO-bigsize.tesh
tools/tesh/basic.tesh
tools/tesh/catch-return.tesh
tools/tesh/catch-signal.tesh
tools/tesh/run_context.c
tools/tesh/set-output-ignore.tesh [moved from tools/tesh/set-ignore-output.tesh with 100% similarity]
tools/tesh/set-output-sort-1.tesh [moved from tools/tesh/basic2.tesh with 98% similarity]
tools/tesh/set-output-sort.tesh [new file with mode: 0644]

index 0a44682..ff6cbe1 100644 (file)
@@ -48,22 +48,28 @@ set(CMAKE_Fortran_LINK_FLAGS "" CACHE TYPE INTERNAL FORCE)
 # 3.7.{0,1} -> release 3.7, 3.7.1
 # 3.8.{0,1} -> release 3.8, 3.8.1
 # 3.9.0 -> release 3.9
-
 # 3.9.90 -> release 3.10pre1
 # 3.10.0 -> release 3.10
+# 3.11.0 -> release 3.11
 
 set(SIMGRID_VERSION_MAJOR "3")
-set(SIMGRID_VERSION_MINOR "9")
-set(SIMGRID_VERSION_PATCH "90")
+set(SIMGRID_VERSION_MINOR "11")
+set(SIMGRID_VERSION_PATCH "0")
+set(SIMGRID_VERSION_EXTRA "-devel") # Extra words to add to version string (e.g. -rc1)
+
+set(SIMGRID_VERSION_DATE  "2013") # Year for copyright information
 
 if(${SIMGRID_VERSION_PATCH} EQUAL "0")
   set(release_version "${SIMGRID_VERSION_MAJOR}.${SIMGRID_VERSION_MINOR}")
 else()
   set(release_version "${SIMGRID_VERSION_MAJOR}.${SIMGRID_VERSION_MINOR}.${SIMGRID_VERSION_PATCH}")
 endif()
+
+set(SIMGRID_VERSION_STRING
+  "SimGrid version ${release_version}${SIMGRID_VERSION_EXTRA}\\nCopyright (c) ${SIMGRID_VERSION_DATE}. The Simgrid Team.")
+
 set(libsimgrid_version "${release_version}")
-set(libsmpi_version "${release_version}")
-set(libSG_java_version "${release_version}")
+set(libsimgrid-java_version "${release_version}")
 set(GCC_NEED_VERSION "4.0")
 set(APPLE_NEED_GCC_VERSION "4.6")
 
index 2afb0d3..e37559f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,22 @@
-SimGrid (3.10pre1) unstable; urgency=low
+SimGrid (3.11) NOT RELEASED; urgency=low
+
+ TENTATIVE RELEASE GOALS for 3.11:
+ * Consider the removal of Supernovae mode if no user has manifested since the
+   release of version 3.10.
+ * Switch to tesh.pl, and kill the now unused parts of xbt that seem fragile
+ * Switch to surf++, and reintegrate the hypervisor branch on top of it
+
+ -- $date Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+
+SimGrid (3.10-rc2) unstable; urgency=low
+
+ The Clean Diaper Release, a.k.a. SimGrid is leak-free.
 
  Java:
  * Reintegrate Java to the main archive as desynchronizing these
    package is not acceptable anymore (Java is now considered stable)
  * Add explicit synchronization facilities through semaphores
- * Bugfix: Task.setDataSize() only changed the C world, not the value
+ * Bug fix: Task.setDataSize() only changed the C world, not the value
    cached in the Java world
 
  MSG:
@@ -12,7 +24,7 @@ SimGrid (3.10pre1) unstable; urgency=low
    this part of MSG was not considered as production grade either.
  * Add explicit synchronization facilities through semaphores
  * Add a new function MSG_host_get_process_list()
- * Preliminary DVFS support (see /examples/msg/energy for details)
+ * Preliminary DVFS support (see examples/msg/energy/ for details)
 
  SMPI:
  * SMPI is now included directly in the libsimgrid as the windows
@@ -25,7 +37,13 @@ SimGrid (3.10pre1) unstable; urgency=low
    - The replay tool now supports traces produce either by TAU or a modified
      version of MPE.
    - Bug Fix: the compute part of the reduce action is now taken into account.
- * smpirun generates the hostfile if needed (with given hostcount and platform)
+   - Gatherv collective is now supported
+   - SimGrid (SMPI for now) can generate replay traces as well. Option -trace-ti
+     of smpirun outputs time independent traces for the current run. One file
+     is created per process. If too many processes are simulated, this behavior
+     can be changed to one file for all processes by using the
+     tracing/smpi/format/ti_one_file flag
+ * smpirun generates the host file if needed (with given host count and platform)
  * Integration of more than 100 STAR-MPI, MPICH, OpenMPI collective algorithms
    - allows to select one in particular with --cfg=smpi/coll_name:algorithm
    - allows to use the decision logic of OpenMPI(1.7) or MPICH(3.0.4) by setting
@@ -34,11 +52,13 @@ SimGrid (3.10pre1) unstable; urgency=low
    Reduce
  * Add a --cfg:tracing/smpi/internals option, to trace internal communications
    happening inside a collective SMPI call.
- * Fix the behavior of complex data types handling
- * replace MPICH-1 test suite by the one from MPICH 3.0.4. Can be built using
+ * Fix the behavior of complex data types handling.
+ * Make MPI_Wtime another synchronization point to take computations into account.
+ * Replace MPICH-1 test suite by the one from MPICH 3.0.4. Can be built using
    enable_smpi_MPICH3_testsuite flag in cmake. Run with ctest.
  * Add all missing Fortran bindings, SMPI should work with Fortran 90
    (no privatization of global variables yet)
+ * Preliminary DVFS support (see examples/smpi/energy/ for details)
 
  Model-Checking;
  * Verification of liveness properties is now available for SMPI applications
@@ -68,14 +88,24 @@ SimGrid (3.10pre1) unstable; urgency=low
  * Our own implementation of getline is renamed xbt_getline, and gets
    used even if the OS provide a getline(). This should reduce the
    configuration complexity by using the same code on all platforms.
- * new xbt_cfg_elm_boolean type
+ * New type: xbt_cfg_elm_boolean.
+ * Allow to use yes/no for boolean configuration options in the command line.
  * Allow to disable SimGrid cleanups at exit from command line option.
    There are situations where one may want a simulation to end with an exit.
    Unfortunately, calling exit may cause SimGrid to segfault, which is quite
    annoying when scripting around the simulator. Adding a
-   --cfg=clean_atexit:yes allows to circumvent this issue.
+   --cfg=clean_atexit:no allows to circumvent this issue.
+
+ Build System:
+ * Lots of memory leaks were corrected in this release.
+   There is no known memory leaks anymore, in all of our 600+ tests.
+ * New command line option --version, to get SimGrid version information.
+   Packagers may want to add extra words to SIMGRID_VERSION_EXTRA defined in
+   CMakeLists.txt.
+ * Supernovae builds are deprecated, and expected to be removed in the next
+   version of SimGrid.
 
--- Mon Oct 7 2013 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ -- Fri Nov  8 23:54:56 CET 2013 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.9) stable; urgency=low
 
@@ -151,7 +181,7 @@ SimGrid (3.9) stable; urgency=low
  TRACING:
  * Transfer the tracing files into the corresponding modules.
 
- -- Tue Feb 5 11:31:43 CET 2013 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ -- Tue Feb  5 11:31:43 CET 2013 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.8.1) stable; urgency=low
 
@@ -451,7 +481,7 @@ SimGrid (3.7) stable; urgency=low
       Turn model-checking OFF if simulation performance matters to you.
       Not enabling it at runtime is not enough, disable it in cmake.
 
 -- Tue May 15 11:30:19 UTC 2012 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
+ -- Tue May 15 11:30:19 UTC 2012 Da SimGrid team <simgrid-devel@lists.gforge.inria.fr>
 
 SimGrid (3.6.2) stable; urgency=low
 
diff --git a/INSTALL b/INSTALL
index bb8150c..cc31a6f 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -11,20 +11,21 @@ Quick way to compile
 ====================
 
 In short, the way to compile SimGrid depends on whether you are compiling a
-tar.gz archive or directly from the SVN.
+tar.gz archive or directly from the Git.
 
-(1) configure SimGrid (both in SVN and archives)
+(1) configure SimGrid (both in Git and archives)
 $ cmake <all options> ./
 
 Main options are:
   -DCMAKE_INSTALL_PREFIX=<path>: specify where to install SimGrid
   -Denable_maintainer_mode=on/off: get the maintainer files regenerated
                                    automatically
-  -Denable_compile_optimizations=on/off: compile or not with -O0 instead of -O3
-  -Denable_java=on/off: enable or not binding java
-  -Denable_lua=on/off: enable or not binding lua
-  -Denable_ruby=on/off: enable or not binding ruby
+  -Denable_compile_optimizations=on/off: compile or not with optimizations
+  -Denable_java=on/off: enable or not the Java bindings
+  -Denable_scala=on/off: enable or not the Scala bindings
+  -Denable_lua=on/off: enable or not the lua bindings
   -Denable_smpi=on/off: enable or not smpi
+  -Denable_model-checking=on/off: enable or not the model-checker
 See below for other configure options which are common to any project,
 not only SimGrid related.
 
@@ -52,10 +53,7 @@ the jni.h header file (available from the JDK).
 If you want to compile the lua bindings, you have to have lua5.1 executable and
 liblua5.1-dev.
 
-If you want to compile the ruby bindings, you have to install ruby executable
-and ruby-dev version 1.9.
-
-If you want to compile smpi, you should install f2c for use Fortran code.
+If you want to compile smpi, you should install f2c to use Fortran code.
 
 If you want to compile the GTNetS backend, you have to have a patched version of
-GTNetS installed. The patch lives in the contrib section of the SVN.
+GTNetS installed. The patch lives in the contrib section of the Git.
diff --git a/NEWS b/NEWS
index c658b01..0d72f6b 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,19 +1,27 @@
+                    _               _____  _ _
+__   _____ _ __ ___(_) ___  _ __   |___ / / / |
+\ \ / / _ \ '__/ __| |/ _ \| '_ \    |_ \ | | |
+ \ V /  __/ |  \__ \ | (_) | | | |  ___) || | |
+  \_/ \___|_|  |___/_|\___/|_| |_| |____(_)_|_|
+
+(to complete)
                     _               _____  _  ___
 __   _____ _ __ ___(_) ___  _ __   |___ / / |/ _ \
 \ \ / / _ \ '__/ __| |/ _ \| '_ \    |_ \ | | | | |
  \ V /  __/ |  \__ \ | (_) | | | |  ___) || | |_| |
   \_/ \___|_|  |___/_|\___/|_| |_| |____(_)_|\___/
 
-The "to be named" release. Major changes:
+The Clean Diaper Release, a.k.a. SimGrid is leak-free. Major changes:
 
  * Preliminary DVFS support to track the energy consumption
  * Java is back in the main package (and is very stable).
  * The storage sub-modules is now believed to be usable.
  * SMPI is now very stable (we pass most MPICH tests).
- * Verification and model checking further improved: 
+ * Lots of memory leaks were corrected in this release.
+ * Verification and model checking further improved:
    liveness+SMPI works; reduction through state equality detection
  Plus the usual load of bug fixes and small improvements
+
                     _               _____ ___
 __   _____ _ __ ___(_) ___  _ __   |___ // _ \
 \ \ / / _ \ '__/ __| |/ _ \| '_ \    |_ \ (_) |
index bc9cff0..925b361 100644 (file)
@@ -28,28 +28,36 @@ else()
 SET(TESH_COMMAND ${CMAKE_BINARY_DIR}/bin/tesh)
 endif()
 
+#some tests may take forever on non futexes systems, using busy_wait with n cores < n workers
+# default to posix for these tests if futexes are not supported
+if(NOT HAVE_FUTEX_H) 
+SET(CONTEXTS_SYNCHRO --cfg contexts/synchro:posix)
+endif()
+
 INCLUDE(CTest)
 ENABLE_TESTING()
 
 if(NOT enable_memcheck)
-  ADD_TEST(tesh-self-basic                      ${TESH_COMMAND} ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/bin --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" basic.tesh)
+  ADD_TEST(tesh-self-basic                      ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/basic.tesh)
   ADD_TEST(tesh-self-cd                         ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/cd.tesh)
-  ADD_TEST(tesh-self-IO-broken-pipe             ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" IO-broken-pipe.tesh)
+  ADD_TEST(tesh-self-IO-broken-pipe             ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/IO-broken-pipe.tesh)
   ADD_TEST(tesh-self-IO-orders                  ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/IO-orders.tesh)
-  ADD_TEST(tesh-self-IO-bigsize                 ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" IO-bigsize.tesh)
-  ADD_TEST(tesh-self-set-return                 ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" set-return.tesh)
-  ADD_TEST(tesh-self-set-timeout                ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" set-timeout.tesh)
-  ADD_TEST(tesh-self-set-ignore-output          ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-ignore-output.tesh)
+  ADD_TEST(tesh-self-IO-bigsize                 ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/IO-bigsize.tesh)
+  ADD_TEST(tesh-self-set-return                 ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-return.tesh)
+  ADD_TEST(tesh-self-set-timeout                ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-timeout.tesh)
+  ADD_TEST(tesh-self-set-output-ignore          ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-output-ignore.tesh)
+  ADD_TEST(tesh-self-set-output-sort            ${TESH_COMMAND} ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/bin --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" set-output-sort.tesh)
   ADD_TEST(tesh-self-catch-return               ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-return.tesh)
   ADD_TEST(tesh-self-catch-timeout              ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-timeout.tesh)
   ADD_TEST(tesh-self-catch-wrong-output         ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-wrong-output.tesh)
-  ADD_TEST(tesh-self-bg-basic                   ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" bg-basic.tesh)
-  ADD_TEST(tesh-self-background                 ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" background.tesh)
+  ADD_TEST(tesh-self-bg-basic                   ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/bg-basic.tesh)
+  ADD_TEST(tesh-self-background                 ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/background.tesh)
 
   if(NOT WIN32)
-    ADD_TEST(tesh-self-set-signal                 ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" set-signal.tesh)
-    ADD_TEST(tesh-self-bg-set-signal              ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_HOME_DIRECTORY}/tools/tesh" bg-set-signal.tesh)
-    ADD_TEST(tesh-self-catch-signal               ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-signal.tesh)
+    ADD_TEST(tesh-self-set-signal               ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/set-signal.tesh)
+    ADD_TEST(tesh-self-bg-set-signal            ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/bg-set-signal.tesh)
+    ADD_TEST(tesh-self-catch-signal             ${TESH_COMMAND} ${TESH_OPTION} --cd "${CMAKE_BINARY_DIR}/bin" ${CMAKE_HOME_DIRECTORY}/tools/tesh/catch-signal.tesh)
   endif()
 
   # BEGIN TESH TESTS
@@ -102,8 +110,9 @@ if(NOT enable_memcheck)
     ADD_TEST(tesh-msg-pid-ucontext              ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/msg/pid.tesh)
   endif()
 
-
-  IF(enable_debug) # these tests need the assertion mechanism
+  # these tests need the assertion mechanism
+  # exclude them from memcheck, as they normally die, leaving lots of unfree'd objects
+  IF(enable_debug AND NOT enable_memcheck)
     ADD_TEST(tesh-simdag-parser-bogus-symmetric ${TESH_COMMAND} ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/simdag/platforms --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/simdag/platforms two_hosts_asymetric.tesh)
   ENDIF()
 
@@ -136,6 +145,7 @@ if(NOT enable_memcheck)
 
   # MSG examples
   ADD_TEST(msg-file                             ${TESH_COMMAND} ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/ --setenv srcdir=${CMAKE_HOME_DIRECTORY}/ --cd ${CMAKE_HOME_DIRECTORY}/examples/ ${CMAKE_HOME_DIRECTORY}/examples/msg/io/io.tesh)
+  ADD_TEST(msg-storage                          ${TESH_COMMAND} ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/ --setenv srcdir=${CMAKE_HOME_DIRECTORY}/ --cd ${CMAKE_HOME_DIRECTORY}/examples/ ${CMAKE_HOME_DIRECTORY}/examples/msg/io/storage.tesh)
   ADD_TEST(msg-start-kill-time                  ${TESH_COMMAND} ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/ --setenv srcdir=${CMAKE_HOME_DIRECTORY}/ --cd ${CMAKE_HOME_DIRECTORY}/examples/ ${CMAKE_HOME_DIRECTORY}/examples/msg/start_kill_time/start_kill_time.tesh)
   ADD_TEST(msg-chainsend                        ${TESH_COMMAND} ${TESH_OPTION} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chainsend --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg/chainsend --cd ${CMAKE_HOME_DIRECTORY}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/chainsend/chainsend.tesh)
 
@@ -159,13 +169,10 @@ if(NOT enable_memcheck)
   ADD_TEST(msg-masterslave-mailbox-thread       ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_mailbox_crosstraffic.tesh)
   ADD_TEST(msg-masterslave-cpu-ti-thread        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/masterslave --cd ${CMAKE_HOME_DIRECTORY}/examples/msg masterslave/masterslave_cpu_ti_crosstraffic.tesh)
 
-  ADD_TEST(msg-masterslave-virtual-machines     ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/cloud/masterslave_virtual_machines.tesh)
+  ADD_TEST(msg-masterslave-vivaldi-thread       ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_vivaldi.tesh)
+
+  ADD_TEST(msg-masterslave-virtual-machines-thread ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/cloud/masterslave_virtual_machines.tesh)
 
-  ADD_TEST(msg-energy-pstates                   ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e1/pstate.tesh)
-  ADD_TEST(msg-energy-consumption               ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e2/energy_consumption.tesh)
-  ADD_TEST(msg-energy-concurrent-tasks          ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e3/concurrent_tasks.tesh)
-  ADD_TEST(msg-storage                          ${TESH_COMMAND} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/msg/storage/storage.tesh)
-  
   if(CONTEXT_UCONTEXT)
     ADD_TEST(msg-sendrecv-CLM03-ucontext        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_CLM03.tesh)
     ADD_TEST(msg-sendrecv-Vegas-ucontext        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/sendrecv/sendrecv_Vegas.tesh)
@@ -186,10 +193,9 @@ if(NOT enable_memcheck)
     ADD_TEST(msg-masterslave-mailbox-ucontext   ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_mailbox_crosstraffic.tesh)
     ADD_TEST(msg-masterslave-cpu-ti-ucontext    ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/masterslave --cd ${CMAKE_HOME_DIRECTORY}/examples/msg masterslave/masterslave_cpu_ti_crosstraffic.tesh)
 
-    ADD_TEST(msg-energy-pstates-ucontext                ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e1/pstate.tesh)
-    ADD_TEST(msg-energy-consumption-ucontext            ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e2/energy_consumption.tesh)
-    ADD_TEST(msg-energy-concurrent-tasks-ucontext       ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e3/concurrent_tasks.tesh)
+    ADD_TEST(msg-masterslave-vivaldi-ucontext   ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_vivaldi.tesh)
 
+    ADD_TEST(msg-masterslave-virtual-machines-ucontext ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/cloud/masterslave_virtual_machines.tesh)
   endif()
 
   if(HAVE_RAWCTX)
@@ -212,22 +218,42 @@ if(NOT enable_memcheck)
     ADD_TEST(msg-masterslave-mailbox-raw        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_mailbox_crosstraffic.tesh)
     ADD_TEST(msg-masterslave-cpu-ti-raw         ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/masterslave --cd ${CMAKE_HOME_DIRECTORY}/examples/msg masterslave/masterslave_cpu_ti_crosstraffic.tesh)
 
+    ADD_TEST(msg-masterslave-vivaldi-raw        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_vivaldi.tesh)
+
+    ADD_TEST(msg-masterslave-virtual-machines-raw ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg --cd ${CMAKE_HOME_DIRECTORY}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/cloud/masterslave_virtual_machines.tesh)
+  endif()
+
+  ADD_TEST(msg-energy-pstates-thread            ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e1/pstate.tesh)
+  ADD_TEST(msg-energy-consumption-thread        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e2/energy_consumption.tesh)
+  ADD_TEST(msg-energy-concurrent-tasks-thread   ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e3/concurrent_tasks.tesh)
+
+  if(CONTEXT_UCONTEXT)
+    ADD_TEST(msg-energy-pstates-ucontext        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e1/pstate.tesh)
+    ADD_TEST(msg-energy-consumption-ucontext    ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e2/energy_consumption.tesh)
+    ADD_TEST(msg-energy-concurrent-tasks-ucontext ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e3/concurrent_tasks.tesh)
+  endif()
+
+  if(HAVE_RAWCTX)
     ADD_TEST(msg-energy-pstates-raw             ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e1/pstate.tesh)
     ADD_TEST(msg-energy-consumption-raw         ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e2/energy_consumption.tesh)
     ADD_TEST(msg-energy-concurrent-tasks-raw    ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/energy/e3/concurrent_tasks.tesh)
-
   endif()
 
-  ADD_TEST(msg-masterslave-vivaldi-thread       ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_vivaldi.tesh)
-  ADD_TEST(msg-token-ring-thread                ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_BINARY_DIR}/examples/msg/token_ring ${CMAKE_HOME_DIRECTORY}/examples/msg/token_ring/token_ring.tesh)
+  ADD_TEST(msg-storage-basic-thread                   ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/msg/storage/storage_basic.tesh)
+  if(CONTEXT_UCONTEXT)
+    ADD_TEST(msg-storage-basic-ucontext               ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/msg/storage/storage_basic.tesh)
+  endif()
   if(HAVE_RAWCTX)
-    ADD_TEST(msg-masterslave-vivaldi-raw        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_vivaldi.tesh)
-    ADD_TEST(msg-token-ring-raw                 ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_BINARY_DIR}/examples/msg/token_ring ${CMAKE_HOME_DIRECTORY}/examples/msg/token_ring/token_ring.tesh)
+    ADD_TEST(msg-storage-basic-raw                    ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite --cd ${CMAKE_BINARY_DIR}/teshsuite ${CMAKE_HOME_DIRECTORY}/teshsuite/msg/storage/storage_basic.tesh)
   endif()
+
+  ADD_TEST(msg-token-ring-thread                ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_BINARY_DIR}/examples/msg/token_ring ${CMAKE_HOME_DIRECTORY}/examples/msg/token_ring/token_ring.tesh)
   if(CONTEXT_UCONTEXT)
-    ADD_TEST(msg-masterslave-vivaldi-ucontext   ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/masterslave/masterslave_vivaldi.tesh)
     ADD_TEST(msg-token-ring-ucontext            ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_BINARY_DIR}/examples/msg/token_ring ${CMAKE_HOME_DIRECTORY}/examples/msg/token_ring/token_ring.tesh)
   endif()
+  if(HAVE_RAWCTX)
+    ADD_TEST(msg-token-ring-raw                 ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv srcdir=${CMAKE_HOME_DIRECTORY} --cd ${CMAKE_BINARY_DIR}/examples/msg/token_ring ${CMAKE_HOME_DIRECTORY}/examples/msg/token_ring/token_ring.tesh)
+  endif()
 
   ADD_TEST(msg-migration-thread                 ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/migration/migration.tesh)
   ADD_TEST(msg-ptask-thread                     ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/parallel_task/parallel_task.tesh)
@@ -237,13 +263,13 @@ if(NOT enable_memcheck)
   ADD_TEST(msg-actions-thread                   ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/actions --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/actions actions.tesh)
   ADD_TEST(msg-trace-thread                     ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/msg --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/msg trace/trace.tesh)
   ADD_TEST(msg-chord-no-crosstraffic-thread     ${TESH_COMMAND} ${TESH_OPTION} --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-no-crosstraffic-thread-parallel ${TESH_COMMAND} ${TESH_OPTION} --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-no-crosstraffic-thread-parallel ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
   ADD_TEST(msg-chord-thread                     ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord_crosstraffic.tesh)
-  ADD_TEST(msg-chord-thread-parallel            ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --cfg contexts/nthreads:4 --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord_crosstraffic.tesh)
+  ADD_TEST(msg-chord-thread-parallel            ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --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_TEST(msg-bittorrent-thread                ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/bittorrent --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/bittorrent bittorrent.tesh)
-  ADD_TEST(msg-bittorrent-thread-parallel       ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/nthreads:4 --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/bittorrent --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/bittorrent bittorrent.tesh)
+  ADD_TEST(msg-bittorrent-thread-parallel       ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/nthreads:4 --cfg contexts/factory:thread ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/bittorrent --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/bittorrent bittorrent.tesh)
   ADD_TEST(msg-kademlia-thread                  ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/kademlia kademlia.tesh)
-  ADD_TEST(msg-kademlia-thread-parallel         ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/nthreads:4 --cfg contexts/factory:thread --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/kademlia kademlia.tesh)
+  ADD_TEST(msg-kademlia-thread-parallel         ${TESH_COMMAND} ${TESH_OPTION} --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)
 
   if(CONTEXT_UCONTEXT)
     ADD_TEST(msg-migration-ucontext             ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/msg --cd ${CMAKE_BINARY_DIR}/examples/msg ${CMAKE_HOME_DIRECTORY}/examples/msg/migration/migration.tesh)
@@ -254,13 +280,13 @@ if(NOT enable_memcheck)
     ADD_TEST(msg-actions-ucontext               ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/actions --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/actions actions.tesh)
     ADD_TEST(msg-trace-ucontext                 ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/msg --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/msg trace/trace.tesh)
     ADD_TEST(msg-chord-no-crosstraffic-ucontext ${TESH_COMMAND} ${TESH_OPTION} --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-no-crosstraffic-ucontext-parallel ${TESH_COMMAND} ${TESH_OPTION} --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)
+    ADD_TEST(msg-chord-no-crosstraffic-ucontext-parallel ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
     ADD_TEST(msg-chord-ucontext                 ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord_crosstraffic.tesh)
-    ADD_TEST(msg-chord-ucontext-parallel        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --cfg contexts/nthreads:4 --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord_crosstraffic.tesh)
+    ADD_TEST(msg-chord-ucontext-parallel        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --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_TEST(msg-bittorrent-ucontext            ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/bittorrent --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/bittorrent bittorrent.tesh)
-    ADD_TEST(msg-bittorrent-ucontext-parallel   ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/nthreads:4 --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/bittorrent --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/bittorrent bittorrent.tesh)
+    ADD_TEST(msg-bittorrent-ucontext-parallel   ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/bittorrent --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/bittorrent bittorrent.tesh)
     ADD_TEST(msg-kademlia-ucontext              ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/kademlia kademlia.tesh)
-    ADD_TEST(msg-kademlia-ucontext-parallel     ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/nthreads:4 --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/kademlia kademlia.tesh)
+    ADD_TEST(msg-kademlia-ucontext-parallel     ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --cfg contexts/factory:ucontext --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/kademlia kademlia.tesh)
 
   endif()
   if(HAVE_RAWCTX)
@@ -272,13 +298,13 @@ if(NOT enable_memcheck)
     ADD_TEST(msg-properties-raw                 ${TESH_COMMAND} ${TESH_OPTION} --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-trace-raw                      ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/teshsuite/msg --cd ${CMAKE_HOME_DIRECTORY}/teshsuite/msg trace/trace.tesh)
     ADD_TEST(msg-chord-no-crosstraffic-raw      ${TESH_COMMAND} ${TESH_OPTION} --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-no-crosstraffic-raw-parallel ${TESH_COMMAND} ${TESH_OPTION} --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)
+    ADD_TEST(msg-chord-no-crosstraffic-raw-parallel ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord.tesh)
     ADD_TEST(msg-chord-raw                      ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord_crosstraffic.tesh)
-    ADD_TEST(msg-chord-raw-parallel             ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --cfg contexts/nthreads:4 --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/chord --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/chord chord_crosstraffic.tesh)
+    ADD_TEST(msg-chord-raw-parallel             ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory: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_TEST(msg-bittorrent-raw                 ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/bittorrent --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/bittorrent bittorrent.tesh)
-    ADD_TEST(msg-bittorrent-raw-parallel        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/nthreads:4 --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/bittorrent --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/bittorrent bittorrent.tesh)
+    ADD_TEST(msg-bittorrent-raw-parallel        ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/bittorrent --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/bittorrent bittorrent.tesh)
     ADD_TEST(msg-kademlia-raw                   ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/kademlia kademlia.tesh)
-    ADD_TEST(msg-kademlia-raw-parallel          ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/nthreads:4 --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/kademlia kademlia.tesh)
+    ADD_TEST(msg-kademlia-raw-parallel          ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/nthreads:4 ${CONTEXTS_SYNCHRO} --cfg contexts/factory:raw --setenv bindir=${CMAKE_BINARY_DIR}/examples/msg/kademlia --cd ${CMAKE_HOME_DIRECTORY}/examples/msg/kademlia kademlia.tesh)
   endif()
 
   # simdag examples
@@ -400,7 +426,7 @@ if(NOT enable_memcheck)
       ADD_TEST(smpi-pt2pt-ucontext              ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/pt2pt.tesh)
       ADD_TEST(smpi-compute-ucontext            ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/compute.tesh)
       if (NOT WIN32)
-        ADD_TEST(smpi-shared-ucontext             ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/shared.tesh)
+        ADD_TEST(smpi-shared-ucontext           ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:ucontext --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/shared.tesh)
       endif()
     endif()
     if(HAVE_RAWCTX)
@@ -413,12 +439,22 @@ if(NOT enable_memcheck)
       ADD_TEST(smpi-pt2pt-raw                   ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/pt2pt.tesh)
       ADD_TEST(smpi-compute-raw                 ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/compute.tesh)
       if (NOT WIN32)
-        ADD_TEST(smpi-shared-raw                  ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/shared.tesh)
+        ADD_TEST(smpi-shared-raw                ${TESH_COMMAND} ${TESH_OPTION} --cfg contexts/factory:raw --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/shared.tesh)
       endif()
     endif()
+
+    ADD_TEST(smpi-energy                        ${TESH_COMMAND} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/smpi/energy --cd ${CMAKE_BINARY_DIR}/examples/smpi/energy ${CMAKE_HOME_DIRECTORY}/examples/smpi/energy/energy.tesh)
+    if(SMPI_F2C)
+      ADD_TEST(smpi-energy-f77                  ${TESH_COMMAND} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/smpi/energy --cd ${CMAKE_BINARY_DIR}/examples/smpi/energy ${CMAKE_HOME_DIRECTORY}/examples/smpi/energy/f77/energy.tesh)
+    endif()
+    if(SMPI_F90)
+      ADD_TEST(smpi-energy-f90                  ${TESH_COMMAND} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/smpi/energy --cd ${CMAKE_BINARY_DIR}/examples/smpi/energy ${CMAKE_HOME_DIRECTORY}/examples/smpi/energy/f90/energy.tesh)
+    endif()
+
     if(HAVE_TRACING)
       ADD_TEST(smpi-tracing-ptp                 ${TESH_COMMAND} ${TESH_OPTION} --cd ${CMAKE_BINARY_DIR}/examples/smpi ${CMAKE_HOME_DIRECTORY}/examples/smpi/tracing/smpi_traced.tesh)
       ADD_TEST(smpi-replay                      ${TESH_COMMAND} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/smpi --cd ${CMAKE_BINARY_DIR}/examples/smpi ${CMAKE_HOME_DIRECTORY}/examples/smpi/replay/smpi_replay.tesh)
+      ADD_TEST(smpi-replay-ti-tracing           ${TESH_COMMAND} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi --cd ${CMAKE_BINARY_DIR}/teshsuite/smpi ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/TI_output.tesh)
     endif()
 
     FOREACH (GATHER_COLL default ompi mpich ompi_basic_linear ompi_linear_sync ompi_binomial)
@@ -502,10 +538,10 @@ if(NOT enable_memcheck)
     if(SMPI_F2C)
       ADD_TEST(smpi-mpich3-thread-f77           ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/f77/ perl ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f77/ -tests=testlist -execarg=--cfg=contexts/factory:thread -execarg=--cfg=contexts/stack_size:8000)
       set_tests_properties(smpi-mpich3-thread-f77 PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
-      if(NOT HAVE_MC)
-        ADD_TEST(smpi-mpich3-thread-f90         ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/f90/ perl ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f90/ -tests=testlist -execarg=--cfg=contexts/factory:thread)
-        set_tests_properties(smpi-mpich3-thread-f90 PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
-      endif()
+    endif()
+    if(SMPI_F90)
+      ADD_TEST(smpi-mpich3-thread-f90           ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_DIR}/teshsuite/smpi/mpich3-test/f90/ perl ${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/runtests -mpiexec=${CMAKE_BINARY_DIR}/smpi_script/bin/smpirun -srcdir=${CMAKE_HOME_DIRECTORY}/teshsuite/smpi/mpich3-test/f90/ -tests=testlist -execarg=--cfg=contexts/factory:thread)
+      set_tests_properties(smpi-mpich3-thread-f90 PROPERTIES PASS_REGULAR_EXPRESSION "tests passed!")
     endif()
   endif()
 
index 846f9ea..69af01f 100644 (file)
@@ -9,7 +9,7 @@ set(CMAKE_MODULE_PATH
 
 ### Determine the assembly flavor that we need today
 include(CMakeDetermineSystem)
-IF(CMAKE_SYSTEM_PROCESSOR MATCHES ".86|AMD64")
+IF(CMAKE_SYSTEM_PROCESSOR MATCHES ".86|AMD64|amd64")
   IF(${ARCH_32_BITS})
     message(STATUS "System processor: i686 (${CMAKE_SYSTEM_PROCESSOR}, 32 bits)")
     set(PROCESSOR_i686 1)
@@ -78,10 +78,6 @@ set(HAVE_GTNETS 0)
 if(enable_gtnets)
   include(FindGTnets)
 endif()
-if(enable_smpi)
-  include(FindF2c)
-  SET(HAVE_SMPI 1)
-endif()
 if(enable_java)
   find_package(Java REQUIRED COMPONENTS Runtime Development)
   find_package(JNI REQUIRED)
@@ -152,7 +148,6 @@ CHECK_FUNCTION_EXISTS(asprintf HAVE_ASPRINTF)
 CHECK_FUNCTION_EXISTS(vasprintf HAVE_VASPRINTF)
 CHECK_FUNCTION_EXISTS(makecontext HAVE_MAKECONTEXT)
 CHECK_FUNCTION_EXISTS(mmap HAVE_MMAP)
-CHECK_FUNCTION_EXISTS(mergesort HAVE_MERGESORT)
 
 #Check if __thread is defined
 execute_process(
@@ -221,6 +216,13 @@ else()
   SET(MMALLOC_WANT_OVERRIDE_LEGACY 0)
 endif()
 
+if(enable_smpi)
+  include(FindF2c)
+  # FindGFortran must come after FindF2C, and after having set HAVE_MC
+  include(FindGFortran)
+  SET(HAVE_SMPI 1)
+endif()
+
 #--------------------------------------------------------------------------------------------------
 ### Check for some architecture dependent values
 CHECK_TYPE_SIZE(int SIZEOF_INT)
@@ -511,12 +513,20 @@ if(EXISTS ${CMAKE_HOME_DIRECTORY}/.git/ AND NOT WIN32)
     string(REPLACE "\n" "" GIT_DATE "${GIT_DATE}")
     message(STATUS "Git date: ${GIT_DATE}")
     string(REGEX REPLACE " .*" "" GIT_VERSION "${GIT_VERSION}")
-    STRING(REPLACE " +0000" "" GIT_DATE "${GIT_DATE}")
-    STRING(REPLACE " " "~" GIT_DATE "${GIT_DATE}")
-    STRING(REPLACE ":" "-" GIT_DATE "${GIT_DATE}")
   endif()
 endif()
 
+if(release)
+  set(SIMGRID_VERSION_STRING "${SIMGRID_VERSION_STRING}\\nRelease build")
+else()
+  set(SIMGRID_VERSION_STRING "${SIMGRID_VERSION_STRING}\\nDevelopment build")
+endif()
+if(GIT_VERSION)
+  set(SIMGRID_VERSION_STRING "${SIMGRID_VERSION_STRING} at commit ${GIT_VERSION}")
+endif()
+if(GIT_DATE)
+  set(SIMGRID_VERSION_STRING "${SIMGRID_VERSION_STRING} (${GIT_DATE})")
+endif()
 #--------------------------------------------------------------------------------------------------
 
 set(makecontext_CPPFLAGS_2 "")
@@ -798,6 +808,7 @@ if(HAVE_NS3_LIB)
 endif()
 set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:\${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}\"")
 
+file(READ ${CMAKE_HOME_DIRECTORY}/src/smpi/smpitools.sh SMPITOOLS_SH)
 configure_file(${CMAKE_HOME_DIRECTORY}/include/smpi/mpif.h.in ${CMAKE_BINARY_DIR}/include/smpi/mpif.h @ONLY)
 configure_file(${CMAKE_HOME_DIRECTORY}/include/smpi/smpif.h.in ${CMAKE_BINARY_DIR}/include/smpi/smpif.h @ONLY)
 configure_file(${CMAKE_HOME_DIRECTORY}/src/smpi/smpicc.in ${CMAKE_BINARY_DIR}/bin/smpicc @ONLY)
index 3902cd1..615ca4d 100644 (file)
@@ -124,6 +124,7 @@ set(SMPI_SRC
   src/smpi/smpi_c99.c
   src/smpi/smpi_coll.c
   src/smpi/smpi_comm.c
+  src/smpi/smpi_dvfs.c
   src/smpi/smpi_global.c
   src/smpi/smpi_group.c
   src/smpi/smpi_mpi.c
@@ -499,7 +500,9 @@ set(TRACING_SRC
   src/instr/instr_config.c
   src/instr/instr_interface.c
   src/instr/instr_paje_containers.c
+  src/instr/instr_TI_trace.c
   src/instr/instr_paje_trace.c
+  src/instr/instr_trace.c
   src/instr/instr_paje_header.c
   src/instr/instr_paje_types.c
   src/instr/instr_paje_values.c
@@ -827,6 +830,7 @@ set(bin_files
   src/smpi/smpiff.in
   src/smpi/smpif90.in
   src/smpi/smpirun.in
+  src/smpi/smpitools.sh
   )
 
 set(txt_files
@@ -907,6 +911,9 @@ set(EXAMPLES_CMAKEFILES_TXT
   examples/simdag/scheduling/CMakeLists.txt
   examples/smpi/CMakeLists.txt
   examples/smpi/MM/CMakeLists.txt
+  examples/smpi/energy/CMakeLists.txt
+  examples/smpi/energy/f77/CMakeLists.txt
+  examples/smpi/energy/f90/CMakeLists.txt
   examples/xbt/CMakeLists.txt
   )
 
@@ -973,6 +980,7 @@ set(CMAKE_SOURCE_FILES
   buildtools/Cmake/MakeLib.cmake
   buildtools/Cmake/MakeLibWin.cmake
   buildtools/Cmake/Modules/FindF2c.cmake
+  buildtools/Cmake/Modules/FindGFortran.cmake
   buildtools/Cmake/Modules/FindGTnets.cmake
   buildtools/Cmake/Modules/FindGraphviz.cmake
   buildtools/Cmake/Modules/FindLibunwind.cmake
@@ -1029,6 +1037,7 @@ set(PLATFORMS_EXAMPLES
   examples/platforms/conf/lcg_sept2004_grid.xml
   examples/platforms/conf/transform_optorsim_platform.pl
   examples/platforms/config.xml
+  examples/platforms/content/small_content.txt
   examples/platforms/content/storage_content.txt
   examples/platforms/content/win_storage_content.txt
   examples/platforms/data_center.xml
index 7c9a201..775512c 100644 (file)
@@ -67,7 +67,7 @@ if(enable_lib_static AND NOT WIN32)
 endif()
 
 if(enable_java)
-  install(TARGETS SG_java
+  install(TARGETS simgrid-java
       DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
   install(FILES ${SIMGRID_JAR}
       DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/java/)
index 07cc6ec..9c37da3 100644 (file)
@@ -11,12 +11,12 @@ else()
 endif()
 
 if(enable_compile_warnings)
-  set(warnCFLAGS "-fno-common -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wclobbered -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror -Wno-error=clobbered ")
-  if(COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.5")
-    set(warnCFLAGS "${warnCFLAGS}-Wno-error=unused-but-set-variable ")
-  endif()
-  if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
-    string(REPLACE "-Wclobbered " "" warnCFLAGS "${warnCFLAGS}")
+  set(warnCFLAGS "-fno-common -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror ")
+  if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
+    set(warnCFLAGS "${warnCFLAGS}-Wclobbered -Wno-error=clobbered ")
+    if(COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.5")
+      set(warnCFLAGS "${warnCFLAGS}-Wno-error=unused-but-set-variable ")
+    endif()
   endif()
 
   set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall") # FIXME: Q&D hack
@@ -26,15 +26,17 @@ endif()
 
 if(enable_compile_optimizations)
   set(optCFLAGS "-O3 -finline-functions -funroll-loops -fno-strict-aliasing ")
-  if(WIN32)
-    if (COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.7")
-    # On windows, we need 4.8 or higher to enable lto because of http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
-      set(optCFLAGS "${optCFLAGS} -flto ")
-    endif()
-  else()    
-    # On non-windows, 4.6 is enough for that
-    if(COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.5")
-      set(optCFLAGS "${optCFLAGS} -flto ")
+  if(CMAKE_COMPILER_IS_GNUCC)
+    if(WIN32)
+      if (COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.7")
+      # On windows, we need 4.8 or higher to enable lto because of http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50293
+        set(optCFLAGS "${optCFLAGS} -flto ")
+      endif()
+    else()    
+      # On non-windows, 4.6 is enough for that
+      if(COMPILER_C_VERSION_MAJOR_MINOR STRGREATER "4.5")
+        set(optCFLAGS "${optCFLAGS} -flto ")
+      endif()
     endif()
   endif()
 else()
index 51fb860..4c6d9d2 100644 (file)
@@ -69,6 +69,9 @@ add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/simdag/scheduling)
 
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/smpi)
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/smpi/MM)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/smpi/energy)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/smpi/energy/f77)
+add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/smpi/energy/f90)
 
 add_subdirectory(${CMAKE_HOME_DIRECTORY}/examples/xbt)
 
index c6a77b7..f7c69b4 100644 (file)
@@ -2,31 +2,31 @@ cmake_minimum_required(VERSION 2.8.6)
 
 include(UseJava)
 
-# Rules to build libSG_java
+# Rules to build libsimgrid-java
 #
-add_library(SG_java SHARED ${JMSG_C_SRC})
-set_target_properties(SG_java PROPERTIES VERSION ${libSG_java_version})
+add_library(simgrid-java SHARED ${JMSG_C_SRC})
+set_target_properties(simgrid-java PROPERTIES VERSION ${libsimgrid-java_version})
 if (CMAKE_VERSION VERSION_LESS "2.8.8")
   include_directories(${JNI_INCLUDE_DIRS})
 
   message(WARNING "[Java] Try to workaround missing feature in older CMake.  You should better update CMake to version 2.8.8 or above.")
   get_directory_property(CHECK_INCLUDES INCLUDE_DIRECTORIES)
 else()
-  get_target_property(COMMON_INCLUDES SG_java INCLUDE_DIRECTORIES)
+  get_target_property(COMMON_INCLUDES simgrid-java INCLUDE_DIRECTORIES)
   if (COMMON_INCLUDES)
-    set_target_properties(SG_java PROPERTIES
+    set_target_properties(simgrid-java PROPERTIES
       INCLUDE_DIRECTORIES "${COMMON_INCLUDES};${JNI_INCLUDE_DIRS}")
   else()
-    set_target_properties(SG_java PROPERTIES
+    set_target_properties(simgrid-java PROPERTIES
       INCLUDE_DIRECTORIES "${JNI_INCLUDE_DIRS}")
   endif()
-  add_dependencies(SG_java simgrid)
+  add_dependencies(simgrid-java simgrid)
 
-  get_target_property(CHECK_INCLUDES SG_java INCLUDE_DIRECTORIES)
+  get_target_property(CHECK_INCLUDES simgrid-java INCLUDE_DIRECTORIES)
 endif()
-message("-- [Java] SG_java includes: ${CHECK_INCLUDES}")
+message("-- [Java] simgrid-java includes: ${CHECK_INCLUDES}")
 
-target_link_libraries(SG_java simgrid)
+target_link_libraries(simgrid-java simgrid)
 
 
 
@@ -39,14 +39,14 @@ if(WIN32)
     message(FATAL_ERROR "Java JVM needs to be 32 bits to be able to run with Simgrid on Windows for now")
   endif()
 
-  set_target_properties(SG_java PROPERTIES
+  set_target_properties(simgrid-java PROPERTIES
     LINK_FLAGS "-Wl,--subsystem,windows,--kill-at"
     PREFIX "")
   find_path(PEXPORTS_PATH NAMES pexports.exe PATHS NO_DEFAULT_PATHS)
   message(STATUS "pexports: ${PEXPORTS_PATH}")
   if(PEXPORTS_PATH)
-    add_custom_command(TARGET SG_java POST_BUILD
-      COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/lib/SG_java.dll > ${CMAKE_BINARY_DIR}/lib/SG_java.def)
+    add_custom_command(TARGET simgrid-java POST_BUILD
+      COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/lib/simgrid-java.dll > ${CMAKE_BINARY_DIR}/lib/simgrid-java.def)
   endif(PEXPORTS_PATH)
 endif()
 
@@ -59,8 +59,8 @@ set(SIMGRID_JAR "${CMAKE_BINARY_DIR}/simgrid.jar")
 set(MANIFEST_FILE "${CMAKE_HOME_DIRECTORY}/src/bindings/java/MANIFEST.MF")
 set(LIBSIMGRID_SO
   libsimgrid${CMAKE_SHARED_LIBRARY_SUFFIX})
-set(LIBSG_JAVA_SO
-  ${CMAKE_SHARED_LIBRARY_PREFIX}SG_java${CMAKE_SHARED_LIBRARY_SUFFIX})
+set(LIBSIMGRID_JAVA_SO
+  ${CMAKE_SHARED_LIBRARY_PREFIX}simgrid-java${CMAKE_SHARED_LIBRARY_SUFFIX})
 
 ## Name of the "NATIVE" folder in simgrid.jar
 ##
@@ -86,16 +86,20 @@ endif()
 
 ## Here is how to build simgrid.jar
 ##
-set(CMAKE_JAVA_TARGET_OUTPUT_NAME simgrid)
-add_jar(SG_java_pre_jar ${JMSG_JAVA_SRC})
+if(CMAKE_VERSION VERSION_LESS "2.8.12")
+  set(CMAKE_JAVA_TARGET_OUTPUT_NAME simgrid)
+  add_jar(simgrid-java_pre_jar ${JMSG_JAVA_SRC})
+else()
+  add_jar(simgrid-java_pre_jar ${JMSG_JAVA_SRC} OUTPUT_NAME simgrid)
+endif()
 
 add_custom_command(
   COMMENT "Finalize simgrid.jar..."
   OUTPUT ${SIMGRID_JAR}_finalized
-  DEPENDS simgrid SG_java SG_java_pre_jar
+  DEPENDS simgrid simgrid-java simgrid-java_pre_jar
           ${SIMGRID_JAR} ${MANIFEST_FILE}
           ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO}
-          ${CMAKE_BINARY_DIR}/lib/${LIBSG_JAVA_SO}
+          ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_JAVA_SO}
           ${CMAKE_HOME_DIRECTORY}/COPYING
           ${CMAKE_HOME_DIRECTORY}/ChangeLog
           ${CMAKE_HOME_DIRECTORY}/ChangeLog.SimGrid-java
@@ -104,8 +108,8 @@ add_custom_command(
   COMMAND ${CMAKE_COMMAND} -E make_directory "${JSG_BUNDLE}"
   COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO}" "${JSG_BUNDLE}"
   COMMAND ${STRIP_COMMAND} -S "${JSG_BUNDLE}/${LIBSIMGRID_SO}"
-  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/lib/${LIBSG_JAVA_SO}" "${JSG_BUNDLE}"
-  COMMAND ${STRIP_COMMAND} -S "${JSG_BUNDLE}/${LIBSG_JAVA_SO}"
+  COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_JAVA_SO}" "${JSG_BUNDLE}"
+  COMMAND ${STRIP_COMMAND} -S "${JSG_BUNDLE}/${LIBSIMGRID_JAVA_SO}"
   COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/COPYING" "${JSG_BUNDLE}"
   COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/ChangeLog" "${JSG_BUNDLE}"
   COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/ChangeLog.SimGrid-java" "${JSG_BUNDLE}"
@@ -114,4 +118,4 @@ add_custom_command(
   COMMAND ${CMAKE_COMMAND} -E remove ${SIMGRID_JAR}_finalized
   COMMAND ${CMAKE_COMMAND} -E touch ${SIMGRID_JAR}_finalized
   )
-add_custom_target(SG_java_jar ALL DEPENDS ${SIMGRID_JAR}_finalized)
+add_custom_target(simgrid-java_jar ALL DEPENDS ${SIMGRID_JAR}_finalized)
index efe8df6..611e765 100644 (file)
@@ -56,20 +56,18 @@ message(STATUS "Looking for bin f2c")
 if(F2C_EXE)
   message(STATUS "Found F2C: ${F2C_EXE}")
 else()
-  message(STATUS "Looking for bin f2c - not found")
+  message(STATUS "Looking for bin f2c - not found (http://www.netlib.org/f2c/)")
 endif()
 
 mark_as_advanced(HAVE_F2C_H)
 mark_as_advanced(F2C_EXE)
 mark_as_advanced(HAVE_F2C_LIB)
 
-if(HAVE_F2C_H)
-  include_directories(${HAVE_F2C_H})
-else()
-    message("-- Fortran for smpi is not installed (http://www.netlib.org/f2c/).")
+if(HAVE_F2C_LIB)
+  get_filename_component(F2C_LIBRARY_PATH "${HAVE_F2C_LIB}" PATH)
+  file(TO_NATIVE_PATH "${F2C_LIBRARY_PATH}" F2C_LIBRARY_PATH)
 endif()
 
-
 #Some old versions of 64 bits systems seem to have a different size between C and Fortran Datatypes
 #Deactivate F2C with these versions, in order to avoid breaking test cases in legacy systems (as Fedora 13)
 set(COMPILER_OK 1)
@@ -82,3 +80,9 @@ set(SMPI_F2C 0)
 if(HAVE_F2C_H AND F2C_EXE AND HAVE_F2C_LIB AND COMPILER_OK)
   set(SMPI_F2C 1)
 endif()
+
+if(SMPI_F2C)
+  include_directories(${HAVE_F2C_H})
+else()
+  message("-- Fortran 77 support for smpi is disabled.")
+endif()
diff --git a/buildtools/Cmake/Modules/FindGFortran.cmake b/buildtools/Cmake/Modules/FindGFortran.cmake
new file mode 100644 (file)
index 0000000..f034577
--- /dev/null
@@ -0,0 +1,34 @@
+find_program(GFORTRAN_EXE
+  NAME gfortran
+  PATH_SUFFIXES bin/
+  PATHS
+  /opt
+  /opt/local
+  /opt/csw
+  /sw
+  /usr
+  )
+
+mark_as_advanced(GFORTRAN_EXE)
+
+message(STATUS "Looking for bin gfortran")
+if(GFORTRAN_EXE)
+  message(STATUS "Found gfortran: ${GFORTRAN_EXE}")
+else()
+  message(STATUS "Looking for bin gfortran - not found")
+endif()
+
+set(SMPI_F90 0)
+if(GFORTRAN_EXE)
+  if(NOT SMPI_F2C)
+    message("-- Fortran 90 support for smpi also needs f2c.")
+  elseif(HAVE_MC)
+    message("-- Fortran 90 support for smpi is currently not compatible with model checking.")
+  else()
+    set(SMPI_F90 1)
+  endif()
+endif()
+
+if(NOT SMPI_F90)
+  message("-- Fortran 90 support for smpi is disabled.")
+endif()
index d15127a..054222c 100644 (file)
@@ -74,9 +74,9 @@ message("\nConfiguration of package `simgrid':")
 message("        BUILDNAME ...........: ${BUILDNAME}")
 message("        SITE ................: ${SITE}")
 if(release)
-  message("        Release .............: simgrid-${release_version} (release build)")
+  message("        Release .............: simgrid-${release_version}${SIMGRID_VERSION_EXTRA} (release build)")
 else()
-  message("        Release .............: simgrid-${release_version} (development build)")
+  message("        Release .............: simgrid-${release_version}${SIMGRID_VERSION_EXTRA} (development build)")
 endif()
 message("")
 message("        Compiler: C .........: ${CMAKE_C_COMPILER} (${CMAKE_C_COMPILER_ID})")
@@ -111,6 +111,7 @@ message("        Compile Lua .........: ${HAVE_LUA}")
 message("        Compile Smpi ........: ${HAVE_SMPI}")
 message("        Compile MPI testsuite: ${enable_smpi_MPICH3_testsuite}")
 message("        Compile Smpi f77 ....: ${SMPI_F2C}")
+message("        Compile Smpi f90 ....: ${SMPI_F90}")
 message("        Compile Static ......: ${enable_lib_static}")
 message("")
 message("        Maintainer mode .....: ${enable_maintainer_mode}")
index 9170663..e103a8f 100755 (executable)
@@ -20,6 +20,7 @@ my($time_to_wait)=0;
 my $path = $0;
 my $OS;
 my $enable_coverage=0;
+my $sort_prefix = 19;
 my $tesh_file;
 my $tesh_name;
 my $error=0;
@@ -43,18 +44,6 @@ else{
     $ENV{"PRINTF_EXPONENT_DIGITS"} = "2"; 
 }
 
-
-sub trim($)
-{
-    my $string = shift;
-    $string =~ s/^\s+//;
-    $string =~ s/\s+$//;
-    return $string;
-}
-
-# make sure we received a tesh file
-scalar @ARGV > 0 || die "Usage:\n  tesh [*options*] *tesh_file*\n";
-
 #Add current directory to path
 $ENV{PATH} = "$ENV{PATH}:.";
 
@@ -309,25 +298,28 @@ sub parse_out {
   my @got;
   while(defined(my $got=<got>)) {
     $got =~ s/\r//g;
-    $got =~ s/^( )*//g;
     chomp $got;
-    $got=trim($got);
-    if( $got ne ""){
-        if (!($enable_coverage and $got=~ /^profiling:/)){    
-        push @got, "$got";
-     }
-  }
+    if (!($enable_coverage and $got=~ /^profiling:/)){
+      push @got, $got;
+    }
   }    
 
   if ($cmd{'sort'}){   
     sub mysort{
-    $a cmp $b
+        substr($a, 0, $sort_prefix) cmp substr($b, 0, $sort_prefix)
     }
-    use sort qw(defaults _quicksort); # force quicksort
+    use sort 'stable';
     @got = sort mysort @got;
+    while (@got and $got[0] eq "") {
+      shift @got;
+    }
+
     #also resort the other one, as perl sort is not the same as the C one used to generate teshes
     if(defined($cmd{'out'})){
       @{$cmd{'out'}}=sort mysort @{$cmd{'out'}};
+      while (@{$cmd{'out'}} and ${$cmd{'out'}}[0] eq "") {
+        shift @{$cmd{'out'}};
+      }
     }
   }
 
@@ -434,7 +426,7 @@ LINE: while (not $finished and not $error) {
   }
 
   # Push delayed commands on empty lines
-  unless ($line =~ m/^(.).(.*)$/) {
+  unless ($line =~ m/^(.)(.*)$/) {
     if (defined($cmd{'cmd'}))  {
       exec_cmd(\%cmd);
       %cmd = ();
@@ -443,16 +435,14 @@ LINE: while (not $finished and not $error) {
   }     
  
   my ($cmd,$arg) = ($1,$2);
+  $arg =~ s/^ //g;
   $arg =~ s/\r//g;
   $arg =~ s/\\\\/\\/g;
   # handle the commands
   if ($cmd =~ /^#/) {    #comment
   } elsif ($cmd eq '>'){    #expected result line
     print "[TESH/debug] push expected result\n" if $opts{'debug'};
-  $arg=trim($arg);
-    if($arg ne ""){
     push @{$cmd{'out'}}, $arg;
-  }
 
   } elsif ($cmd eq '<') {    # provided input
     print "[TESH/debug] push provided input\n" if $opts{'debug'};
@@ -506,6 +496,9 @@ LINE: while (not $finished and not $error) {
       %cmd = ();
     }
     $cmd{'sort'} = 1;
+    if ($line =~ /^!\s*output sort\s+(\d+)/) {
+        $sort_prefix = $1;
+    }
   }
   elsif($line =~ /^!\s*output ignore/){    #output ignore
     if (defined($cmd{'cmd'})) {
@@ -540,7 +533,7 @@ print "hey\n";
     $line =~ s/\r//g;
     setenv_cmd($line);
   }
-  elsif($line =~ /^!\s*include/){    #output sort
+  elsif($line =~ /^!\s*include/){    #include
     if (defined($cmd{'cmd'})) {
       exec_cmd(\%cmd);
       %cmd = ();
index f56228a..347192e 100644 (file)
@@ -18,6 +18,14 @@ set(simgrid_fragile_sources
 ### Rebuild the supernovae source files
 if (enable_supernovae) # I need supernovae
 
+  message(WARNING
+"==============================================================================\n"
+"WARNING\n"
+"Supernovae builds are deprecated, and expected to be removed in the next version of SimGrid.\n"
+"If you want this feature to be kept, please tell us at <simgrid-user@lists.gforge.inria.fr>.\n"
+"===============================================================================
+")
+
   # supernovae files are generated. I promise
   set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/src/supernovae_sg.c
     PROPERTIES GENERATED true)
index 3e988d1..8400694 100644 (file)
@@ -58,9 +58,6 @@
 #cmakedefine MMALLOC_WANT_OVERRIDE_LEGACY @MMALLOC_WANT_OVERRIDE_LEGACY@
 #cmakedefine HAVE_MC @HAVE_MC@
 
-/* Set to true if have the mergesort function */
-#cmakedefine HAVE_MERGESORT @HAVE_MERGESORT@
-
 /* If have linux_futex.h */
 #cmakedefine HAVE_FUTEX_H @HAVE_FUTEX_H@
 
index 2550b85..53813ec 100644 (file)
@@ -174,8 +174,8 @@ Section "Java Bindings" JavaSection
        # install java library and examples\r
        CreateDirectory $INSTDIR\examples\simgrid-java\r
        setOutPath $INSTDIR\lib\r
-       file /nonfatal "lib\SG_java.dll"\r
-       file /nonfatal "lib\SG_java.def"\r
+       file /nonfatal "lib\simgrid-java.dll"\r
+       file /nonfatal "lib\simgrid-java.def"\r
        file /nonfatal "simgrid.jar"\r
        setOutPath $INSTDIR\examples\simgrid-java\r
        file /nonfatal /r ".\examples\"\r
index deceff5..52e6752 100755 (executable)
@@ -3,6 +3,14 @@
 WORKSPACE=$1
 build_mode=$2
 
+# usage: die status message...
+die () {
+  local status=${1:-1}
+  shift
+  [ $# -gt 0 ] || set -- "Error - Halting"
+  echo "$@" >&2
+  exit $status
+}
 
 rm -rf $WORKSPACE/build
 
@@ -13,86 +21,37 @@ export PATH=./lib/:../../lib:$PATH
 
 if test "$(uname -o)" = "Msys"
 then 
-    
-    cmake -G "MSYS Makefiles" $WORKSPACE
     #$NUMBER_OF_PROCESSORS should be already set on win
     if [ -z "$NUMBER_OF_PROCESSORS" ]; then
         NUMBER_OF_PROCESSORS=1
     fi  
 
-    if [ $? -ne 0 ] ; then
-        echo "Failed to do the first cmake - Halting"
-        exit 1
-    fi
-
-    make dist
-
-    if [ $? -ne 0 ] ; then
-        echo "Failed to build dist - Halting"
-        exit 2
-    fi
-
-    cmake -G "MSYS Makefiles" -Denable_java=ON -Denable_model-checking=OFF -Denable_lua=OFF -Denable_compile_optimizations=ON  -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=ON -Denable_compile_warnings=OFF .
-
-    if [ $? -ne 0 ] ; then
-        echo "Failed to perform the Cmake for $build_mode - Halting"
-        exit 5
-    fi
+    cmake -G "MSYS Makefiles" $WORKSPACE || die 1 "Failed to do the first cmake - Halting"
 
-    make -j$NUMBER_OF_PROCESSORS
+    make dist || die 2 "Failed to build dist - Halting"
 
-    if [ $? -ne 0 ] ; then
-        echo "Build failure - Halting"
-        exit 5
-    fi
+    cmake -G "MSYS Makefiles" -Denable_java=ON -Denable_model-checking=OFF -Denable_lua=OFF -Denable_compile_optimizations=ON  -Denable_smpi=ON -Denable_smpi_MPICH3_testsuite=ON -Denable_compile_warnings=OFF . \
+    || die 5 "Failed to perform the Cmake for $build_mode - Halting"
 
-    make nsis
+    make -j$NUMBER_OF_PROCESSORS || die 5 "Build failure - Halting"
 
-    if [ $? -ne 0 ] ; then
-        echo "Failure while generating the Windows executable - Halting"
-        exit 6
-    fi
+    make nsis || die 6 "Failure while generating the Windows executable - Halting"
 
 else
-    NUMBER_OF_PROCESSORS=0
     # Linux:
     cpuinfo_file="/proc/cpuinfo"
-    if [ -f "${cpuinfo_file}" ]; then
-      NUMBER_OF_PROCESSORS=$(grep -c "processor.: " ${cpuinfo_file}) 
-    fi
-    # grep returns 0 or cpuinfo not found
-    if [ $NUMBER_OF_PROCESSORS = 0 ]; then
-      NUMBER_OF_PROCESSORS=1
-    fi
-
-    cmake $WORKSPACE
+    NUMBER_OF_PROCESSORS=$(lscpu -p 2>/dev/null | grep -c '^[^#]') || \
+    NUMBER_OF_PROCESSORS=$(grep -c "^processor[[:space:]]*:" ${cpuinfo_file} 2>/dev/null)
+    [ "0$NUMBER_OF_PROCESSORS" -gt 0 ] || NUMBER_OF_PROCESSORS=1
 
-    if [ $? -ne 0 ] ; then
-        echo "Failed to do the first cmake - Halting"
-        exit 1
-    fi
+    cmake $WORKSPACE || die 1 "Failed to do the first cmake - Halting"
 
     rm Simgrid*.tar.gz
-    make dist
-
-    if [ $? -ne 0 ] ; then
-        echo "Failed to build dist - Halting"
-        exit 2
-    fi
-
-    tar xzf `cat VERSION`.tar.gz
-
-    if [ $? -ne 0 ] ; then
-        echo "Failed to extract the generated tgz - Halting"
-        exit 3
-    fi
+    make dist || die 2 "Failed to build dist - Halting"
 
-    cd `cat VERSION`
+    tar xzf `cat VERSION`.tar.gz || die 3 "Failed to extract the generated tgz - Halting"
 
-    if [ $? -ne 0 ] ; then
-        echo "Path `cat VERSION` cannot be found - Halting"
-        exit 4
-    fi
+    cd `cat VERSION` || die 4 "Path `cat VERSION` cannot be found - Halting"
 
     if [ "$build_mode" = "Debug" ]
     then
@@ -109,21 +68,11 @@ else
     cmake -Denable_lua=OFF -Denable_java=ON -Denable_tracing=ON -Denable_smpi=ON -Denable_compile_optimizations=OFF -Denable_compile_warnings=ON -Denable_lib_static=OFF -Denable_model-checking=OFF -Denable_latency_bound_tracking=OFF -Denable_gtnets=OFF -Denable_jedule=OFF -Denable_mallocators=OFF -Denable_memcheck=ON .
     fi
 
-    if [ $? -ne 0 ] ; then
-        echo "Failed to perform the Cmake for $build_mode - Halting"
-        exit 5
-    fi
-
-    make -j$NUMBER_OF_PROCESSORS
-
-    if [ $? -ne 0 ] ; then
-        echo "Build failure - Halting"
-        exit 6
-    fi
+    [ $? -eq 0 ] || die 5 "Failed to perform the Cmake for $build_mode - Halting"
 
+    make -j$NUMBER_OF_PROCESSORS || die 6 "Build failure - Halting"
 fi
 
-
 echo "running tests with $NUMBER_OF_PROCESSORS processors"
 
 ctest -T test --no-compress-output  --timeout 100 -j$NUMBER_OF_PROCESSORS || true
index 25721cc..2ad4cd3 100644 (file)
@@ -83,7 +83,7 @@ $ cmake .
 \subsubsection bindings_binding_java_use How to use Simgrid-java
 
 To execute the examples you need to add the path where you installed
-the generated `libSG_java` and `libsimgrid` libraries
+the generated `libsimgrid-java` and `libsimgrid` libraries
 into the `LD_LIBRARY_PATH`.
 
 Be careful on Mac, this variable is called `DYLD_LIBRARY_PATH` and not
@@ -93,7 +93,7 @@ Be careful on Mac, this variable is called `DYLD_LIBRARY_PATH` and not
 $ export SIMGRID_ROOT="$HOME/Install/simgrid/" # change it to the path where you installed the SimGrid library
 $ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$SIMGRID_ROOT/lib
 $ cd examples
-$ java -cp .:../simgrid.jar basic/BasicTest platform.xml basic/basicDeployment.xml
+$ java -classpath .:../simgrid.jar basic/BasicTest platform.xml basic/basicDeployment.xml
 ~~~~
 
 If you want to make these settings permanent even after a reboot, you
@@ -203,16 +203,16 @@ factory if your JVM support it, so you will just need to execute your
 simulation with the correct JVM. The selected context factory gets
 displayed automatically.
 ~~~~{.sh}
-export LD_LIBRARY_PATH=/path/to/simgrid.so:/path/to/libSG_java.so
+export LD_LIBRARY_PATH=/path/to/simgrid.so:/path/to/libsimgrid-java.so
 cd examples
-$PATH_TO_COROUTINE_JVM/java -cp .:../simgrid.jar masterslave.Masterslave masterslave/ masterslaveDeployment.xml platform.xml
+$PATH_TO_COROUTINE_JVM/java -classpath .:../simgrid.jar masterslave.Masterslave masterslave/ masterslaveDeployment.xml platform.xml
 ~~~~
 
 Note that you may have to adjust the "coro.stacksPerThread"
 configuration option to run large simulations. The default is 100 and
 you want to increase it to run more processes.
 ~~~~{.sh}
-$ $PATH_TO_COROUTINE_JVM/java -Dcoro.stacksPerThread=$STACKS_NUMBER -cp .:../simgrid.jar basic/BasicTest platform.xml basic/basicDeployment.xml
+$ $PATH_TO_COROUTINE_JVM/java -Dcoro.stacksPerThread=$STACKS_NUMBER -classpath .:../simgrid.jar basic/BasicTest platform.xml basic/basicDeployment.xml
 ~~~~
 
 If you reach the point where the creation of new simulated processes
index 91c6de2..727819e 100644 (file)
@@ -14,12 +14,6 @@ Please apply the following checklist before releasing.
     version numbers that were used.
   - The "make distcheck" target works (testing that every files needed
     to build and install are included in the archive)
-  - The URL provided to download in the examples of
-    doc/doxygen/install.doc is accurate. Note that updating the 
-    version number is not enough as it only impacts the name that will
-    be given to the downloaded file. The real identifier is the number
-    before, between /s. This makes this part very difficult to
-    generate automatically.
 - Tests
   - All tests pass on a reasonable amount of platforms (typically,
     everything on cdash)
index 0cf579c..e091538 100644 (file)
@@ -196,8 +196,8 @@ For a more "fancy" output, you can try:
 For a really fancy output, you should use [viva/triva][fn:1]:
 
 ~~~~{.sh}
-./masterworker0 platforms/platform.xml deployment0.xml --cfg=tracing:1 \
-    --cfg=tracing/uncategorized:1 --cfg=viva/uncategorized:uncat.plist
+./masterworker0 platforms/platform.xml deployment0.xml --cfg=tracing:yes \
+    --cfg=tracing/uncategorized:yes --cfg=viva/uncategorized:uncat.plist
 LANG=C ; viva simgrid.trace uncat.plist
 ~~~~
  
@@ -205,16 +205,16 @@ For a more classical Gantt-Chart visualization, you can produce a
 [Paje][fn:5] trace:
 
 ~~~~{.sh}
-./masterworker0 platforms/platform.xml deployment0.xml --cfg=tracing:1 \
-    --cfg=tracing/msg/process:1
+./masterworker0 platforms/platform.xml deployment0.xml --cfg=tracing:yes \
+    --cfg=tracing/msg/process:yes
 LANG=C ; Paje simgrid.trace
 ~~~~
 
 Alternatively, you can use [vite][fn:6].
 
 ~~~~{.sh}
-./masterworker0 platforms/platform.xml deployment0.xml --cfg=tracing:1 \
-    --cfg=tracing/msg/process:1 --cfg=tracing/basic:1
+./masterworker0 platforms/platform.xml deployment0.xml --cfg=tracing:yes \
+    --cfg=tracing/msg/process:yes --cfg=tracing/basic:yes
 vite simgrid.trace
 ~~~~
 
@@ -388,8 +388,8 @@ void MSG_task_set_category (msg_task_t task, const char *category);
 The outcome can then be visualized as follows:
 
 ~~~~{.sh}
-./masterworker3 platforms/platform.xml deployment3.xml --cfg=tracing:1\
-    --cfg=tracing/categorized:1 --cfg=viva/categorized:viva_cat.plist
+./masterworker3 platforms/platform.xml deployment3.xml --cfg=tracing:yes\
+    --cfg=tracing/categorized:yes --cfg=viva/categorized:viva_cat.plist
 LANG=C; viva simgrid.trace viva_cat.plist
 ~~~~
 
@@ -399,8 +399,8 @@ and there are several masters deployed on the platform. Using a
 Gantt-chart visualization may help:
 
 ~~~~{.sh}
-./masterworker3 platforms/platform.xml deployment3.xml --cfg=tracing:1 \
-    --cfg=tracing/msg/process:1
+./masterworker3 platforms/platform.xml deployment3.xml --cfg=tracing:yes \
+    --cfg=tracing/msg/process:yes
 LANG=C; Paje simgrid.trace
 ~~~~
 
index 1461798..9f5fa98 100644 (file)
@@ -239,7 +239,7 @@ initialization are done in the simulator.
 It is possible to specify a timing gap between consecutive emission on
 the same network card through the \b network/sender_gap item. This
 is still under investigation as of writting, and the default value is
-to wait 0 seconds between emissions (no gap applied).
+to wait 10 microseconds (1e-5 seconds) between emissions.
 
 \subsubsection options_model_network_asyncsend Simulating asyncronous send
 
@@ -447,7 +447,7 @@ you never used the tracing API.
 
 - Any SimGrid-based simulator (MSG, SimDag, SMPI, ...) and raw traces:
 \verbatim
---cfg=tracing:1 --cfg=tracing/uncategorized:1 --cfg=triva/uncategorized:uncat.plist
+--cfg=tracing:yes --cfg=tracing/uncategorized:yes --cfg=triva/uncategorized:uncat.plist
 \endverbatim
     The first parameter activates the tracing subsystem, the second
     tells it to trace host and link utilization (without any
@@ -456,7 +456,7 @@ you never used the tracing API.
 
 - MSG or SimDag-based simulator and categorized traces (you need to declare categories and classify your tasks according to them)
 \verbatim
---cfg=tracing:1 --cfg=tracing/categorized:1 --cfg=triva/categorized:cat.plist
+--cfg=tracing:yes --cfg=tracing/categorized:yes --cfg=triva/categorized:cat.plist
 \endverbatim
     The first parameter activates the tracing subsystem, the second
     tells it to trace host and link categorized utilization and the
@@ -468,7 +468,7 @@ you never used the tracing API.
 smpirun -trace ...
 \endverbatim
     The <i>-trace</i> parameter for the smpirun script runs the
-simulation with --cfg=tracing:1 and --cfg=tracing/smpi:1. Check the
+simulation with --cfg=tracing:yes and --cfg=tracing/smpi:yes. Check the
 smpirun's <i>-help</i> parameter for additional tracing options.
 
 Sometimes you might want to put additional information on the trace to
index 3b2a827..2c4a4d8 100644 (file)
@@ -108,7 +108,7 @@ tracing
   Safe switch. It activates (or deactivates) the tracing system.
   No other tracing options take effect if this one is not activated.
 \verbatim
---cfg=tracing:1
+--cfg=tracing:yes
 \endverbatim
 
 \li <b>\c
@@ -117,7 +117,7 @@ tracing/categorized
   It activates the categorized resource utilization tracing. It should
   be enabled if tracing categories are used by this simulator.
 \verbatim
---cfg=tracing/categorized:1
+--cfg=tracing/categorized:yes
 \endverbatim
 
 \li <b>\c
@@ -127,7 +127,7 @@ tracing/uncategorized
   this simulator do not use tracing categories and resource use have to be
   traced.
 \verbatim
---cfg=tracing/uncategorized:1
+--cfg=tracing/uncategorized:yes
 \endverbatim
 
 \li <b>\c
@@ -151,7 +151,7 @@ tracing/onelink_only
   This option let the user tell the tracing system to use only the routes
   that are composed with just one link.
 \verbatim
---cfg=tracing/onelink_only:1
+--cfg=tracing/onelink_only:yes
 \endverbatim
 
 \li <b>\c
@@ -162,7 +162,7 @@ tracing/smpi
   visualizations. Every MPI function (implemented by SMPI) is transformed in a
   state, and point-to-point communications can be analyzed with arrows.
 \verbatim
---cfg=tracing/smpi:1
+--cfg=tracing/smpi:yes
 \endverbatim
 
 \li <b>\c
@@ -171,7 +171,7 @@ tracing/smpi/group
   This option only has effect if this simulator is SMPI-based. The processes
   are grouped by the hosts where they were executed.
 \verbatim
---cfg=tracing/smpi/group:1
+--cfg=tracing/smpi/group:yes
 \endverbatim
 
 \li <b>\c
@@ -180,7 +180,7 @@ tracing/smpi/computing
   This option only has effect if this simulator is SMPI-based. The parts external
 to SMPI are also outputted to the trace. Provides better way to analyze the data automatically.
 \verbatim
---cfg=tracing/smpi/computing:1
+--cfg=tracing/smpi/computing:yes
 \endverbatim
 
 \li <b>\c
@@ -189,7 +189,7 @@ tracing/smpi/internals
   This option only has effect if this simulator is SMPI-based. Display internal communications
 happening during a collective MPI call.
 \verbatim
---cfg=tracing/smpi/internals:1
+--cfg=tracing/smpi/internals:yes
 \endverbatim
 
 \li <b>\c
@@ -198,7 +198,7 @@ tracing/smpi/display_sizes
   This option only has effect if this simulator is SMPI-based. Display the sizes of the messages
 exchanged in the trace, both in the links and on the states. For collective, size means the global size of data sent by the process in general.
 \verbatim
---cfg=tracing/smpi/display_sizes:1
+--cfg=tracing/smpi/display_sizes:yes
 \endverbatim
 
 \li <b>\c
@@ -208,7 +208,7 @@ tracing/msg/process
   behavior of all categorized MSG processes, grouping them by hosts. This option
   can be used to track process location if this simulator has process migration.
 \verbatim
---cfg=tracing/msg/process:1
+--cfg=tracing/msg/process:yes
 \endverbatim
 
 \li <b>\c
@@ -221,7 +221,7 @@ tracing/buffer
  impacted if this option is activated, but you are sure to get a trace
  file with events sorted.
 \verbatim
---cfg=tracing/buffer:1
+--cfg=tracing/buffer:yes
 \endverbatim
 
 \li <b>\c
@@ -234,7 +234,7 @@ option is activated, only the routes with one link are used to
 register the topology within an AS.  Routes among AS continue to be
 traced as usual.
 \verbatim
---cfg=tracing/onelink_only:1
+--cfg=tracing/onelink_only:yes
 \endverbatim
 
 \li <b>\c
@@ -244,7 +244,7 @@ Disable the destruction of containers at the end of simulation. This
 can be used with simulators that have a different notion of time
 (different from the simulated time).
 \verbatim
---cfg=tracing/disable_destroy:1
+--cfg=tracing/disable_destroy:yes
 \endverbatim
 
 \li <b>\c
@@ -255,7 +255,7 @@ Use this option if you are using one of these tools to visualize the simulation
 trace. Keep in mind that the trace might be incomplete, without all the
 information that would be registered otherwise.
 \verbatim
---cfg=tracing/basic:1
+--cfg=tracing/basic:yes
 \endverbatim
 
 \li <b>\c
@@ -307,8 +307,8 @@ with the following parameters (it will work with <b>any</b> Simgrid
 simulator):
 \verbatim
 ./your_simulator \
-          --cfg=tracing:1 \
-          --cfg=tracing/uncategorized:1 \
+          --cfg=tracing:yes \
+          --cfg=tracing/uncategorized:yes \
           --cfg=tracing/filename:mytracefile.trace \
           --cfg=viva/uncategorized:uncat.plist
 \endverbatim
@@ -322,8 +322,8 @@ using the <b>MSG_task_set_category (...)</b>
 recompiling, run your simulator with the following parameters:
 \verbatim
 ./your_simulator \
-          --cfg=tracing:1 \
-          --cfg=tracing/categorized:1 \
+          --cfg=tracing:yes \
+          --cfg=tracing/categorized:yes \
           --cfg=tracing/filename:mytracefile.trace \
           --cfg=viva/categorized:cat.plist
 \endverbatim
index 18d4de1..b150f79 100644 (file)
@@ -13,8 +13,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 6083344..72c3ab7 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 ! timeout 30
-$ java -cp ${classpath:=.} async/AsyncTest ${srcdir:=.}/platform.xml ${srcdir:=.}/async/asyncDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -classpath ${classpath:=.} async/AsyncTest ${srcdir:=.}/platform.xml ${srcdir:=.}/async/asyncDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  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'
index a245baa..ef9e1ab 100644 (file)
@@ -15,8 +15,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 1fa670c..8d74f58 100644 (file)
@@ -3,7 +3,7 @@
 ! output sort
 ! timeout 15
 
-$ java -cp ${classpath:=.} bittorrent/Bittorrent ${srcdir:=.}/platform.xml ${srcdir:=.}/bittorrent/bittorrent.xml
+$ java -classpath ${classpath:=.} bittorrent/Bittorrent ${srcdir:=.}/platform.xml ${srcdir:=.}/bittorrent/bittorrent.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [5000.832370] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Boivin:bittorrent.Peer:(2) 0.000000] [jmsg/INFO] Hi, I'm joining the network with id 2
index 90167e8..48b0439 100644 (file)
@@ -17,8 +17,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 2e1f474..dbc5d0a 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} chord/Chord ${srcdir:=.}/platform.xml ${srcdir:=.}/chord/chord.xml
+$ java -classpath ${classpath:=.} chord/Chord ${srcdir:=.}/platform.xml ${srcdir:=.}/chord/chord.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [652.540924] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Boivin:chord.Node:(7) 0.000000] [jmsg/INFO] Joining the ring with id 8 knowing node 1
index 9dbb0d1..555cc84 100644 (file)
@@ -12,8 +12,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 1f958c2..c8c05d1 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} cloud/Cloud ${srcdir:=.}/platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -classpath ${classpath:=.} cloud/Cloud ${srcdir:=.}/platform.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (10:Slave 8@Jean_Yves) Receiving on slave_8
 > [  0.000000] (11:Slave 9@Fafard) Receiving on slave_9
 > [  0.000000] (1:Master@Jacquelin) Launched 10 VMs
index 320b5c8..7ff9534 100644 (file)
@@ -12,8 +12,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 1e50976..02fc316 100644 (file)
@@ -3,7 +3,7 @@
 ! output sort
 ! timeout 15
 
-$ java -cp ${classpath:=.} commTime/CommTimeTest ${srcdir:=.}/platform.xml ${srcdir:=.}/commTime/commTimeDeployment.xml
+$ java -classpath ${classpath:=.} commTime/CommTimeTest ${srcdir:=.}/platform.xml ${srcdir:=.}/commTime/commTimeDeployment.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [7016.452828] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Bellemarre:commTime.Slave:(15) 0.000000] [jmsg/INFO] Receiving on 'slave_13'
index 767e4d6..3f77d90 100644 (file)
@@ -10,8 +10,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 8b3833d..e7807e8 100644 (file)
@@ -20,8 +20,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index c368309..6c232c0 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} kademlia/Kademlia ${srcdir:=.}/platform.xml ${srcdir:=.}/kademlia/kademlia.xml
+$ java -classpath ${classpath:=.} kademlia/Kademlia ${srcdir:=.}/platform.xml ${srcdir:=.}/kademlia/kademlia.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [900.000000] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Boivin:kademlia.Node:(2) 0.000000] [jmsg/INFO] Hi, I'm going to join the network with the id 1!
index 9b18ca4..4660c43 100644 (file)
@@ -12,8 +12,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index cf1bee4..8e05ea2 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} master_slave_bypass/MsBypass ${srcdir:=.}/master_slave_bypass/platform.xml
+$ java -classpath ${classpath:=.} master_slave_bypass/MsBypass ${srcdir:=.}/master_slave_bypass/platform.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [0.013010] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [alice:process2:(2) 0.000000] [jmsg/INFO] Slave Hello!
index 34e5b26..6dc692a 100644 (file)
@@ -12,8 +12,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index f22d582..78868a1 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} master_slave_kill/MsKill ${srcdir:=.}/master_slave_kill/platform.xml
+$ java -classpath ${classpath:=.} master_slave_kill/MsKill ${srcdir:=.}/master_slave_kill/platform.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [0.013010] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [alice:slave:(2) 0.000000] [jmsg/INFO] Slave Hello!
index c3083f6..8f83bfc 100644 (file)
@@ -13,8 +13,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 77a09b5..ee1d207 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} masterslave/Masterslave ${srcdir:=.}/platform.xml ${srcdir:=.}/masterslave/masterslaveDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -classpath ${classpath:=.} masterslave/Masterslave ${srcdir:=.}/platform.xml ${srcdir:=.}/masterslave/masterslaveDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (1:masterslave.Master@Jacquelin) Hello! Got 7 slaves and 5 tasks to process
 > [  0.000000] (2:masterslave.Forwarder@Jackson) Receiving on 'slave_0'
 > [  0.000000] (3:masterslave.Forwarder@Casavant) Receiving on 'slave_1'
index 72108f0..7bd6bb9 100644 (file)
@@ -11,8 +11,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 66bd4f5..131e9a3 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} migration/Migration ${srcdir:=.}/platform.xml ${srcdir:=.}/migration/migrationDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -classpath ${classpath:=.} migration/Migration ${srcdir:=.}/platform.xml ${srcdir:=.}/migration/migrationDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (1:migration.Emigrant@Jacquelin) I'll look for a new job on another machine where the grass is greener.
 > [  0.000000] (1:migration.Emigrant@Boivin) Yeah, found something to do
 > [  1.000000] (2:migration.Policeman@Boivin) Wait a bit before migrating the emigrant.
index 4593c8c..2019a30 100644 (file)
@@ -14,8 +14,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 202b00c..5446fff 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} mutualExclusion/MutexCentral ${srcdir:=.}/mutualExclusion/ring3.xml ${srcdir:=.}/mutualExclusion/mutex_centralized_deployment.xml
+$ java -classpath ${classpath:=.} mutualExclusion/MutexCentral ${srcdir:=.}/mutualExclusion/ring3.xml ${srcdir:=.}/mutualExclusion/mutex_centralized_deployment.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [0.007806] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Host 0:mutualExclusion.Coordinator:(1) 0.001301] [jmsg/INFO] Got a request from mutualExclusion.Node. Queue empty: grant it
index 8756c21..07e750a 100644 (file)
@@ -12,8 +12,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index a3db44a..ed35110 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} pingPong/PingPongTest ${srcdir:=.}/platform.xml ${srcdir:=.}/pingPong/pingPongDeployment.xml
+$ java -classpath ${classpath:=.} pingPong/PingPongTest ${srcdir:=.}/platform.xml ${srcdir:=.}/pingPong/pingPongDeployment.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [1.048882] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [Boivin:pingPong.Receiver:(2) 0.000000] [jmsg/INFO] hello!
index a93beec..202d0e5 100644 (file)
@@ -10,8 +10,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 8622897..1a0b8ad 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} priority/Priority ${srcdir:=.}/platform.xml ${srcdir:=.}/priority/priorityDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -classpath ${classpath:=.} priority/Priority ${srcdir:=.}/platform.xml ${srcdir:=.}/priority/priorityDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  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!
index 0a9716a..4030159 100644 (file)
@@ -11,8 +11,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 747b724..be741fd 100644 (file)
@@ -1,5 +1,5 @@
 #! tesh
-$ java -cp ${classpath:=.} startKillTime/StartKillTime ${srcdir:=.}/platform.xml ${srcdir:=.}/startKillTime/deployment_start_kill.xml
+$ java -classpath ${classpath:=.} startKillTime/StartKillTime ${srcdir:=.}/platform.xml ${srcdir:=.}/startKillTime/deployment_start_kill.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [Jacquelin:startKillTime.Master:(1) 0.000000] [jmsg/INFO] Hello!
 > [Boivin:startKillTime.Slave:(2) 1.000000] [jmsg/INFO] Hello!
index 0ac2dfd..42cec94 100644 (file)
@@ -11,8 +11,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 1bd9dea..897db64 100644 (file)
@@ -1,7 +1,7 @@
 #! tesh
 
 ! output sort
-$ java -cp ${classpath:=.} suspend/Suspend ${srcdir:=.}/platform.xml ${srcdir:=.}/suspend/suspendDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -classpath ${classpath:=.} suspend/Suspend ${srcdir:=.}/platform.xml ${srcdir:=.}/suspend/suspendDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (1:suspend.DreamMaster@Jacquelin) Let's create a lazy guy.
 > [  0.000000] (1:suspend.DreamMaster@Jacquelin) Let's wait a little bit...
 > [  0.000000] (2:Lazy@Jacquelin) Nobody's watching me ? Let's go to sleep.
index f035001..562f161 100644 (file)
@@ -12,8 +12,8 @@ if(enable_java)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR}
+    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
index 4d0e76f..9c7bd25 100644 (file)
@@ -2,11 +2,11 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} tracing/TracingTest ${srcdir:=.}/platform.xml ${srcdir:=.}/tracing/tracingPingPongDeployment.xml --cfg=tracing:1  --cfg=tracing/filename:simulation.trace --cfg=tracing/platform:1
+$ java -classpath ${classpath:=.} tracing/TracingTest ${srcdir:=.}/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. Coroutines could speed your simulation up.
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
+> [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 '1'
+> [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
index 6a23983..4b9dd45 100644 (file)
@@ -1,7 +1,7 @@
 # A little tesh file testing most MPI-related actions
 
-$ ../actions --cfg=tracing:1 --cfg=tracing/smpi:1 --log=surf_config.thresh:critical --cfg=network/model:SMPI platform.xml deploy_MPI_4.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to '1'
+$ ../actions --cfg=tracing:yes --cfg=tracing/smpi:yes --log=surf_config.thresh:critical --cfg=network/model:SMPI platform.xml deploy_MPI_4.xml
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.095453] [actions/INFO] Simulation time 0.095453
index 9e92363..ce2c4bd 100644 (file)
@@ -38,6 +38,8 @@ static int periodic_fix_fingers_delay = 120;
 static int periodic_check_predecessor_delay = 120;
 static int periodic_lookup_delay = 10;
 
+static const double sleep_delay = 4.9999;
+
 extern long int smx_total_comms;
 
 /*
@@ -293,11 +295,9 @@ int node(int argc, char *argv[])
   double next_check_predecessor_date = init_time + periodic_check_predecessor_delay;
   double next_lookup_date = init_time + periodic_lookup_delay;
 
-  #ifdef HAVE_MC
   int listen = 0;
   int no_op = 0;
   int sub_protocol = 0;
-  #endif
 
   xbt_assert(argc == 3 || argc == 5, "Wrong number of arguments for this node");
 
@@ -351,7 +351,6 @@ int node(int argc, char *argv[])
 
         // no task was received: make some periodic calls
 
-#ifdef HAVE_MC
         if(MC_is_active()){
           if(!MC_visited_reduction() && no_op){
               MC_cut();
@@ -367,7 +366,7 @@ int node(int argc, char *argv[])
               random_lookup(&node);
             listen = 1;
           }else{
-            MSG_process_sleep(5);
+            MSG_process_sleep(sleep_delay);
             if(!MC_visited_reduction())
               no_op = 1;
           }
@@ -386,27 +385,9 @@ int node(int argc, char *argv[])
             next_lookup_date = MSG_get_clock() + periodic_lookup_delay;
           }else {
             // nothing to do: sleep for a while
-            MSG_process_sleep(5);
+            MSG_process_sleep(sleep_delay);
           }
         }
-#else
-        if (MSG_get_clock() >= next_stabilize_date) {
-          stabilize(&node);
-          next_stabilize_date = MSG_get_clock() + periodic_stabilize_delay;
-        }else if (MSG_get_clock() >= next_fix_fingers_date) {
-          fix_fingers(&node);
-          next_fix_fingers_date = MSG_get_clock() + periodic_fix_fingers_delay;
-        }else if (MSG_get_clock() >= next_check_predecessor_date) {
-          check_predecessor(&node);
-          next_check_predecessor_date = MSG_get_clock() + periodic_check_predecessor_delay;
-        }else if (MSG_get_clock() >= next_lookup_date) {
-          random_lookup(&node);
-          next_lookup_date = MSG_get_clock() + periodic_lookup_delay;
-        }else {
-          // nothing to do: sleep for a while
-          MSG_process_sleep(5);
-        }
-#endif
 
       } else {
         // a transfer has occurred
@@ -428,6 +409,9 @@ int node(int argc, char *argv[])
     }
 
     if (node.comm_receive) {
+      /* handle last task if any */
+      if (MSG_comm_wait(node.comm_receive, 0) == MSG_OK)
+        task_free(task_received);
       MSG_comm_destroy(node.comm_receive);
       node.comm_receive = NULL;
     }
@@ -535,6 +519,8 @@ static void handle_task(node_t node, msg_task_t task) {
     MSG_task_dsend(task, task_data->answer_to, task_free);
     break;
 
+  default:
+    THROW_IMPOSSIBLE;
   }
 }
 
@@ -793,7 +779,6 @@ static int remote_get_predecessor(node_t node, int ask_to)
         stop = 1;
         MSG_comm_destroy(node->comm_receive);
         node->comm_receive = NULL;
-        task_free(task_sent);
       }
       else {
         msg_task_t task_received = MSG_comm_get_task(node->comm_receive);
index e2c44d9..96fdb8c 100644 (file)
@@ -21,404 +21,350 @@ $ $SG_TEST_EXENV ${bindir:=.}/chord$EXEEXT -nb_bits=6 ${srcdir:=.}/../msg_platfo
 > [  0.000000] (8:node@Jacquelin)   17  |   1 
 > [  0.000000] (8:node@Jacquelin)   33  |   1 
 > [  0.000000] (8:node@Jacquelin) Predecessor: -1
-> [  6.274448] (1:node@Gatien) My finger table:
-> [  6.274448] (1:node@Gatien) Start | Succ 
-> [  6.274448] (1:node@Gatien)   49  |   1 
-> [  6.274448] (1:node@Gatien)   50  |  48 
-> [  6.274448] (1:node@Gatien)   52  |  48 
-> [  6.274448] (1:node@Gatien)   56  |  48 
-> [  6.274448] (1:node@Gatien)    0  |  48 
-> [  6.274448] (1:node@Gatien)   16  |  48 
-> [  6.274448] (1:node@Gatien) Predecessor: -1
-> [ 10.888356] (2:node@McGee) My finger table:
-> [ 10.888356] (2:node@McGee) Start | Succ 
-> [ 10.888356] (2:node@McGee)   43  |   1 
-> [ 10.888356] (2:node@McGee)   44  |  42 
-> [ 10.888356] (2:node@McGee)   46  |  42 
-> [ 10.888356] (2:node@McGee)   50  |  42 
-> [ 10.888356] (2:node@McGee)   58  |  42 
-> [ 10.888356] (2:node@McGee)   10  |  42 
-> [ 10.888356] (2:node@McGee) Predecessor: -1
-> [ 18.043675] (3:node@iRMX) My finger table:
-> [ 18.043675] (3:node@iRMX) Start | Succ 
-> [ 18.043675] (3:node@iRMX)   39  |   1 
-> [ 18.043675] (3:node@iRMX)   40  |  38 
-> [ 18.043675] (3:node@iRMX)   42  |  38 
-> [ 18.043675] (3:node@iRMX)   46  |  38 
-> [ 18.043675] (3:node@iRMX)   54  |  38 
-> [ 18.043675] (3:node@iRMX)    6  |  38 
-> [ 18.043675] (3:node@iRMX) Predecessor: -1
-> [ 20.005344] (4:node@Geoff) My finger table:
-> [ 20.005344] (4:node@Geoff) Start | Succ 
-> [ 20.005344] (4:node@Geoff)   33  |   1 
-> [ 20.005344] (4:node@Geoff)   34  |  32 
-> [ 20.005344] (4:node@Geoff)   36  |  32 
-> [ 20.005344] (4:node@Geoff)   40  |  32 
-> [ 20.005344] (4:node@Geoff)   48  |  32 
-> [ 20.005344] (4:node@Geoff)    0  |  32 
-> [ 20.005344] (4:node@Geoff) Predecessor: -1
-> [ 26.812601] (5:node@TeX) My finger table:
-> [ 26.812601] (5:node@TeX) Start | Succ 
-> [ 26.812601] (5:node@TeX)   22  |   1 
-> [ 26.812601] (5:node@TeX)   23  |  21 
-> [ 26.812601] (5:node@TeX)   25  |  21 
-> [ 26.812601] (5:node@TeX)   29  |  21 
-> [ 26.812601] (5:node@TeX)   37  |  21 
-> [ 26.812601] (5:node@TeX)   53  |  21 
-> [ 26.812601] (5:node@TeX) Predecessor: -1
-> [ 30.925129] (6:node@Jean_Yves) My finger table:
-> [ 30.925129] (6:node@Jean_Yves) Start | Succ 
-> [ 30.925129] (6:node@Jean_Yves)   15  |   1 
-> [ 30.925129] (6:node@Jean_Yves)   16  |  14 
-> [ 30.925129] (6:node@Jean_Yves)   18  |  14 
-> [ 30.925129] (6:node@Jean_Yves)   22  |  14 
-> [ 30.925129] (6:node@Jean_Yves)   30  |  14 
-> [ 30.925129] (6:node@Jean_Yves)   46  |  14 
-> [ 30.925129] (6:node@Jean_Yves) Predecessor: -1
-> [ 36.048885] (7:node@Boivin) My finger table:
-> [ 36.048885] (7:node@Boivin) Start | Succ 
-> [ 36.048885] (7:node@Boivin)    9  |   1 
-> [ 36.048885] (7:node@Boivin)   10  |   8 
-> [ 36.048885] (7:node@Boivin)   12  |   8 
-> [ 36.048885] (7:node@Boivin)   16  |   8 
-> [ 36.048885] (7:node@Boivin)   24  |   8 
-> [ 36.048885] (7:node@Boivin)   40  |   8 
-> [ 36.048885] (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.274448] (8:node@Jacquelin) My finger table:
-> [ 81.274448] (8:node@Jacquelin) Start | Succ 
-> [ 81.274448] (8:node@Jacquelin)    2  |  42 
-> [ 81.274448] (8:node@Jacquelin)    3  |   1 
-> [ 81.274448] (8:node@Jacquelin)    5  |   1 
-> [ 81.274448] (8:node@Jacquelin)    9  |   1 
-> [ 81.274448] (8:node@Jacquelin)   17  |   1 
-> [ 81.274448] (8:node@Jacquelin)   33  |   1 
-> [ 81.274448] (8:node@Jacquelin) Predecessor: 48
-> [116.655198] (2:node@McGee) My finger table:
-> [116.655198] (2:node@McGee) Start | Succ 
-> [116.655198] (2:node@McGee)   43  |  48 
-> [116.655198] (2:node@McGee)   44  |  42 
-> [116.655198] (2:node@McGee)   46  |  42 
-> [116.655198] (2:node@McGee)   50  |  42 
-> [116.655198] (2:node@McGee)   58  |  42 
-> [116.655198] (2:node@McGee)   10  |  42 
-> [116.655198] (2:node@McGee) Predecessor: 1
-> [141.383330] (1:node@Gatien) My finger table:
-> [141.383330] (1:node@Gatien) Start | Succ 
-> [141.383330] (1:node@Gatien)   49  |   1 
-> [141.383330] (1:node@Gatien)   50  |  48 
-> [141.383330] (1:node@Gatien)   52  |  48 
-> [141.383330] (1:node@Gatien)   56  |  48 
-> [141.383330] (1:node@Gatien)    0  |  48 
-> [141.383330] (1:node@Gatien)   16  |  48 
-> [141.383330] (1:node@Gatien) Predecessor: 42
-> [193.730889] (2:node@McGee) My finger table:
-> [193.730889] (2:node@McGee) Start | Succ 
-> [193.730889] (2:node@McGee)   43  |  48 
-> [193.730889] (2:node@McGee)   44  |  42 
-> [193.730889] (2:node@McGee)   46  |  42 
-> [193.730889] (2:node@McGee)   50  |  42 
-> [193.730889] (2:node@McGee)   58  |  42 
-> [193.730889] (2:node@McGee)   10  |  42 
-> [193.730889] (2:node@McGee) Predecessor: 8
-> [242.028885] (1:node@Gatien) My finger table:
-> [242.028885] (1:node@Gatien) Start | Succ 
-> [242.028885] (1:node@Gatien)   49  |   1 
-> [242.028885] (1:node@Gatien)   50  |   1 
-> [242.028885] (1:node@Gatien)   52  |  48 
-> [242.028885] (1:node@Gatien)   56  |  48 
-> [242.028885] (1:node@Gatien)    0  |  48 
-> [242.028885] (1:node@Gatien)   16  |  48 
-> [242.028885] (1:node@Gatien) Predecessor: 42
-> [242.939649] (2:node@McGee) My finger table:
-> [242.939649] (2:node@McGee) Start | Succ 
-> [242.939649] (2:node@McGee)   43  |  48 
-> [242.939649] (2:node@McGee)   44  |  42 
-> [242.939649] (2:node@McGee)   46  |  42 
-> [242.939649] (2:node@McGee)   50  |  42 
-> [242.939649] (2:node@McGee)   58  |  42 
-> [242.939649] (2:node@McGee)   10  |  42 
-> [242.939649] (2:node@McGee) Predecessor: 38
-> [246.478479] (2:node@McGee) My finger table:
-> [246.478479] (2:node@McGee) Start | Succ 
-> [246.478479] (2:node@McGee)   43  |  48 
-> [246.478479] (2:node@McGee)   44  |  48 
-> [246.478479] (2:node@McGee)   46  |  42 
-> [246.478479] (2:node@McGee)   50  |  42 
-> [246.478479] (2:node@McGee)   58  |  42 
-> [246.478479] (2:node@McGee)   10  |  42 
-> [246.478479] (2:node@McGee) Predecessor: 38
-> [248.768494] (7:node@Boivin) My finger table:
-> [248.768494] (7:node@Boivin) Start | Succ 
-> [248.768494] (7:node@Boivin)    9  |  38 
-> [248.768494] (7:node@Boivin)   10  |  38 
-> [248.768494] (7:node@Boivin)   12  |   8 
-> [248.768494] (7:node@Boivin)   16  |   8 
-> [248.768494] (7:node@Boivin)   24  |   8 
-> [248.768494] (7:node@Boivin)   40  |   8 
-> [248.768494] (7:node@Boivin) Predecessor: -1
-> [255.578776] (4:node@Geoff) My finger table:
-> [255.578776] (4:node@Geoff) Start | Succ 
-> [255.578776] (4:node@Geoff)   33  |  42 
-> [255.578776] (4:node@Geoff)   34  |  42 
-> [255.578776] (4:node@Geoff)   36  |  32 
-> [255.578776] (4:node@Geoff)   40  |  32 
-> [255.578776] (4:node@Geoff)   48  |  32 
-> [255.578776] (4:node@Geoff)    0  |  32 
-> [255.578776] (4:node@Geoff) Predecessor: -1
-> [268.081369] (8:node@Jacquelin) My finger table:
-> [268.081369] (8:node@Jacquelin) Start | Succ 
-> [268.081369] (8:node@Jacquelin)    2  |   8 
-> [268.081369] (8:node@Jacquelin)    3  |   8 
-> [268.081369] (8:node@Jacquelin)    5  |   1 
-> [268.081369] (8:node@Jacquelin)    9  |   1 
-> [268.081369] (8:node@Jacquelin)   17  |   1 
-> [268.081369] (8:node@Jacquelin)   33  |   1 
-> [268.081369] (8:node@Jacquelin) Predecessor: 48
-> [269.130254] (7:node@Boivin) My finger table:
-> [269.130254] (7:node@Boivin) Start | Succ 
-> [269.130254] (7:node@Boivin)    9  |  38 
-> [269.130254] (7:node@Boivin)   10  |  38 
-> [269.130254] (7:node@Boivin)   12  |   8 
-> [269.130254] (7:node@Boivin)   16  |   8 
-> [269.130254] (7:node@Boivin)   24  |   8 
-> [269.130254] (7:node@Boivin)   40  |   8 
-> [269.130254] (7:node@Boivin) Predecessor: 1
-> [272.405875] (3:node@iRMX) My finger table:
-> [272.405875] (3:node@iRMX) Start | Succ 
-> [272.405875] (3:node@iRMX)   39  |  42 
-> [272.405875] (3:node@iRMX)   40  |  42 
-> [272.405875] (3:node@iRMX)   42  |  38 
-> [272.405875] (3:node@iRMX)   46  |  38 
-> [272.405875] (3:node@iRMX)   54  |  38 
-> [272.405875] (3:node@iRMX)    6  |  38 
-> [272.405875] (3:node@iRMX) Predecessor: -1
-> [284.571172] (5:node@TeX) My finger table:
-> [284.571172] (5:node@TeX) Start | Succ 
-> [284.571172] (5:node@TeX)   22  |  38 
-> [284.571172] (5:node@TeX)   23  |  38 
-> [284.571172] (5:node@TeX)   25  |  21 
-> [284.571172] (5:node@TeX)   29  |  21 
-> [284.571172] (5:node@TeX)   37  |  21 
-> [284.571172] (5:node@TeX)   53  |  21 
-> [284.571172] (5:node@TeX) Predecessor: -1
-> [289.289425] (3:node@iRMX) My finger table:
-> [289.289425] (3:node@iRMX) Start | Succ 
-> [289.289425] (3:node@iRMX)   39  |  42 
-> [289.289425] (3:node@iRMX)   40  |  42 
-> [289.289425] (3:node@iRMX)   42  |  38 
-> [289.289425] (3:node@iRMX)   46  |  38 
-> [289.289425] (3:node@iRMX)   54  |  38 
-> [289.289425] (3:node@iRMX)    6  |  38 
-> [289.289425] (3:node@iRMX) Predecessor: 21
-> [305.097098] (6:node@Jean_Yves) My finger table:
-> [305.097098] (6:node@Jean_Yves) Start | Succ 
-> [305.097098] (6:node@Jean_Yves)   15  |  21 
-> [305.097098] (6:node@Jean_Yves)   16  |  21 
-> [305.097098] (6:node@Jean_Yves)   18  |  14 
-> [305.097098] (6:node@Jean_Yves)   22  |  14 
-> [305.097098] (6:node@Jean_Yves)   30  |  14 
-> [305.097098] (6:node@Jean_Yves)   46  |  14 
-> [305.097098] (6:node@Jean_Yves) Predecessor: -1
-> [313.745063] (3:node@iRMX) My finger table:
-> [313.745063] (3:node@iRMX) Start | Succ 
-> [313.745063] (3:node@iRMX)   39  |  42 
-> [313.745063] (3:node@iRMX)   40  |  42 
-> [313.745063] (3:node@iRMX)   42  |  38 
-> [313.745063] (3:node@iRMX)   46  |  38 
-> [313.745063] (3:node@iRMX)   54  |  38 
-> [313.745063] (3:node@iRMX)    6  |  38 
-> [313.745063] (3:node@iRMX) Predecessor: 32
-> [338.951991] (5:node@TeX) My finger table:
-> [338.951991] (5:node@TeX) Start | Succ 
-> [338.951991] (5:node@TeX)   22  |  32 
-> [338.951991] (5:node@TeX)   23  |  38 
-> [338.951991] (5:node@TeX)   25  |  21 
-> [338.951991] (5:node@TeX)   29  |  21 
-> [338.951991] (5:node@TeX)   37  |  21 
-> [338.951991] (5:node@TeX)   53  |  21 
-> [338.951991] (5:node@TeX) Predecessor: 14
-> [359.463119] (4:node@Geoff) My finger table:
-> [359.463119] (4:node@Geoff) Start | Succ 
-> [359.463119] (4:node@Geoff)   33  |  38 
-> [359.463119] (4:node@Geoff)   34  |  42 
-> [359.463119] (4:node@Geoff)   36  |  32 
-> [359.463119] (4:node@Geoff)   40  |  32 
-> [359.463119] (4:node@Geoff)   48  |  32 
-> [359.463119] (4:node@Geoff)    0  |  32 
-> [359.463119] (4:node@Geoff) Predecessor: 21
-> [365.649491] (1:node@Gatien) My finger table:
-> [365.649491] (1:node@Gatien) Start | Succ 
-> [365.649491] (1:node@Gatien)   49  |   1 
-> [365.649491] (1:node@Gatien)   50  |   1 
-> [365.649491] (1:node@Gatien)   52  |   1 
-> [365.649491] (1:node@Gatien)   56  |  48 
-> [365.649491] (1:node@Gatien)    0  |  48 
-> [365.649491] (1:node@Gatien)   16  |  48 
-> [365.649491] (1:node@Gatien) Predecessor: 42
-> [367.870511] (2:node@McGee) My finger table:
-> [367.870511] (2:node@McGee) Start | Succ 
-> [367.870511] (2:node@McGee)   43  |  48 
-> [367.870511] (2:node@McGee)   44  |  48 
-> [367.870511] (2:node@McGee)   46  |  48 
-> [367.870511] (2:node@McGee)   50  |  42 
-> [367.870511] (2:node@McGee)   58  |  42 
-> [367.870511] (2:node@McGee)   10  |  42 
-> [367.870511] (2:node@McGee) Predecessor: 38
-> [371.550204] (7:node@Boivin) My finger table:
-> [371.550204] (7:node@Boivin) Start | Succ 
-> [371.550204] (7:node@Boivin)    9  |  21 
-> [371.550204] (7:node@Boivin)   10  |  38 
-> [371.550204] (7:node@Boivin)   12  |  21 
-> [371.550204] (7:node@Boivin)   16  |   8 
-> [371.550204] (7:node@Boivin)   24  |   8 
-> [371.550204] (7:node@Boivin)   40  |   8 
-> [371.550204] (7:node@Boivin) Predecessor: 1
-> [388.564124] (4:node@Geoff) My finger table:
-> [388.564124] (4:node@Geoff) Start | Succ 
-> [388.564124] (4:node@Geoff)   33  |  38 
-> [388.564124] (4:node@Geoff)   34  |  42 
-> [388.564124] (4:node@Geoff)   36  |  38 
-> [388.564124] (4:node@Geoff)   40  |  32 
-> [388.564124] (4:node@Geoff)   48  |  32 
-> [388.564124] (4:node@Geoff)    0  |  32 
-> [388.564124] (4:node@Geoff) Predecessor: 21
-> [389.021710] (8:node@Jacquelin) My finger table:
-> [389.021710] (8:node@Jacquelin) Start | Succ 
-> [389.021710] (8:node@Jacquelin)    2  |   8 
-> [389.021710] (8:node@Jacquelin)    3  |   8 
-> [389.021710] (8:node@Jacquelin)    5  |   8 
-> [389.021710] (8:node@Jacquelin)    9  |   1 
-> [389.021710] (8:node@Jacquelin)   17  |   1 
-> [389.021710] (8:node@Jacquelin)   33  |   1 
-> [389.021710] (8:node@Jacquelin) Predecessor: 48
-> [393.088734] (3:node@iRMX) My finger table:
-> [393.088734] (3:node@iRMX) Start | Succ 
-> [393.088734] (3:node@iRMX)   39  |  42 
-> [393.088734] (3:node@iRMX)   40  |  42 
-> [393.088734] (3:node@iRMX)   42  |  42 
-> [393.088734] (3:node@iRMX)   46  |  38 
-> [393.088734] (3:node@iRMX)   54  |  38 
-> [393.088734] (3:node@iRMX)    6  |  38 
-> [393.088734] (3:node@iRMX) Predecessor: 32
-> [412.961674] (5:node@TeX) My finger table:
-> [412.961674] (5:node@TeX) Start | Succ 
-> [412.961674] (5:node@TeX)   22  |  32 
-> [412.961674] (5:node@TeX)   23  |  38 
-> [412.961674] (5:node@TeX)   25  |  32 
-> [412.961674] (5:node@TeX)   29  |  21 
-> [412.961674] (5:node@TeX)   37  |  21 
-> [412.961674] (5:node@TeX)   53  |  21 
-> [412.961674] (5:node@TeX) Predecessor: 14
-> [434.596478] (6:node@Jean_Yves) My finger table:
-> [434.596478] (6:node@Jean_Yves) Start | Succ 
-> [434.596478] (6:node@Jean_Yves)   15  |  21 
-> [434.596478] (6:node@Jean_Yves)   16  |  21 
-> [434.596478] (6:node@Jean_Yves)   18  |  14 
-> [434.596478] (6:node@Jean_Yves)   22  |  14 
-> [434.596478] (6:node@Jean_Yves)   30  |  14 
-> [434.596478] (6:node@Jean_Yves)   46  |  14 
-> [434.596478] (6:node@Jean_Yves) Predecessor: 8
-> [443.806924] (6:node@Jean_Yves) My finger table:
-> [443.806924] (6:node@Jean_Yves) Start | Succ 
-> [443.806924] (6:node@Jean_Yves)   15  |  21 
-> [443.806924] (6:node@Jean_Yves)   16  |  21 
-> [443.806924] (6:node@Jean_Yves)   18  |  21 
-> [443.806924] (6:node@Jean_Yves)   22  |  14 
-> [443.806924] (6:node@Jean_Yves)   30  |  14 
-> [443.806924] (6:node@Jean_Yves)   46  |  14 
-> [443.806924] (6:node@Jean_Yves) Predecessor: 8
-> [488.763595] (1:node@Gatien) My finger table:
-> [488.763595] (1:node@Gatien) Start | Succ 
-> [488.763595] (1:node@Gatien)   49  |   1 
-> [488.763595] (1:node@Gatien)   50  |   1 
-> [488.763595] (1:node@Gatien)   52  |   1 
-> [488.763595] (1:node@Gatien)   56  |   1 
-> [488.763595] (1:node@Gatien)    0  |  48 
-> [488.763595] (1:node@Gatien)   16  |  48 
-> [488.763595] (1:node@Gatien) Predecessor: 42
-> [502.910439] (2:node@McGee) My finger table:
-> [502.910439] (2:node@McGee) Start | Succ 
-> [502.910439] (2:node@McGee)   43  |  48 
-> [502.910439] (2:node@McGee)   44  |  48 
-> [502.910439] (2:node@McGee)   46  |  48 
-> [502.910439] (2:node@McGee)   50  |   1 
-> [502.910439] (2:node@McGee)   58  |  42 
-> [502.910439] (2:node@McGee)   10  |  42 
-> [502.910439] (2:node@McGee) Predecessor: 38
-> [511.133077] (8:node@Jacquelin) My finger table:
-> [511.133077] (8:node@Jacquelin) Start | Succ 
-> [511.133077] (8:node@Jacquelin)    2  |   8 
-> [511.133077] (8:node@Jacquelin)    3  |   8 
-> [511.133077] (8:node@Jacquelin)    5  |   8 
-> [511.133077] (8:node@Jacquelin)    9  |  14 
-> [511.133077] (8:node@Jacquelin)   17  |   1 
-> [511.133077] (8:node@Jacquelin)   33  |   1 
-> [511.133077] (8:node@Jacquelin) Predecessor: 48
-> [528.169747] (7:node@Boivin) My finger table:
-> [528.169747] (7:node@Boivin) Start | Succ 
-> [528.169747] (7:node@Boivin)    9  |  14 
-> [528.169747] (7:node@Boivin)   10  |  38 
-> [528.169747] (7:node@Boivin)   12  |  21 
-> [528.169747] (7:node@Boivin)   16  |  21 
-> [528.169747] (7:node@Boivin)   24  |   8 
-> [528.169747] (7:node@Boivin)   40  |   8 
-> [528.169747] (7:node@Boivin) Predecessor: 1
-> [538.778175] (3:node@iRMX) My finger table:
-> [538.778175] (3:node@iRMX) Start | Succ 
-> [538.778175] (3:node@iRMX)   39  |  42 
-> [538.778175] (3:node@iRMX)   40  |  42 
-> [538.778175] (3:node@iRMX)   42  |  42 
-> [538.778175] (3:node@iRMX)   46  |  48 
-> [538.778175] (3:node@iRMX)   54  |  38 
-> [538.778175] (3:node@iRMX)    6  |  38 
-> [538.778175] (3:node@iRMX) Predecessor: 32
-> [561.853791] (5:node@TeX) My finger table:
-> [561.853791] (5:node@TeX) Start | Succ 
-> [561.853791] (5:node@TeX)   22  |  32 
-> [561.853791] (5:node@TeX)   23  |  38 
-> [561.853791] (5:node@TeX)   25  |  32 
-> [561.853791] (5:node@TeX)   29  |  32 
-> [561.853791] (5:node@TeX)   37  |  21 
-> [561.853791] (5:node@TeX)   53  |  21 
-> [561.853791] (5:node@TeX) Predecessor: 14
-> [564.892126] (4:node@Geoff) My finger table:
-> [564.892126] (4:node@Geoff) Start | Succ 
-> [564.892126] (4:node@Geoff)   33  |  38 
-> [564.892126] (4:node@Geoff)   34  |  42 
-> [564.892126] (4:node@Geoff)   36  |  38 
-> [564.892126] (4:node@Geoff)   40  |  42 
-> [564.892126] (4:node@Geoff)   48  |  32 
-> [564.892126] (4:node@Geoff)    0  |  32 
-> [564.892126] (4:node@Geoff) Predecessor: 21
-> [580.440450] (6:node@Jean_Yves) My finger table:
-> [580.440450] (6:node@Jean_Yves) Start | Succ 
-> [580.440450] (6:node@Jean_Yves)   15  |  21 
-> [580.440450] (6:node@Jean_Yves)   16  |  21 
-> [580.440450] (6:node@Jean_Yves)   18  |  21 
-> [580.440450] (6:node@Jean_Yves)   22  |  32 
-> [580.440450] (6:node@Jean_Yves)   30  |  14 
-> [580.440450] (6:node@Jean_Yves)   46  |  14 
-> [580.440450] (6:node@Jean_Yves) Predecessor: 8
-> [805.312574] (0:@) Messages created: 789
-> [805.312574] (0:@) Simulated time: 805.313
+> [  6.274348] (1:node@Gatien) My finger table:
+> [  6.274348] (1:node@Gatien) Start | Succ 
+> [  6.274348] (1:node@Gatien)   49  |   1 
+> [  6.274348] (1:node@Gatien)   50  |  48 
+> [  6.274348] (1:node@Gatien)   52  |  48 
+> [  6.274348] (1:node@Gatien)   56  |  48 
+> [  6.274348] (1:node@Gatien)    0  |  48 
+> [  6.274348] (1:node@Gatien)   16  |  48 
+> [  6.274348] (1:node@Gatien) Predecessor: -1
+> [ 10.888156] (2:node@McGee) My finger table:
+> [ 10.888156] (2:node@McGee) Start | Succ 
+> [ 10.888156] (2:node@McGee)   43  |   1 
+> [ 10.888156] (2:node@McGee)   44  |  42 
+> [ 10.888156] (2:node@McGee)   46  |  42 
+> [ 10.888156] (2:node@McGee)   50  |  42 
+> [ 10.888156] (2:node@McGee)   58  |  42 
+> [ 10.888156] (2:node@McGee)   10  |  42 
+> [ 10.888156] (2:node@McGee) Predecessor: -1
+> [ 18.043375] (3:node@iRMX) My finger table:
+> [ 18.043375] (3:node@iRMX) Start | Succ 
+> [ 18.043375] (3:node@iRMX)   39  |   1 
+> [ 18.043375] (3:node@iRMX)   40  |  38 
+> [ 18.043375] (3:node@iRMX)   42  |  38 
+> [ 18.043375] (3:node@iRMX)   46  |  38 
+> [ 18.043375] (3:node@iRMX)   54  |  38 
+> [ 18.043375] (3:node@iRMX)    6  |  38 
+> [ 18.043375] (3:node@iRMX) Predecessor: -1
+> [ 20.004944] (4:node@Geoff) My finger table:
+> [ 20.004944] (4:node@Geoff) Start | Succ 
+> [ 20.004944] (4:node@Geoff)   33  |   1 
+> [ 20.004944] (4:node@Geoff)   34  |  32 
+> [ 20.004944] (4:node@Geoff)   36  |  32 
+> [ 20.004944] (4:node@Geoff)   40  |  32 
+> [ 20.004944] (4:node@Geoff)   48  |  32 
+> [ 20.004944] (4:node@Geoff)    0  |  32 
+> [ 20.004944] (4:node@Geoff) Predecessor: -1
+> [ 26.812101] (5:node@TeX) My finger table:
+> [ 26.812101] (5:node@TeX) Start | Succ 
+> [ 26.812101] (5:node@TeX)   22  |   1 
+> [ 26.812101] (5:node@TeX)   23  |  21 
+> [ 26.812101] (5:node@TeX)   25  |  21 
+> [ 26.812101] (5:node@TeX)   29  |  21 
+> [ 26.812101] (5:node@TeX)   37  |  21 
+> [ 26.812101] (5:node@TeX)   53  |  21 
+> [ 26.812101] (5:node@TeX) Predecessor: -1
+> [ 30.924529] (6:node@Jean_Yves) My finger table:
+> [ 30.924529] (6:node@Jean_Yves) Start | Succ 
+> [ 30.924529] (6:node@Jean_Yves)   15  |   1 
+> [ 30.924529] (6:node@Jean_Yves)   16  |  14 
+> [ 30.924529] (6:node@Jean_Yves)   18  |  14 
+> [ 30.924529] (6:node@Jean_Yves)   22  |  14 
+> [ 30.924529] (6:node@Jean_Yves)   30  |  14 
+> [ 30.924529] (6:node@Jean_Yves)   46  |  14 
+> [ 30.924529] (6:node@Jean_Yves) Predecessor: -1
+> [ 36.048185] (7:node@Boivin) My finger table:
+> [ 36.048185] (7:node@Boivin) Start | Succ 
+> [ 36.048185] (7:node@Boivin)    9  |   1 
+> [ 36.048185] (7:node@Boivin)   10  |   8 
+> [ 36.048185] (7:node@Boivin)   12  |   8 
+> [ 36.048185] (7:node@Boivin)   16  |   8 
+> [ 36.048185] (7:node@Boivin)   24  |   8 
+> [ 36.048185] (7:node@Boivin)   40  |   8 
+> [ 36.048185] (7:node@Boivin) Predecessor: -1
+> [ 74.998500] (8:node@Jacquelin) My finger table:
+> [ 74.998500] (8:node@Jacquelin) Start | Succ 
+> [ 74.998500] (8:node@Jacquelin)    2  |   1 
+> [ 74.998500] (8:node@Jacquelin)    3  |   1 
+> [ 74.998500] (8:node@Jacquelin)    5  |   1 
+> [ 74.998500] (8:node@Jacquelin)    9  |   1 
+> [ 74.998500] (8:node@Jacquelin)   17  |   1 
+> [ 74.998500] (8:node@Jacquelin)   33  |   1 
+> [ 74.998500] (8:node@Jacquelin) Predecessor: 32
+> [ 75.886856] (8:node@Jacquelin) My finger table:
+> [ 75.886856] (8:node@Jacquelin) Start | Succ 
+> [ 75.886856] (8:node@Jacquelin)    2  |  32 
+> [ 75.886856] (8:node@Jacquelin)    3  |   1 
+> [ 75.886856] (8:node@Jacquelin)    5  |   1 
+> [ 75.886856] (8:node@Jacquelin)    9  |   1 
+> [ 75.886856] (8:node@Jacquelin)   17  |   1 
+> [ 75.886856] (8:node@Jacquelin)   33  |   1 
+> [ 75.886856] (8:node@Jacquelin) Predecessor: 42
+> [ 77.161304] (8:node@Jacquelin) My finger table:
+> [ 77.161304] (8:node@Jacquelin) Start | Succ 
+> [ 77.161304] (8:node@Jacquelin)    2  |  32 
+> [ 77.161304] (8:node@Jacquelin)    3  |   1 
+> [ 77.161304] (8:node@Jacquelin)    5  |   1 
+> [ 77.161304] (8:node@Jacquelin)    9  |   1 
+> [ 77.161304] (8:node@Jacquelin)   17  |   1 
+> [ 77.161304] (8:node@Jacquelin)   33  |   1 
+> [ 77.161304] (8:node@Jacquelin) Predecessor: 48
+> [102.428549] (4:node@Geoff) My finger table:
+> [102.428549] (4:node@Geoff) Start | Succ 
+> [102.428549] (4:node@Geoff)   33  |  48 
+> [102.428549] (4:node@Geoff)   34  |  32 
+> [102.428549] (4:node@Geoff)   36  |  32 
+> [102.428549] (4:node@Geoff)   40  |  32 
+> [102.428549] (4:node@Geoff)   48  |  32 
+> [102.428549] (4:node@Geoff)    0  |  32 
+> [102.428549] (4:node@Geoff) Predecessor: 1
+> [128.446143] (1:node@Gatien) My finger table:
+> [128.446143] (1:node@Gatien) Start | Succ 
+> [128.446143] (1:node@Gatien)   49  |   1 
+> [128.446143] (1:node@Gatien)   50  |  48 
+> [128.446143] (1:node@Gatien)   52  |  48 
+> [128.446143] (1:node@Gatien)   56  |  48 
+> [128.446143] (1:node@Gatien)    0  |  48 
+> [128.446143] (1:node@Gatien)   16  |  48 
+> [128.446143] (1:node@Gatien) Predecessor: 32
+> [138.445943] (1:node@Gatien) My finger table:
+> [138.445943] (1:node@Gatien) Start | Succ 
+> [138.445943] (1:node@Gatien)   49  |   1 
+> [138.445943] (1:node@Gatien)   50  |  48 
+> [138.445943] (1:node@Gatien)   52  |  48 
+> [138.445943] (1:node@Gatien)   56  |  48 
+> [138.445943] (1:node@Gatien)    0  |  48 
+> [138.445943] (1:node@Gatien)   16  |  48 
+> [138.445943] (1:node@Gatien) Predecessor: 42
+> [211.728399] (2:node@McGee) My finger table:
+> [211.728399] (2:node@McGee) Start | Succ 
+> [211.728399] (2:node@McGee)   43  |  48 
+> [211.728399] (2:node@McGee)   44  |  42 
+> [211.728399] (2:node@McGee)   46  |  42 
+> [211.728399] (2:node@McGee)   50  |  42 
+> [211.728399] (2:node@McGee)   58  |  42 
+> [211.728399] (2:node@McGee)   10  |  42 
+> [211.728399] (2:node@McGee) Predecessor: 38
+> [248.221969] (1:node@Gatien) My finger table:
+> [248.221969] (1:node@Gatien) Start | Succ 
+> [248.221969] (1:node@Gatien)   49  |   1 
+> [248.221969] (1:node@Gatien)   50  |   1 
+> [248.221969] (1:node@Gatien)   52  |  48 
+> [248.221969] (1:node@Gatien)   56  |  48 
+> [248.221969] (1:node@Gatien)    0  |  48 
+> [248.221969] (1:node@Gatien)   16  |  48 
+> [248.221969] (1:node@Gatien) Predecessor: 42
+> [251.135492] (7:node@Boivin) My finger table:
+> [251.135492] (7:node@Boivin) Start | Succ 
+> [251.135492] (7:node@Boivin)    9  |  38 
+> [251.135492] (7:node@Boivin)   10  |  38 
+> [251.135492] (7:node@Boivin)   12  |   8 
+> [251.135492] (7:node@Boivin)   16  |   8 
+> [251.135492] (7:node@Boivin)   24  |   8 
+> [251.135492] (7:node@Boivin)   40  |   8 
+> [251.135492] (7:node@Boivin) Predecessor: -1
+> [259.451660] (2:node@McGee) My finger table:
+> [259.451660] (2:node@McGee) Start | Succ 
+> [259.451660] (2:node@McGee)   43  |  48 
+> [259.451660] (2:node@McGee)   44  |  48 
+> [259.451660] (2:node@McGee)   46  |  42 
+> [259.451660] (2:node@McGee)   50  |  42 
+> [259.451660] (2:node@McGee)   58  |  42 
+> [259.451660] (2:node@McGee)   10  |  42 
+> [259.451660] (2:node@McGee) Predecessor: 38
+> [309.452289] (4:node@Geoff) My finger table:
+> [309.452289] (4:node@Geoff) Start | Succ 
+> [309.452289] (4:node@Geoff)   33  |  38 
+> [309.452289] (4:node@Geoff)   34  |  38 
+> [309.452289] (4:node@Geoff)   36  |  32 
+> [309.452289] (4:node@Geoff)   40  |  32 
+> [309.452289] (4:node@Geoff)   48  |  32 
+> [309.452289] (4:node@Geoff)    0  |  32 
+> [309.452289] (4:node@Geoff) Predecessor: 1
+> [309.457634] (8:node@Jacquelin) My finger table:
+> [309.457634] (8:node@Jacquelin) Start | Succ 
+> [309.457634] (8:node@Jacquelin)    2  |  32 
+> [309.457634] (8:node@Jacquelin)    3  |  32 
+> [309.457634] (8:node@Jacquelin)    5  |   1 
+> [309.457634] (8:node@Jacquelin)    9  |   1 
+> [309.457634] (8:node@Jacquelin)   17  |   1 
+> [309.457634] (8:node@Jacquelin)   33  |   1 
+> [309.457634] (8:node@Jacquelin) Predecessor: 48
+> [323.904210] (6:node@Jean_Yves) My finger table:
+> [323.904210] (6:node@Jean_Yves) Start | Succ 
+> [323.904210] (6:node@Jean_Yves)   15  |  38 
+> [323.904210] (6:node@Jean_Yves)   16  |  38 
+> [323.904210] (6:node@Jean_Yves)   18  |  14 
+> [323.904210] (6:node@Jean_Yves)   22  |  14 
+> [323.904210] (6:node@Jean_Yves)   30  |  14 
+> [323.904210] (6:node@Jean_Yves)   46  |  14 
+> [323.904210] (6:node@Jean_Yves) Predecessor: -1
+> [325.353212] (3:node@iRMX) My finger table:
+> [325.353212] (3:node@iRMX) Start | Succ 
+> [325.353212] (3:node@iRMX)   39  |  42 
+> [325.353212] (3:node@iRMX)   40  |  38 
+> [325.353212] (3:node@iRMX)   42  |  38 
+> [325.353212] (3:node@iRMX)   46  |  38 
+> [325.353212] (3:node@iRMX)   54  |  38 
+> [325.353212] (3:node@iRMX)    6  |  38 
+> [325.353212] (3:node@iRMX) Predecessor: 32
+> [330.576758] (3:node@iRMX) My finger table:
+> [330.576758] (3:node@iRMX) Start | Succ 
+> [330.576758] (3:node@iRMX)   39  |  42 
+> [330.576758] (3:node@iRMX)   40  |  42 
+> [330.576758] (3:node@iRMX)   42  |  38 
+> [330.576758] (3:node@iRMX)   46  |  38 
+> [330.576758] (3:node@iRMX)   54  |  38 
+> [330.576758] (3:node@iRMX)    6  |  38 
+> [330.576758] (3:node@iRMX) Predecessor: 32
+> [352.615271] (5:node@TeX) My finger table:
+> [352.615271] (5:node@TeX) Start | Succ 
+> [352.615271] (5:node@TeX)   22  |  32 
+> [352.615271] (5:node@TeX)   23  |  32 
+> [352.615271] (5:node@TeX)   25  |  21 
+> [352.615271] (5:node@TeX)   29  |  21 
+> [352.615271] (5:node@TeX)   37  |  21 
+> [352.615271] (5:node@TeX)   53  |  21 
+> [352.615271] (5:node@TeX) Predecessor: -1
+> [369.575209] (1:node@Gatien) My finger table:
+> [369.575209] (1:node@Gatien) Start | Succ 
+> [369.575209] (1:node@Gatien)   49  |   1 
+> [369.575209] (1:node@Gatien)   50  |   1 
+> [369.575209] (1:node@Gatien)   52  |   1 
+> [369.575209] (1:node@Gatien)   56  |  48 
+> [369.575209] (1:node@Gatien)    0  |  48 
+> [369.575209] (1:node@Gatien)   16  |  48 
+> [369.575209] (1:node@Gatien) Predecessor: 42
+> [382.882683] (2:node@McGee) My finger table:
+> [382.882683] (2:node@McGee) Start | Succ 
+> [382.882683] (2:node@McGee)   43  |  48 
+> [382.882683] (2:node@McGee)   44  |  48 
+> [382.882683] (2:node@McGee)   46  |  48 
+> [382.882683] (2:node@McGee)   50  |  42 
+> [382.882683] (2:node@McGee)   58  |  42 
+> [382.882683] (2:node@McGee)   10  |  42 
+> [382.882683] (2:node@McGee) Predecessor: 38
+> [384.345471] (4:node@Geoff) My finger table:
+> [384.345471] (4:node@Geoff) Start | Succ 
+> [384.345471] (4:node@Geoff)   33  |  38 
+> [384.345471] (4:node@Geoff)   34  |  38 
+> [384.345471] (4:node@Geoff)   36  |  32 
+> [384.345471] (4:node@Geoff)   40  |  32 
+> [384.345471] (4:node@Geoff)   48  |  32 
+> [384.345471] (4:node@Geoff)    0  |  32 
+> [384.345471] (4:node@Geoff) Predecessor: 21
+> [420.326402] (7:node@Boivin) My finger table:
+> [420.326402] (7:node@Boivin) Start | Succ 
+> [420.326402] (7:node@Boivin)    9  |  21 
+> [420.326402] (7:node@Boivin)   10  |  38 
+> [420.326402] (7:node@Boivin)   12  |  21 
+> [420.326402] (7:node@Boivin)   16  |   8 
+> [420.326402] (7:node@Boivin)   24  |   8 
+> [420.326402] (7:node@Boivin)   40  |   8 
+> [420.326402] (7:node@Boivin) Predecessor: -1
+> [440.893851] (5:node@TeX) My finger table:
+> [440.893851] (5:node@TeX) Start | Succ 
+> [440.893851] (5:node@TeX)   22  |  32 
+> [440.893851] (5:node@TeX)   23  |  32 
+> [440.893851] (5:node@TeX)   25  |  21 
+> [440.893851] (5:node@TeX)   29  |  21 
+> [440.893851] (5:node@TeX)   37  |  21 
+> [440.893851] (5:node@TeX)   53  |  21 
+> [440.893851] (5:node@TeX) Predecessor: 14
+> [479.758971] (3:node@iRMX) My finger table:
+> [479.758971] (3:node@iRMX) Start | Succ 
+> [479.758971] (3:node@iRMX)   39  |  42 
+> [479.758971] (3:node@iRMX)   40  |  42 
+> [479.758971] (3:node@iRMX)   42  |  42 
+> [479.758971] (3:node@iRMX)   46  |  38 
+> [479.758971] (3:node@iRMX)   54  |  38 
+> [479.758971] (3:node@iRMX)    6  |  38 
+> [479.758971] (3:node@iRMX) Predecessor: 32
+> [482.033225] (4:node@Geoff) My finger table:
+> [482.033225] (4:node@Geoff) Start | Succ 
+> [482.033225] (4:node@Geoff)   33  |  38 
+> [482.033225] (4:node@Geoff)   34  |  38 
+> [482.033225] (4:node@Geoff)   36  |  38 
+> [482.033225] (4:node@Geoff)   40  |  32 
+> [482.033225] (4:node@Geoff)   48  |  32 
+> [482.033225] (4:node@Geoff)    0  |  32 
+> [482.033225] (4:node@Geoff) Predecessor: 21
+> [490.659143] (1:node@Gatien) My finger table:
+> [490.659143] (1:node@Gatien) Start | Succ 
+> [490.659143] (1:node@Gatien)   49  |   1 
+> [490.659143] (1:node@Gatien)   50  |   1 
+> [490.659143] (1:node@Gatien)   52  |   1 
+> [490.659143] (1:node@Gatien)   56  |   1 
+> [490.659143] (1:node@Gatien)    0  |  48 
+> [490.659143] (1:node@Gatien)   16  |  48 
+> [490.659143] (1:node@Gatien) Predecessor: 42
+> [498.176263] (3:node@iRMX) My finger table:
+> [498.176263] (3:node@iRMX) Start | Succ 
+> [498.176263] (3:node@iRMX)   39  |  42 
+> [498.176263] (3:node@iRMX)   40  |  42 
+> [498.176263] (3:node@iRMX)   42  |  42 
+> [498.176263] (3:node@iRMX)   46  |  38 
+> [498.176263] (3:node@iRMX)   54  |  38 
+> [498.176263] (3:node@iRMX)    6  |  38 
+> [498.176263] (3:node@iRMX) Predecessor: 32
+> [498.611138] (6:node@Jean_Yves) My finger table:
+> [498.611138] (6:node@Jean_Yves) Start | Succ 
+> [498.611138] (6:node@Jean_Yves)   15  |  21 
+> [498.611138] (6:node@Jean_Yves)   16  |  38 
+> [498.611138] (6:node@Jean_Yves)   18  |  21 
+> [498.611138] (6:node@Jean_Yves)   22  |  14 
+> [498.611138] (6:node@Jean_Yves)   30  |  14 
+> [498.611138] (6:node@Jean_Yves)   46  |  14 
+> [498.611138] (6:node@Jean_Yves) Predecessor: -1
+> [500.558693] (8:node@Jacquelin) My finger table:
+> [500.558693] (8:node@Jacquelin) Start | Succ 
+> [500.558693] (8:node@Jacquelin)    2  |  14 
+> [500.558693] (8:node@Jacquelin)    3  |  32 
+> [500.558693] (8:node@Jacquelin)    5  |  14 
+> [500.558693] (8:node@Jacquelin)    9  |   1 
+> [500.558693] (8:node@Jacquelin)   17  |   1 
+> [500.558693] (8:node@Jacquelin)   33  |   1 
+> [500.558693] (8:node@Jacquelin) Predecessor: 48
+> [505.760856] (2:node@McGee) My finger table:
+> [505.760856] (2:node@McGee) Start | Succ 
+> [505.760856] (2:node@McGee)   43  |  48 
+> [505.760856] (2:node@McGee)   44  |  48 
+> [505.760856] (2:node@McGee)   46  |  48 
+> [505.760856] (2:node@McGee)   50  |   1 
+> [505.760856] (2:node@McGee)   58  |  42 
+> [505.760856] (2:node@McGee)   10  |  42 
+> [505.760856] (2:node@McGee) Predecessor: 38
+> [509.829034] (5:node@TeX) My finger table:
+> [509.829034] (5:node@TeX) Start | Succ 
+> [509.829034] (5:node@TeX)   22  |  32 
+> [509.829034] (5:node@TeX)   23  |  32 
+> [509.829034] (5:node@TeX)   25  |  32 
+> [509.829034] (5:node@TeX)   29  |  21 
+> [509.829034] (5:node@TeX)   37  |  21 
+> [509.829034] (5:node@TeX)   53  |  21 
+> [509.829034] (5:node@TeX) Predecessor: 14
+> [533.786329] (6:node@Jean_Yves) My finger table:
+> [533.786329] (6:node@Jean_Yves) Start | Succ 
+> [533.786329] (6:node@Jean_Yves)   15  |  21 
+> [533.786329] (6:node@Jean_Yves)   16  |  38 
+> [533.786329] (6:node@Jean_Yves)   18  |  21 
+> [533.786329] (6:node@Jean_Yves)   22  |  14 
+> [533.786329] (6:node@Jean_Yves)   30  |  14 
+> [533.786329] (6:node@Jean_Yves)   46  |  14 
+> [533.786329] (6:node@Jean_Yves) Predecessor: 8
+> [549.075290] (7:node@Boivin) My finger table:
+> [549.075290] (7:node@Boivin) Start | Succ 
+> [549.075290] (7:node@Boivin)    9  |  14 
+> [549.075290] (7:node@Boivin)   10  |  38 
+> [549.075290] (7:node@Boivin)   12  |  21 
+> [549.075290] (7:node@Boivin)   16  |  21 
+> [549.075290] (7:node@Boivin)   24  |   8 
+> [549.075290] (7:node@Boivin)   40  |   8 
+> [549.075290] (7:node@Boivin) Predecessor: -1
+> [753.389615] (0:@) Messages created: 605
+> [753.389615] (0:@) Simulated time: 753.39
 
 ! output sort
 $ $SG_TEST_EXENV ${bindir:=.}/chord$EXEEXT ${srcdir:=.}/../../platforms/cluster.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
@@ -569,2408 +515,2327 @@ $ $SG_TEST_EXENV ${bindir:=.}/chord$EXEEXT ${srcdir:=.}/../../platforms/cluster.
 > [   5.000000] (8:node@c-7.me)  14199064  | 10004760 
 > [   5.000000] (8:node@c-7.me)  1616152  | 10004760 
 > [   5.000000] (8:node@c-7.me) Predecessor: -1
-> [   6.000000] (2:node@c-1.me) My finger table:
-> [   6.000000] (2:node@c-1.me) Start | Succ 
-> [   6.000000] (2:node@c-1.me)  366681  |  42 
-> [   6.000000] (2:node@c-1.me)  366682  | 366680 
-> [   6.000000] (2:node@c-1.me)  366684  | 366680 
-> [   6.000000] (2:node@c-1.me)  366688  | 366680 
-> [   6.000000] (2:node@c-1.me)  366696  | 366680 
-> [   6.000000] (2:node@c-1.me)  366712  | 366680 
-> [   6.000000] (2:node@c-1.me)  366744  | 366680 
-> [   6.000000] (2:node@c-1.me)  366808  | 366680 
-> [   6.000000] (2:node@c-1.me)  366936  | 366680 
-> [   6.000000] (2:node@c-1.me)  367192  | 366680 
-> [   6.000000] (2:node@c-1.me)  367704  | 366680 
-> [   6.000000] (2:node@c-1.me)  368728  | 366680 
-> [   6.000000] (2:node@c-1.me)  370776  | 366680 
-> [   6.000000] (2:node@c-1.me)  374872  | 366680 
-> [   6.000000] (2:node@c-1.me)  383064  | 366680 
-> [   6.000000] (2:node@c-1.me)  399448  | 366680 
-> [   6.000000] (2:node@c-1.me)  432216  | 366680 
-> [   6.000000] (2:node@c-1.me)  497752  | 366680 
-> [   6.000000] (2:node@c-1.me)  628824  | 366680 
-> [   6.000000] (2:node@c-1.me)  890968  | 366680 
-> [   6.000000] (2:node@c-1.me)  1415256  | 366680 
-> [   6.000000] (2:node@c-1.me)  2463832  | 366680 
-> [   6.000000] (2:node@c-1.me)  4560984  | 366680 
-> [   6.000000] (2:node@c-1.me)  8755288  | 366680 
-> [   6.000000] (2:node@c-1.me) Predecessor: -1
-> [   8.000000] (7:node@c-6.me) My finger table:
-> [   8.000000] (7:node@c-6.me) Start | Succ 
-> [   8.000000] (7:node@c-6.me)  16728097  | 1319738 
-> [   8.000000] (7:node@c-6.me)  16728098  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728100  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16416  | 16728096 
-> [   8.000000] (7:node@c-6.me)  81952  | 16728096 
-> [   8.000000] (7:node@c-6.me)  213024  | 16728096 
-> [   8.000000] (7:node@c-6.me)  475168  | 16728096 
-> [   8.000000] (7:node@c-6.me)  999456  | 16728096 
-> [   8.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [   8.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [   8.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [   8.000000] (7:node@c-6.me) Predecessor: -1
-> [   9.000000] (10:node@c-9.me) My finger table:
-> [   9.000000] (10:node@c-9.me) Start | Succ 
-> [   9.000000] (10:node@c-9.me)  2015254  | 1319738 
-> [   9.000000] (10:node@c-9.me)  2015255  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015257  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015261  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015269  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [   9.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [   9.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [   9.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [   9.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [   9.000000] (10:node@c-9.me) Predecessor: -1
-> [  11.000000] (4:node@c-3.me) My finger table:
-> [  11.000000] (4:node@c-3.me) Start | Succ 
-> [  11.000000] (4:node@c-3.me)  1319739  |  42 
-> [  11.000000] (4:node@c-3.me)  1319740  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319742  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [  11.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [  11.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [  11.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [  11.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [  11.000000] (4:node@c-3.me) Predecessor: -1
-> [  16.000000] (9:node@c-8.me) My finger table:
-> [  16.000000] (9:node@c-8.me) Start | Succ 
-> [  16.000000] (9:node@c-8.me)  6518809  |  42 
-> [  16.000000] (9:node@c-8.me)  6518810  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518812  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [  16.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [  16.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [  16.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [  16.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [  16.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [  16.000000] (9:node@c-8.me) Predecessor: -1
-> [  26.000000] (4:node@c-3.me) My finger table:
-> [  26.000000] (4:node@c-3.me) Start | Succ 
-> [  26.000000] (4:node@c-3.me)  1319739  |  42 
-> [  26.000000] (4:node@c-3.me)  1319740  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319742  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [  26.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [  26.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [  26.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [  26.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [  26.000000] (4:node@c-3.me) Predecessor: 16728096
-> [  31.000000] (2:node@c-1.me) My finger table:
-> [  31.000000] (2:node@c-1.me) Start | Succ 
-> [  31.000000] (2:node@c-1.me)  366681  |  42 
-> [  31.000000] (2:node@c-1.me)  366682  | 366680 
-> [  31.000000] (2:node@c-1.me)  366684  | 366680 
-> [  31.000000] (2:node@c-1.me)  366688  | 366680 
-> [  31.000000] (2:node@c-1.me)  366696  | 366680 
-> [  31.000000] (2:node@c-1.me)  366712  | 366680 
-> [  31.000000] (2:node@c-1.me)  366744  | 366680 
-> [  31.000000] (2:node@c-1.me)  366808  | 366680 
-> [  31.000000] (2:node@c-1.me)  366936  | 366680 
-> [  31.000000] (2:node@c-1.me)  367192  | 366680 
-> [  31.000000] (2:node@c-1.me)  367704  | 366680 
-> [  31.000000] (2:node@c-1.me)  368728  | 366680 
-> [  31.000000] (2:node@c-1.me)  370776  | 366680 
-> [  31.000000] (2:node@c-1.me)  374872  | 366680 
-> [  31.000000] (2:node@c-1.me)  383064  | 366680 
-> [  31.000000] (2:node@c-1.me)  399448  | 366680 
-> [  31.000000] (2:node@c-1.me)  432216  | 366680 
-> [  31.000000] (2:node@c-1.me)  497752  | 366680 
-> [  31.000000] (2:node@c-1.me)  628824  | 366680 
-> [  31.000000] (2:node@c-1.me)  890968  | 366680 
-> [  31.000000] (2:node@c-1.me)  1415256  | 366680 
-> [  31.000000] (2:node@c-1.me)  2463832  | 366680 
-> [  31.000000] (2:node@c-1.me)  4560984  | 366680 
-> [  31.000000] (2:node@c-1.me)  8755288  | 366680 
-> [  31.000000] (2:node@c-1.me) Predecessor: 16509405
-> [  32.000000] (5:node@c-4.me) My finger table:
-> [  32.000000] (5:node@c-4.me) Start | Succ 
-> [  32.000000] (5:node@c-4.me)  16509406  | 366680 
-> [  32.000000] (5:node@c-4.me)  16509407  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509409  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509413  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509421  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509437  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [  32.000000] (5:node@c-4.me)  256477  | 16509405 
-> [  32.000000] (5:node@c-4.me)  780765  | 16509405 
-> [  32.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [  32.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [  32.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [  32.000000] (5:node@c-4.me) Predecessor: 10004760
-> [  38.000000] (3:node@c-2.me) My finger table:
-> [  38.000000] (3:node@c-2.me) Start | Succ 
-> [  38.000000] (3:node@c-2.me)  533745  | 16509405 
-> [  38.000000] (3:node@c-2.me)  533746  | 533744 
-> [  38.000000] (3:node@c-2.me)  533748  | 533744 
-> [  38.000000] (3:node@c-2.me)  533752  | 533744 
-> [  38.000000] (3:node@c-2.me)  533760  | 533744 
-> [  38.000000] (3:node@c-2.me)  533776  | 533744 
-> [  38.000000] (3:node@c-2.me)  533808  | 533744 
-> [  38.000000] (3:node@c-2.me)  533872  | 533744 
-> [  38.000000] (3:node@c-2.me)  534000  | 533744 
-> [  38.000000] (3:node@c-2.me)  534256  | 533744 
-> [  38.000000] (3:node@c-2.me)  534768  | 533744 
-> [  38.000000] (3:node@c-2.me)  535792  | 533744 
-> [  38.000000] (3:node@c-2.me)  537840  | 533744 
-> [  38.000000] (3:node@c-2.me)  541936  | 533744 
-> [  38.000000] (3:node@c-2.me)  550128  | 533744 
-> [  38.000000] (3:node@c-2.me)  566512  | 533744 
-> [  38.000000] (3:node@c-2.me)  599280  | 533744 
-> [  38.000000] (3:node@c-2.me)  664816  | 533744 
-> [  38.000000] (3:node@c-2.me)  795888  | 533744 
-> [  38.000000] (3:node@c-2.me)  1058032  | 533744 
-> [  38.000000] (3:node@c-2.me)  1582320  | 533744 
-> [  38.000000] (3:node@c-2.me)  2630896  | 533744 
-> [  38.000000] (3:node@c-2.me)  4728048  | 533744 
-> [  38.000000] (3:node@c-2.me)  8922352  | 533744 
-> [  38.000000] (3:node@c-2.me) Predecessor: 10874876
-> [  50.000000] (1:node@c-0.me) My finger table:
-> [  50.000000] (1:node@c-0.me) Start | Succ 
-> [  50.000000] (1:node@c-0.me)   43  |  42 
-> [  50.000000] (1:node@c-0.me)   44  |  42 
-> [  50.000000] (1:node@c-0.me)   46  |  42 
-> [  50.000000] (1:node@c-0.me)   50  |  42 
-> [  50.000000] (1:node@c-0.me)   58  |  42 
-> [  50.000000] (1:node@c-0.me)   74  |  42 
-> [  50.000000] (1:node@c-0.me)  106  |  42 
-> [  50.000000] (1:node@c-0.me)  170  |  42 
-> [  50.000000] (1:node@c-0.me)  298  |  42 
-> [  50.000000] (1:node@c-0.me)  554  |  42 
-> [  50.000000] (1:node@c-0.me)  1066  |  42 
-> [  50.000000] (1:node@c-0.me)  2090  |  42 
-> [  50.000000] (1:node@c-0.me)  4138  |  42 
-> [  50.000000] (1:node@c-0.me)  8234  |  42 
-> [  50.000000] (1:node@c-0.me)  16426  |  42 
-> [  50.000000] (1:node@c-0.me)  32810  |  42 
-> [  50.000000] (1:node@c-0.me)  65578  |  42 
-> [  50.000000] (1:node@c-0.me)  131114  |  42 
-> [  50.000000] (1:node@c-0.me)  262186  |  42 
-> [  50.000000] (1:node@c-0.me)  524330  |  42 
-> [  50.000000] (1:node@c-0.me)  1048618  |  42 
-> [  50.000000] (1:node@c-0.me)  2097194  |  42 
-> [  50.000000] (1:node@c-0.me)  4194346  |  42 
-> [  50.000000] (1:node@c-0.me)  8388650  |  42 
-> [  50.000000] (1:node@c-0.me) Predecessor: 366680
-> [  60.000000] (1:node@c-0.me) My finger table:
-> [  60.000000] (1:node@c-0.me) Start | Succ 
-> [  60.000000] (1:node@c-0.me)   43  |  42 
-> [  60.000000] (1:node@c-0.me)   44  |  42 
-> [  60.000000] (1:node@c-0.me)   46  |  42 
-> [  60.000000] (1:node@c-0.me)   50  |  42 
-> [  60.000000] (1:node@c-0.me)   58  |  42 
-> [  60.000000] (1:node@c-0.me)   74  |  42 
-> [  60.000000] (1:node@c-0.me)  106  |  42 
-> [  60.000000] (1:node@c-0.me)  170  |  42 
-> [  60.000000] (1:node@c-0.me)  298  |  42 
-> [  60.000000] (1:node@c-0.me)  554  |  42 
-> [  60.000000] (1:node@c-0.me)  1066  |  42 
-> [  60.000000] (1:node@c-0.me)  2090  |  42 
-> [  60.000000] (1:node@c-0.me)  4138  |  42 
-> [  60.000000] (1:node@c-0.me)  8234  |  42 
-> [  60.000000] (1:node@c-0.me)  16426  |  42 
-> [  60.000000] (1:node@c-0.me)  32810  |  42 
-> [  60.000000] (1:node@c-0.me)  65578  |  42 
-> [  60.000000] (1:node@c-0.me)  131114  |  42 
-> [  60.000000] (1:node@c-0.me)  262186  |  42 
-> [  60.000000] (1:node@c-0.me)  524330  |  42 
-> [  60.000000] (1:node@c-0.me)  1048618  |  42 
-> [  60.000000] (1:node@c-0.me)  2097194  |  42 
-> [  60.000000] (1:node@c-0.me)  4194346  |  42 
-> [  60.000000] (1:node@c-0.me)  8388650  |  42 
-> [  60.000000] (1:node@c-0.me) Predecessor: 1319738
-> [  70.000000] (1:node@c-0.me) My finger table:
-> [  70.000000] (1:node@c-0.me) Start | Succ 
-> [  70.000000] (1:node@c-0.me)   43  | 1319738 
-> [  70.000000] (1:node@c-0.me)   44  |  42 
-> [  70.000000] (1:node@c-0.me)   46  |  42 
-> [  70.000000] (1:node@c-0.me)   50  |  42 
-> [  70.000000] (1:node@c-0.me)   58  |  42 
-> [  70.000000] (1:node@c-0.me)   74  |  42 
-> [  70.000000] (1:node@c-0.me)  106  |  42 
-> [  70.000000] (1:node@c-0.me)  170  |  42 
-> [  70.000000] (1:node@c-0.me)  298  |  42 
-> [  70.000000] (1:node@c-0.me)  554  |  42 
-> [  70.000000] (1:node@c-0.me)  1066  |  42 
-> [  70.000000] (1:node@c-0.me)  2090  |  42 
-> [  70.000000] (1:node@c-0.me)  4138  |  42 
-> [  70.000000] (1:node@c-0.me)  8234  |  42 
-> [  70.000000] (1:node@c-0.me)  16426  |  42 
-> [  70.000000] (1:node@c-0.me)  32810  |  42 
-> [  70.000000] (1:node@c-0.me)  65578  |  42 
-> [  70.000000] (1:node@c-0.me)  131114  |  42 
-> [  70.000000] (1:node@c-0.me)  262186  |  42 
-> [  70.000000] (1:node@c-0.me)  524330  |  42 
-> [  70.000000] (1:node@c-0.me)  1048618  |  42 
-> [  70.000000] (1:node@c-0.me)  2097194  |  42 
-> [  70.000000] (1:node@c-0.me)  4194346  |  42 
-> [  70.000000] (1:node@c-0.me)  8388650  |  42 
-> [  70.000000] (1:node@c-0.me) Predecessor: 6518808
-> [  85.000000] (4:node@c-3.me) My finger table:
-> [  85.000000] (4:node@c-3.me) Start | Succ 
-> [  85.000000] (4:node@c-3.me)  1319739  | 6518808 
-> [  85.000000] (4:node@c-3.me)  1319740  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319742  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [  85.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [  85.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [  85.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [  85.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [  85.000000] (4:node@c-3.me) Predecessor: 42
-> [  86.000000] (8:node@c-7.me) My finger table:
-> [  86.000000] (8:node@c-7.me) Start | Succ 
-> [  86.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [  86.000000] (8:node@c-7.me)  10004762  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004764  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004768  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004776  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [  86.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [  86.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [  86.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [  86.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [  86.000000] (8:node@c-7.me) Predecessor: 533744
-> [  90.000000] (7:node@c-6.me) My finger table:
-> [  90.000000] (7:node@c-6.me) Start | Succ 
-> [  90.000000] (7:node@c-6.me)  16728097  | 1319738 
-> [  90.000000] (7:node@c-6.me)  16728098  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728100  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16416  | 16728096 
-> [  90.000000] (7:node@c-6.me)  81952  | 16728096 
-> [  90.000000] (7:node@c-6.me)  213024  | 16728096 
-> [  90.000000] (7:node@c-6.me)  475168  | 16728096 
-> [  90.000000] (7:node@c-6.me)  999456  | 16728096 
-> [  90.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [  90.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [  90.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [  90.000000] (7:node@c-6.me) Predecessor: 2015253
-> [ 109.000000] (9:node@c-8.me) My finger table:
-> [ 109.000000] (9:node@c-8.me) Start | Succ 
-> [ 109.000000] (9:node@c-8.me)  6518809  |  42 
-> [ 109.000000] (9:node@c-8.me)  6518810  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518812  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 109.000000] (9:node@c-8.me) Predecessor: 366680
-> [ 110.000000] (9:node@c-8.me) My finger table:
-> [ 110.000000] (9:node@c-8.me) Start | Succ 
-> [ 110.000000] (9:node@c-8.me)  6518809  |  42 
-> [ 110.000000] (9:node@c-8.me)  6518810  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518812  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 110.000000] (9:node@c-8.me) Predecessor: 1319738
-> [ 174.000000] (1:node@c-0.me) My finger table:
-> [ 174.000000] (1:node@c-0.me) Start | Succ 
-> [ 174.000000] (1:node@c-0.me)   43  | 1319738 
-> [ 174.000000] (1:node@c-0.me)   44  |  42 
-> [ 174.000000] (1:node@c-0.me)   46  |  42 
-> [ 174.000000] (1:node@c-0.me)   50  |  42 
-> [ 174.000000] (1:node@c-0.me)   58  |  42 
-> [ 174.000000] (1:node@c-0.me)   74  |  42 
-> [ 174.000000] (1:node@c-0.me)  106  |  42 
-> [ 174.000000] (1:node@c-0.me)  170  |  42 
-> [ 174.000000] (1:node@c-0.me)  298  |  42 
-> [ 174.000000] (1:node@c-0.me)  554  |  42 
-> [ 174.000000] (1:node@c-0.me)  1066  |  42 
-> [ 174.000000] (1:node@c-0.me)  2090  |  42 
-> [ 174.000000] (1:node@c-0.me)  4138  |  42 
-> [ 174.000000] (1:node@c-0.me)  8234  |  42 
-> [ 174.000000] (1:node@c-0.me)  16426  |  42 
-> [ 174.000000] (1:node@c-0.me)  32810  |  42 
-> [ 174.000000] (1:node@c-0.me)  65578  |  42 
-> [ 174.000000] (1:node@c-0.me)  131114  |  42 
-> [ 174.000000] (1:node@c-0.me)  262186  |  42 
-> [ 174.000000] (1:node@c-0.me)  524330  |  42 
-> [ 174.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 174.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 174.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 174.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 174.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 245.000000] (8:node@c-7.me) My finger table:
-> [ 245.000000] (8:node@c-7.me) Start | Succ 
-> [ 245.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 245.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 245.000000] (8:node@c-7.me)  10004764  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10004768  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10004776  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 245.000000] (8:node@c-7.me) Predecessor: 533744
-> [ 246.000000] (3:node@c-2.me) My finger table:
-> [ 246.000000] (3:node@c-2.me) Start | Succ 
-> [ 246.000000] (3:node@c-2.me)  533745  | 10004760 
-> [ 246.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 246.000000] (3:node@c-2.me)  533748  | 533744 
-> [ 246.000000] (3:node@c-2.me)  533752  | 533744 
-> [ 246.000000] (3:node@c-2.me)  533760  | 533744 
-> [ 246.000000] (3:node@c-2.me)  533776  | 533744 
-> [ 246.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 246.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 246.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 246.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 246.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 246.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 246.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 246.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 246.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 246.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 246.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 246.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 246.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 246.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 246.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 246.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 246.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 246.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 246.000000] (3:node@c-2.me) Predecessor: 10874876
-> [ 246.000000] (5:node@c-4.me) My finger table:
-> [ 246.000000] (5:node@c-4.me) Start | Succ 
-> [ 246.000000] (5:node@c-4.me)  16509406  | 366680 
-> [ 246.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 246.000000] (5:node@c-4.me)  16509409  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509413  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509421  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509437  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 246.000000] (5:node@c-4.me) Predecessor: 10004760
-> [ 247.000000] (6:node@c-5.me) My finger table:
-> [ 247.000000] (6:node@c-5.me) Start | Succ 
-> [ 247.000000] (6:node@c-5.me)  10874877  | 533744 
-> [ 247.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 247.000000] (6:node@c-5.me)  10874880  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10874884  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10874892  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10874908  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10874940  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 247.000000] (6:node@c-5.me) Predecessor: -1
-> [ 247.000000] (7:node@c-6.me) My finger table:
-> [ 247.000000] (7:node@c-6.me) Start | Succ 
-> [ 247.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 247.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 247.000000] (7:node@c-6.me)  16728100  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 247.000000] (7:node@c-6.me) Predecessor: 2015253
-> [ 253.000000] (1:node@c-0.me) My finger table:
-> [ 253.000000] (1:node@c-0.me) Start | Succ 
-> [ 253.000000] (1:node@c-0.me)   43  | 1319738 
-> [ 253.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 253.000000] (1:node@c-0.me)   46  |  42 
-> [ 253.000000] (1:node@c-0.me)   50  |  42 
-> [ 253.000000] (1:node@c-0.me)   58  |  42 
-> [ 253.000000] (1:node@c-0.me)   74  |  42 
-> [ 253.000000] (1:node@c-0.me)  106  |  42 
-> [ 253.000000] (1:node@c-0.me)  170  |  42 
-> [ 253.000000] (1:node@c-0.me)  298  |  42 
-> [ 253.000000] (1:node@c-0.me)  554  |  42 
-> [ 253.000000] (1:node@c-0.me)  1066  |  42 
-> [ 253.000000] (1:node@c-0.me)  2090  |  42 
-> [ 253.000000] (1:node@c-0.me)  4138  |  42 
-> [ 253.000000] (1:node@c-0.me)  8234  |  42 
-> [ 253.000000] (1:node@c-0.me)  16426  |  42 
-> [ 253.000000] (1:node@c-0.me)  32810  |  42 
-> [ 253.000000] (1:node@c-0.me)  65578  |  42 
-> [ 253.000000] (1:node@c-0.me)  131114  |  42 
-> [ 253.000000] (1:node@c-0.me)  262186  |  42 
-> [ 253.000000] (1:node@c-0.me)  524330  |  42 
-> [ 253.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 253.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 253.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 253.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 253.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 255.000000] (2:node@c-1.me) My finger table:
-> [ 255.000000] (2:node@c-1.me) Start | Succ 
-> [ 255.000000] (2:node@c-1.me)  366681  | 1319738 
-> [ 255.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 255.000000] (2:node@c-1.me)  366684  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366688  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366696  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366712  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 255.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 255.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 255.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 255.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 255.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 255.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 255.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 255.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 255.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 255.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 255.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 255.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 255.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 255.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 255.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 255.000000] (2:node@c-1.me) Predecessor: 16509405
-> [ 260.000000] (4:node@c-3.me) My finger table:
-> [ 260.000000] (4:node@c-3.me) Start | Succ 
-> [ 260.000000] (4:node@c-3.me)  1319739  | 6518808 
-> [ 260.000000] (4:node@c-3.me)  1319740  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319742  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 260.000000] (4:node@c-3.me) Predecessor: 366680
-> [ 292.000000] (7:node@c-6.me) My finger table:
-> [ 292.000000] (7:node@c-6.me) Start | Succ 
-> [ 292.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 292.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 292.000000] (7:node@c-6.me)  16728100  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 292.000000] (7:node@c-6.me) Predecessor: 6518808
-> [ 300.000000] (9:node@c-8.me) My finger table:
-> [ 300.000000] (9:node@c-8.me) Start | Succ 
-> [ 300.000000] (9:node@c-8.me)  6518809  | 16728096 
-> [ 300.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 300.000000] (9:node@c-8.me)  6518812  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 300.000000] (9:node@c-8.me) Predecessor: 1319738
-> [ 301.000000] (10:node@c-9.me) My finger table:
-> [ 301.000000] (10:node@c-9.me) Start | Succ 
-> [ 301.000000] (10:node@c-9.me)  2015254  | 16728096 
-> [ 301.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 301.000000] (10:node@c-9.me)  2015257  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015261  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015269  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 301.000000] (10:node@c-9.me) Predecessor: -1
-> [ 302.000000] (2:node@c-1.me) My finger table:
-> [ 302.000000] (2:node@c-1.me) Start | Succ 
-> [ 302.000000] (2:node@c-1.me)  366681  | 1319738 
-> [ 302.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 302.000000] (2:node@c-1.me)  366684  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366688  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366696  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366712  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 302.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 302.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 302.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 302.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 302.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 302.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 302.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 302.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 302.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 302.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 302.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 302.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 302.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 302.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 302.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 302.000000] (2:node@c-1.me) Predecessor: 42
-> [ 306.000000] (4:node@c-3.me) My finger table:
-> [ 306.000000] (4:node@c-3.me) Start | Succ 
-> [ 306.000000] (4:node@c-3.me)  1319739  | 6518808 
-> [ 306.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 306.000000] (4:node@c-3.me)  1319742  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 306.000000] (4:node@c-3.me) Predecessor: 366680
-> [ 339.000000] (9:node@c-8.me) My finger table:
-> [ 339.000000] (9:node@c-8.me) Start | Succ 
-> [ 339.000000] (9:node@c-8.me)  6518809  | 16728096 
-> [ 339.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 339.000000] (9:node@c-8.me)  6518812  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 339.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 367.000000] (6:node@c-5.me) My finger table:
-> [ 367.000000] (6:node@c-5.me) Start | Succ 
-> [ 367.000000] (6:node@c-5.me)  10874877  | 533744 
-> [ 367.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 367.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 367.000000] (6:node@c-5.me)  10874884  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10874892  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10874908  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10874940  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 367.000000] (6:node@c-5.me) Predecessor: -1
-> [ 368.000000] (3:node@c-2.me) My finger table:
-> [ 368.000000] (3:node@c-2.me) Start | Succ 
-> [ 368.000000] (3:node@c-2.me)  533745  | 10004760 
-> [ 368.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 368.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 368.000000] (3:node@c-2.me)  533752  | 533744 
-> [ 368.000000] (3:node@c-2.me)  533760  | 533744 
-> [ 368.000000] (3:node@c-2.me)  533776  | 533744 
-> [ 368.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 368.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 368.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 368.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 368.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 368.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 368.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 368.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 368.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 368.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 368.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 368.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 368.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 368.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 368.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 368.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 368.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 368.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 368.000000] (3:node@c-2.me) Predecessor: 10874876
-> [ 368.000000] (5:node@c-4.me) My finger table:
-> [ 368.000000] (5:node@c-4.me) Start | Succ 
-> [ 368.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 368.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 368.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 368.000000] (5:node@c-4.me)  16509413  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509421  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509437  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 368.000000] (5:node@c-4.me) Predecessor: 10004760
-> [ 370.000000] (8:node@c-7.me) My finger table:
-> [ 370.000000] (8:node@c-7.me) Start | Succ 
-> [ 370.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 370.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 370.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 370.000000] (8:node@c-7.me)  10004768  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10004776  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 370.000000] (8:node@c-7.me) Predecessor: 533744
-> [ 373.000000] (7:node@c-6.me) My finger table:
-> [ 373.000000] (7:node@c-6.me) Start | Succ 
-> [ 373.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 373.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 373.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 373.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 373.000000] (7:node@c-6.me) Predecessor: 6518808
-> [ 375.000000] (2:node@c-1.me) My finger table:
-> [ 375.000000] (2:node@c-1.me) Start | Succ 
-> [ 375.000000] (2:node@c-1.me)  366681  | 1319738 
-> [ 375.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 375.000000] (2:node@c-1.me)  366684  | 1319738 
-> [ 375.000000] (2:node@c-1.me)  366688  | 366680 
-> [ 375.000000] (2:node@c-1.me)  366696  | 366680 
-> [ 375.000000] (2:node@c-1.me)  366712  | 366680 
-> [ 375.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 375.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 375.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 375.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 375.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 375.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 375.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 375.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 375.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 375.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 375.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 375.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 375.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 375.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 375.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 375.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 375.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 375.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 375.000000] (2:node@c-1.me) Predecessor: 42
-> [ 382.000000] (1:node@c-0.me) My finger table:
-> [ 382.000000] (1:node@c-0.me) Start | Succ 
-> [ 382.000000] (1:node@c-0.me)   43  | 366680 
-> [ 382.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 382.000000] (1:node@c-0.me)   46  | 366680 
-> [ 382.000000] (1:node@c-0.me)   50  |  42 
-> [ 382.000000] (1:node@c-0.me)   58  |  42 
-> [ 382.000000] (1:node@c-0.me)   74  |  42 
-> [ 382.000000] (1:node@c-0.me)  106  |  42 
-> [ 382.000000] (1:node@c-0.me)  170  |  42 
-> [ 382.000000] (1:node@c-0.me)  298  |  42 
-> [ 382.000000] (1:node@c-0.me)  554  |  42 
-> [ 382.000000] (1:node@c-0.me)  1066  |  42 
-> [ 382.000000] (1:node@c-0.me)  2090  |  42 
-> [ 382.000000] (1:node@c-0.me)  4138  |  42 
-> [ 382.000000] (1:node@c-0.me)  8234  |  42 
-> [ 382.000000] (1:node@c-0.me)  16426  |  42 
-> [ 382.000000] (1:node@c-0.me)  32810  |  42 
-> [ 382.000000] (1:node@c-0.me)  65578  |  42 
-> [ 382.000000] (1:node@c-0.me)  131114  |  42 
-> [ 382.000000] (1:node@c-0.me)  262186  |  42 
-> [ 382.000000] (1:node@c-0.me)  524330  |  42 
-> [ 382.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 382.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 382.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 382.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 382.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 383.000000] (7:node@c-6.me) My finger table:
-> [ 383.000000] (7:node@c-6.me) Start | Succ 
-> [ 383.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 383.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 383.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 383.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 383.000000] (7:node@c-6.me) Predecessor: 16509405
-> [ 385.000000] (10:node@c-9.me) My finger table:
-> [ 385.000000] (10:node@c-9.me) Start | Succ 
-> [ 385.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 385.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 385.000000] (10:node@c-9.me)  2015257  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015261  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015269  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 385.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 427.000000] (9:node@c-8.me) My finger table:
-> [ 427.000000] (9:node@c-8.me) Start | Succ 
-> [ 427.000000] (9:node@c-8.me)  6518809  | 10004760 
-> [ 427.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 427.000000] (9:node@c-8.me)  6518812  | 10004760 
-> [ 427.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 427.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 432.000000] (10:node@c-9.me) My finger table:
-> [ 432.000000] (10:node@c-9.me) Start | Succ 
-> [ 432.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 432.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 432.000000] (10:node@c-9.me)  2015257  | 6518808 
-> [ 432.000000] (10:node@c-9.me)  2015261  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015269  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 432.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 484.000000] (4:node@c-3.me) My finger table:
-> [ 484.000000] (4:node@c-3.me) Start | Succ 
-> [ 484.000000] (4:node@c-3.me)  1319739  | 2015253 
-> [ 484.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 484.000000] (4:node@c-3.me)  1319742  | 2015253 
-> [ 484.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 484.000000] (4:node@c-3.me) Predecessor: 366680
-> [ 487.000000] (6:node@c-5.me) My finger table:
-> [ 487.000000] (6:node@c-5.me) Start | Succ 
-> [ 487.000000] (6:node@c-5.me)  10874877  | 533744 
-> [ 487.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 487.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 487.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 487.000000] (6:node@c-5.me)  10874892  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10874908  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10874940  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 487.000000] (6:node@c-5.me) Predecessor: -1
-> [ 490.000000] (8:node@c-7.me) My finger table:
-> [ 490.000000] (8:node@c-7.me) Start | Succ 
-> [ 490.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 490.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 490.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 490.000000] (8:node@c-7.me)  10004768  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10004776  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 490.000000] (8:node@c-7.me) Predecessor: 6518808
-> [ 491.000000] (8:node@c-7.me) My finger table:
-> [ 491.000000] (8:node@c-7.me) Start | Succ 
-> [ 491.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 491.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 491.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 491.000000] (8:node@c-7.me)  10004768  | 16509405 
-> [ 491.000000] (8:node@c-7.me)  10004776  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 491.000000] (8:node@c-7.me) Predecessor: 6518808
-> [ 496.000000] (7:node@c-6.me) My finger table:
-> [ 496.000000] (7:node@c-6.me) Start | Succ 
-> [ 496.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 496.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 496.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 496.000000] (7:node@c-6.me)  16728104  |  42 
-> [ 496.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 496.000000] (7:node@c-6.me) Predecessor: 16509405
-> [ 497.000000] (3:node@c-2.me) My finger table:
-> [ 497.000000] (3:node@c-2.me) Start | Succ 
-> [ 497.000000] (3:node@c-2.me)  533745  | 6518808 
-> [ 497.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 497.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 497.000000] (3:node@c-2.me)  533752  | 6518808 
-> [ 497.000000] (3:node@c-2.me)  533760  | 533744 
-> [ 497.000000] (3:node@c-2.me)  533776  | 533744 
-> [ 497.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 497.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 497.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 497.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 497.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 497.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 497.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 497.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 497.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 497.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 497.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 497.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 497.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 497.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 497.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 497.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 497.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 497.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 497.000000] (3:node@c-2.me) Predecessor: 10874876
-> [ 502.000000] (1:node@c-0.me) My finger table:
-> [ 502.000000] (1:node@c-0.me) Start | Succ 
-> [ 502.000000] (1:node@c-0.me)   43  | 366680 
-> [ 502.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 502.000000] (1:node@c-0.me)   46  | 366680 
-> [ 502.000000] (1:node@c-0.me)   50  | 366680 
-> [ 502.000000] (1:node@c-0.me)   58  |  42 
-> [ 502.000000] (1:node@c-0.me)   74  |  42 
-> [ 502.000000] (1:node@c-0.me)  106  |  42 
-> [ 502.000000] (1:node@c-0.me)  170  |  42 
-> [ 502.000000] (1:node@c-0.me)  298  |  42 
-> [ 502.000000] (1:node@c-0.me)  554  |  42 
-> [ 502.000000] (1:node@c-0.me)  1066  |  42 
-> [ 502.000000] (1:node@c-0.me)  2090  |  42 
-> [ 502.000000] (1:node@c-0.me)  4138  |  42 
-> [ 502.000000] (1:node@c-0.me)  8234  |  42 
-> [ 502.000000] (1:node@c-0.me)  16426  |  42 
-> [ 502.000000] (1:node@c-0.me)  32810  |  42 
-> [ 502.000000] (1:node@c-0.me)  65578  |  42 
-> [ 502.000000] (1:node@c-0.me)  131114  |  42 
-> [ 502.000000] (1:node@c-0.me)  262186  |  42 
-> [ 502.000000] (1:node@c-0.me)  524330  |  42 
-> [ 502.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 502.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 502.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 502.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 502.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 505.000000] (2:node@c-1.me) My finger table:
-> [ 505.000000] (2:node@c-1.me) Start | Succ 
-> [ 505.000000] (2:node@c-1.me)  366681  | 1319738 
-> [ 505.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 505.000000] (2:node@c-1.me)  366684  | 1319738 
-> [ 505.000000] (2:node@c-1.me)  366688  | 1319738 
-> [ 505.000000] (2:node@c-1.me)  366696  | 366680 
-> [ 505.000000] (2:node@c-1.me)  366712  | 366680 
-> [ 505.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 505.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 505.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 505.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 505.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 505.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 505.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 505.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 505.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 505.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 505.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 505.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 505.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 505.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 505.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 505.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 505.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 505.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 505.000000] (2:node@c-1.me) Predecessor: 42
-> [ 513.000000] (5:node@c-4.me) My finger table:
-> [ 513.000000] (5:node@c-4.me) Start | Succ 
-> [ 513.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 513.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 513.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 513.000000] (5:node@c-4.me)  16509413  | 16728096 
-> [ 513.000000] (5:node@c-4.me)  16509421  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16509437  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 513.000000] (5:node@c-4.me) Predecessor: 10004760
-> [ 558.000000] (9:node@c-8.me) My finger table:
-> [ 558.000000] (9:node@c-8.me) Start | Succ 
-> [ 558.000000] (9:node@c-8.me)  6518809  | 10004760 
-> [ 558.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 558.000000] (9:node@c-8.me)  6518812  | 10004760 
-> [ 558.000000] (9:node@c-8.me)  6518816  | 10004760 
-> [ 558.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 558.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 573.000000] (10:node@c-9.me) My finger table:
-> [ 573.000000] (10:node@c-9.me) Start | Succ 
-> [ 573.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 573.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 573.000000] (10:node@c-9.me)  2015257  | 6518808 
-> [ 573.000000] (10:node@c-9.me)  2015261  | 6518808 
-> [ 573.000000] (10:node@c-9.me)  2015269  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 573.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 600.000000] (4:node@c-3.me) My finger table:
-> [ 600.000000] (4:node@c-3.me) Start | Succ 
-> [ 600.000000] (4:node@c-3.me)  1319739  | 2015253 
-> [ 600.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 600.000000] (4:node@c-3.me)  1319742  | 2015253 
-> [ 600.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 600.000000] (4:node@c-3.me) Predecessor: 533744
-> [ 610.000000] (6:node@c-5.me) My finger table:
-> [ 610.000000] (6:node@c-5.me) Start | Succ 
-> [ 610.000000] (6:node@c-5.me)  10874877  | 533744 
-> [ 610.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 610.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 610.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 610.000000] (6:node@c-5.me)  10874892  | 533744 
-> [ 610.000000] (6:node@c-5.me)  10874908  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10874940  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 610.000000] (6:node@c-5.me) Predecessor: -1
-> [ 656.000000] (5:node@c-4.me) My finger table:
-> [ 656.000000] (5:node@c-4.me) Start | Succ 
-> [ 656.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 656.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 656.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 656.000000] (5:node@c-4.me)  16509413  | 16728096 
-> [ 656.000000] (5:node@c-4.me)  16509421  | 16728096 
-> [ 656.000000] (5:node@c-4.me)  16509437  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 656.000000] (5:node@c-4.me) Predecessor: 10004760
-> [ 657.000000] (7:node@c-6.me) My finger table:
-> [ 657.000000] (7:node@c-6.me) Start | Succ 
-> [ 657.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 657.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 657.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 657.000000] (7:node@c-6.me)  16728104  |  42 
-> [ 657.000000] (7:node@c-6.me)  16728112  |  42 
-> [ 657.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 657.000000] (7:node@c-6.me) Predecessor: 16509405
-> [ 663.000000] (4:node@c-3.me) My finger table:
-> [ 663.000000] (4:node@c-3.me) Start | Succ 
-> [ 663.000000] (4:node@c-3.me)  1319739  | 2015253 
-> [ 663.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 663.000000] (4:node@c-3.me)  1319742  | 2015253 
-> [ 663.000000] (4:node@c-3.me)  1319746  | 2015253 
-> [ 663.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 663.000000] (4:node@c-3.me) Predecessor: 533744
-> [ 665.000000] (1:node@c-0.me) My finger table:
-> [ 665.000000] (1:node@c-0.me) Start | Succ 
-> [ 665.000000] (1:node@c-0.me)   43  | 366680 
-> [ 665.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 665.000000] (1:node@c-0.me)   46  | 366680 
-> [ 665.000000] (1:node@c-0.me)   50  | 366680 
-> [ 665.000000] (1:node@c-0.me)   58  | 366680 
-> [ 665.000000] (1:node@c-0.me)   74  |  42 
-> [ 665.000000] (1:node@c-0.me)  106  |  42 
-> [ 665.000000] (1:node@c-0.me)  170  |  42 
-> [ 665.000000] (1:node@c-0.me)  298  |  42 
-> [ 665.000000] (1:node@c-0.me)  554  |  42 
-> [ 665.000000] (1:node@c-0.me)  1066  |  42 
-> [ 665.000000] (1:node@c-0.me)  2090  |  42 
-> [ 665.000000] (1:node@c-0.me)  4138  |  42 
-> [ 665.000000] (1:node@c-0.me)  8234  |  42 
-> [ 665.000000] (1:node@c-0.me)  16426  |  42 
-> [ 665.000000] (1:node@c-0.me)  32810  |  42 
-> [ 665.000000] (1:node@c-0.me)  65578  |  42 
-> [ 665.000000] (1:node@c-0.me)  131114  |  42 
-> [ 665.000000] (1:node@c-0.me)  262186  |  42 
-> [ 665.000000] (1:node@c-0.me)  524330  |  42 
-> [ 665.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 665.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 665.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 665.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 665.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 669.000000] (8:node@c-7.me) My finger table:
-> [ 669.000000] (8:node@c-7.me) Start | Succ 
-> [ 669.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 669.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 669.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 669.000000] (8:node@c-7.me)  10004768  | 16509405 
-> [ 669.000000] (8:node@c-7.me)  10004776  | 16509405 
-> [ 669.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 669.000000] (8:node@c-7.me) Predecessor: 6518808
-> [ 671.000000] (3:node@c-2.me) My finger table:
-> [ 671.000000] (3:node@c-2.me) Start | Succ 
-> [ 671.000000] (3:node@c-2.me)  533745  | 1319738 
-> [ 671.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 671.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 671.000000] (3:node@c-2.me)  533752  | 6518808 
-> [ 671.000000] (3:node@c-2.me)  533760  | 1319738 
-> [ 671.000000] (3:node@c-2.me)  533776  | 533744 
-> [ 671.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 671.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 671.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 671.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 671.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 671.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 671.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 671.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 671.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 671.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 671.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 671.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 671.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 671.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 671.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 671.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 671.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 671.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 671.000000] (3:node@c-2.me) Predecessor: 10874876
-> [ 678.000000] (9:node@c-8.me) My finger table:
-> [ 678.000000] (9:node@c-8.me) Start | Succ 
-> [ 678.000000] (9:node@c-8.me)  6518809  | 10004760 
-> [ 678.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 678.000000] (9:node@c-8.me)  6518812  | 10004760 
-> [ 678.000000] (9:node@c-8.me)  6518816  | 10004760 
-> [ 678.000000] (9:node@c-8.me)  6518824  | 10004760 
-> [ 678.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 678.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 683.000000] (2:node@c-1.me) My finger table:
-> [ 683.000000] (2:node@c-1.me) Start | Succ 
-> [ 683.000000] (2:node@c-1.me)  366681  | 533744 
-> [ 683.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 683.000000] (2:node@c-1.me)  366684  | 1319738 
-> [ 683.000000] (2:node@c-1.me)  366688  | 1319738 
-> [ 683.000000] (2:node@c-1.me)  366696  | 533744 
-> [ 683.000000] (2:node@c-1.me)  366712  | 366680 
-> [ 683.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 683.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 683.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 683.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 683.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 683.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 683.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 683.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 683.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 683.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 683.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 683.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 683.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 683.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 683.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 683.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 683.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 683.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 683.000000] (2:node@c-1.me) Predecessor: 42
-> [ 684.000000] (3:node@c-2.me) My finger table:
-> [ 684.000000] (3:node@c-2.me) Start | Succ 
-> [ 684.000000] (3:node@c-2.me)  533745  | 1319738 
-> [ 684.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 684.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 684.000000] (3:node@c-2.me)  533752  | 6518808 
-> [ 684.000000] (3:node@c-2.me)  533760  | 1319738 
-> [ 684.000000] (3:node@c-2.me)  533776  | 533744 
-> [ 684.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 684.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 684.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 684.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 684.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 684.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 684.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 684.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 684.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 684.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 684.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 684.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 684.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 684.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 684.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 684.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 684.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 684.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 684.000000] (3:node@c-2.me) Predecessor: 366680
-> [ 721.000000] (10:node@c-9.me) My finger table:
-> [ 721.000000] (10:node@c-9.me) Start | Succ 
-> [ 721.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 721.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 721.000000] (10:node@c-9.me)  2015257  | 6518808 
-> [ 721.000000] (10:node@c-9.me)  2015261  | 6518808 
-> [ 721.000000] (10:node@c-9.me)  2015269  | 6518808 
-> [ 721.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 721.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 744.000000] (6:node@c-5.me) My finger table:
-> [ 744.000000] (6:node@c-5.me) Start | Succ 
-> [ 744.000000] (6:node@c-5.me)  10874877  | 16728096 
-> [ 744.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 744.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 744.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 744.000000] (6:node@c-5.me)  10874892  | 533744 
-> [ 744.000000] (6:node@c-5.me)  10874908  | 16728096 
-> [ 744.000000] (6:node@c-5.me)  10874940  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 744.000000] (6:node@c-5.me) Predecessor: -1
-> [ 777.000000] (7:node@c-6.me) My finger table:
-> [ 777.000000] (7:node@c-6.me) Start | Succ 
-> [ 777.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728104  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728112  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728128  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 777.000000] (7:node@c-6.me) Predecessor: 16509405
-> [ 786.000000] (5:node@c-4.me) My finger table:
-> [ 786.000000] (5:node@c-4.me) Start | Succ 
-> [ 786.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 786.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 786.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 786.000000] (5:node@c-4.me)  16509413  | 16728096 
-> [ 786.000000] (5:node@c-4.me)  16509421  | 16728096 
-> [ 786.000000] (5:node@c-4.me)  16509437  | 16728096 
-> [ 786.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 786.000000] (5:node@c-4.me) Predecessor: 10004760
-> [ 787.000000] (4:node@c-3.me) My finger table:
-> [ 787.000000] (4:node@c-3.me) Start | Succ 
-> [ 787.000000] (4:node@c-3.me)  1319739  | 2015253 
-> [ 787.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 787.000000] (4:node@c-3.me)  1319742  | 2015253 
-> [ 787.000000] (4:node@c-3.me)  1319746  | 2015253 
-> [ 787.000000] (4:node@c-3.me)  1319754  | 2015253 
-> [ 787.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 787.000000] (4:node@c-3.me) Predecessor: 533744
-> [ 788.000000] (1:node@c-0.me) My finger table:
-> [ 788.000000] (1:node@c-0.me) Start | Succ 
-> [ 788.000000] (1:node@c-0.me)   43  | 366680 
-> [ 788.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 788.000000] (1:node@c-0.me)   46  | 366680 
-> [ 788.000000] (1:node@c-0.me)   50  | 366680 
-> [ 788.000000] (1:node@c-0.me)   58  | 366680 
-> [ 788.000000] (1:node@c-0.me)   74  | 366680 
-> [ 788.000000] (1:node@c-0.me)  106  |  42 
-> [ 788.000000] (1:node@c-0.me)  170  |  42 
-> [ 788.000000] (1:node@c-0.me)  298  |  42 
-> [ 788.000000] (1:node@c-0.me)  554  |  42 
-> [ 788.000000] (1:node@c-0.me)  1066  |  42 
-> [ 788.000000] (1:node@c-0.me)  2090  |  42 
-> [ 788.000000] (1:node@c-0.me)  4138  |  42 
-> [ 788.000000] (1:node@c-0.me)  8234  |  42 
-> [ 788.000000] (1:node@c-0.me)  16426  |  42 
-> [ 788.000000] (1:node@c-0.me)  32810  |  42 
-> [ 788.000000] (1:node@c-0.me)  65578  |  42 
-> [ 788.000000] (1:node@c-0.me)  131114  |  42 
-> [ 788.000000] (1:node@c-0.me)  262186  |  42 
-> [ 788.000000] (1:node@c-0.me)  524330  |  42 
-> [ 788.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 788.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 788.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 788.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 788.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 793.000000] (3:node@c-2.me) My finger table:
-> [ 793.000000] (3:node@c-2.me) Start | Succ 
-> [ 793.000000] (3:node@c-2.me)  533745  | 1319738 
-> [ 793.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 793.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 793.000000] (3:node@c-2.me)  533752  | 6518808 
-> [ 793.000000] (3:node@c-2.me)  533760  | 1319738 
-> [ 793.000000] (3:node@c-2.me)  533776  | 1319738 
-> [ 793.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 793.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 793.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 793.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 793.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 793.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 793.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 793.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 793.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 793.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 793.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 793.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 793.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 793.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 793.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 793.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 793.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 793.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 793.000000] (3:node@c-2.me) Predecessor: 366680
-> [ 797.000000] (5:node@c-4.me) My finger table:
-> [ 797.000000] (5:node@c-4.me) Start | Succ 
-> [ 797.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 797.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 797.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 797.000000] (5:node@c-4.me)  16509413  | 16728096 
-> [ 797.000000] (5:node@c-4.me)  16509421  | 16728096 
-> [ 797.000000] (5:node@c-4.me)  16509437  | 16728096 
-> [ 797.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 797.000000] (5:node@c-4.me) Predecessor: 10874876
-> [ 798.000000] (8:node@c-7.me) My finger table:
-> [ 798.000000] (8:node@c-7.me) Start | Succ 
-> [ 798.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004768  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004776  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004792  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 798.000000] (8:node@c-7.me) Predecessor: 6518808
-> [ 801.000000] (9:node@c-8.me) My finger table:
-> [ 801.000000] (9:node@c-8.me) Start | Succ 
-> [ 801.000000] (9:node@c-8.me)  6518809  | 10004760 
-> [ 801.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 801.000000] (9:node@c-8.me)  6518812  | 10004760 
-> [ 801.000000] (9:node@c-8.me)  6518816  | 10004760 
-> [ 801.000000] (9:node@c-8.me)  6518824  | 10004760 
-> [ 801.000000] (9:node@c-8.me)  6518840  | 10004760 
-> [ 801.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 801.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 804.000000] (2:node@c-1.me) My finger table:
-> [ 804.000000] (2:node@c-1.me) Start | Succ 
-> [ 804.000000] (2:node@c-1.me)  366681  | 533744 
-> [ 804.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 804.000000] (2:node@c-1.me)  366684  | 1319738 
-> [ 804.000000] (2:node@c-1.me)  366688  | 1319738 
-> [ 804.000000] (2:node@c-1.me)  366696  | 533744 
-> [ 804.000000] (2:node@c-1.me)  366712  | 533744 
-> [ 804.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 804.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 804.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 804.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 804.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 804.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 804.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 804.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 804.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 804.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 804.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 804.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 804.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 804.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 804.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 804.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 804.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 804.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 804.000000] (2:node@c-1.me) Predecessor: 42
-> [ 843.000000] (10:node@c-9.me) My finger table:
-> [ 843.000000] (10:node@c-9.me) Start | Succ 
-> [ 843.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 843.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 843.000000] (10:node@c-9.me)  2015257  | 6518808 
-> [ 843.000000] (10:node@c-9.me)  2015261  | 6518808 
-> [ 843.000000] (10:node@c-9.me)  2015269  | 6518808 
-> [ 843.000000] (10:node@c-9.me)  2015285  | 6518808 
-> [ 843.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 843.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 865.000000] (6:node@c-5.me) My finger table:
-> [ 865.000000] (6:node@c-5.me) Start | Succ 
-> [ 865.000000] (6:node@c-5.me)  10874877  | 16509405 
-> [ 865.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 865.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 865.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 865.000000] (6:node@c-5.me)  10874892  | 533744 
-> [ 865.000000] (6:node@c-5.me)  10874908  | 16728096 
-> [ 865.000000] (6:node@c-5.me)  10874940  | 16509405 
-> [ 865.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 865.000000] (6:node@c-5.me) Predecessor: -1
-> [ 870.000000] (6:node@c-5.me) My finger table:
-> [ 870.000000] (6:node@c-5.me) Start | Succ 
-> [ 870.000000] (6:node@c-5.me)  10874877  | 16509405 
-> [ 870.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 870.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 870.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 870.000000] (6:node@c-5.me)  10874892  | 533744 
-> [ 870.000000] (6:node@c-5.me)  10874908  | 16728096 
-> [ 870.000000] (6:node@c-5.me)  10874940  | 16509405 
-> [ 870.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 870.000000] (6:node@c-5.me) Predecessor: 10004760
-> [ 910.000000] (5:node@c-4.me) My finger table:
-> [ 910.000000] (5:node@c-4.me) Start | Succ 
-> [ 910.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 910.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509413  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509421  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509437  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509469  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 910.000000] (5:node@c-4.me) Predecessor: 10874876
-> [ 912.000000] (1:node@c-0.me) My finger table:
-> [ 912.000000] (1:node@c-0.me) Start | Succ 
-> [ 912.000000] (1:node@c-0.me)   43  | 366680 
-> [ 912.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 912.000000] (1:node@c-0.me)   46  | 366680 
-> [ 912.000000] (1:node@c-0.me)   50  | 366680 
-> [ 912.000000] (1:node@c-0.me)   58  | 366680 
-> [ 912.000000] (1:node@c-0.me)   74  | 366680 
-> [ 912.000000] (1:node@c-0.me)  106  | 366680 
-> [ 912.000000] (1:node@c-0.me)  170  |  42 
-> [ 912.000000] (1:node@c-0.me)  298  |  42 
-> [ 912.000000] (1:node@c-0.me)  554  |  42 
-> [ 912.000000] (1:node@c-0.me)  1066  |  42 
-> [ 912.000000] (1:node@c-0.me)  2090  |  42 
-> [ 912.000000] (1:node@c-0.me)  4138  |  42 
-> [ 912.000000] (1:node@c-0.me)  8234  |  42 
-> [ 912.000000] (1:node@c-0.me)  16426  |  42 
-> [ 912.000000] (1:node@c-0.me)  32810  |  42 
-> [ 912.000000] (1:node@c-0.me)  65578  |  42 
-> [ 912.000000] (1:node@c-0.me)  131114  |  42 
-> [ 912.000000] (1:node@c-0.me)  262186  |  42 
-> [ 912.000000] (1:node@c-0.me)  524330  |  42 
-> [ 912.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 912.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 912.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 912.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 912.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 913.000000] (3:node@c-2.me) My finger table:
-> [ 913.000000] (3:node@c-2.me) Start | Succ 
-> [ 913.000000] (3:node@c-2.me)  533745  | 1319738 
-> [ 913.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 913.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 913.000000] (3:node@c-2.me)  533752  | 6518808 
-> [ 913.000000] (3:node@c-2.me)  533760  | 1319738 
-> [ 913.000000] (3:node@c-2.me)  533776  | 1319738 
-> [ 913.000000] (3:node@c-2.me)  533808  | 1319738 
-> [ 913.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 913.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 913.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 913.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 913.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 913.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 913.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 913.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 913.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 913.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 913.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 913.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 913.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 913.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 913.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 913.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 913.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 913.000000] (3:node@c-2.me) Predecessor: 366680
-> [ 921.000000] (8:node@c-7.me) My finger table:
-> [ 921.000000] (8:node@c-7.me) Start | Succ 
-> [ 921.000000] (8:node@c-7.me)  10004761  | 10874876 
-> [ 921.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 921.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 921.000000] (8:node@c-7.me)  10004768  | 16509405 
-> [ 921.000000] (8:node@c-7.me)  10004776  | 16509405 
-> [ 921.000000] (8:node@c-7.me)  10004792  | 16509405 
-> [ 921.000000] (8:node@c-7.me)  10004824  | 10874876 
-> [ 921.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 921.000000] (8:node@c-7.me) Predecessor: 6518808
-> [ 964.000000] (2:node@c-1.me) My finger table:
-> [ 964.000000] (2:node@c-1.me) Start | Succ 
-> [ 964.000000] (2:node@c-1.me)  366681  | 533744 
-> [ 964.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 964.000000] (2:node@c-1.me)  366684  | 1319738 
-> [ 964.000000] (2:node@c-1.me)  366688  | 1319738 
-> [ 964.000000] (2:node@c-1.me)  366696  | 533744 
-> [ 964.000000] (2:node@c-1.me)  366712  | 533744 
-> [ 964.000000] (2:node@c-1.me)  366744  | 533744 
-> [ 964.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 964.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 964.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 964.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 964.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 964.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 964.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 964.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 964.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 964.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 964.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 964.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 964.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 964.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 964.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 964.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 964.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 964.000000] (2:node@c-1.me) Predecessor: 42
-> [ 966.000000] (4:node@c-3.me) My finger table:
-> [ 966.000000] (4:node@c-3.me) Start | Succ 
-> [ 966.000000] (4:node@c-3.me)  1319739  | 2015253 
-> [ 966.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 966.000000] (4:node@c-3.me)  1319742  | 2015253 
-> [ 966.000000] (4:node@c-3.me)  1319746  | 2015253 
-> [ 966.000000] (4:node@c-3.me)  1319754  | 2015253 
-> [ 966.000000] (4:node@c-3.me)  1319770  | 2015253 
-> [ 966.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 966.000000] (4:node@c-3.me) Predecessor: 533744
-> [ 966.000000] (7:node@c-6.me) My finger table:
-> [ 966.000000] (7:node@c-6.me) Start | Succ 
-> [ 966.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728104  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728112  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728128  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728160  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 966.000000] (7:node@c-6.me) Predecessor: 16509405
-> [ 973.000000] (9:node@c-8.me) My finger table:
-> [ 973.000000] (9:node@c-8.me) Start | Succ 
-> [ 973.000000] (9:node@c-8.me)  6518809  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 973.000000] (9:node@c-8.me)  6518812  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518816  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518824  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518840  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518872  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 973.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 979.000000] (10:node@c-9.me) My finger table:
-> [ 979.000000] (10:node@c-9.me) Start | Succ 
-> [ 979.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 979.000000] (10:node@c-9.me)  2015257  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015261  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015269  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015285  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015317  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 979.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 987.000000] (6:node@c-5.me) My finger table:
-> [ 987.000000] (6:node@c-5.me) Start | Succ 
-> [ 987.000000] (6:node@c-5.me)  10874877  | 16509405 
-> [ 987.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 987.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 987.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 987.000000] (6:node@c-5.me)  10874892  | 533744 
-> [ 987.000000] (6:node@c-5.me)  10874908  | 16728096 
-> [ 987.000000] (6:node@c-5.me)  10874940  | 16509405 
-> [ 987.000000] (6:node@c-5.me)  10875004  | 16509405 
-> [ 987.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 987.000000] (6:node@c-5.me) Predecessor: 10004760
-> [1196.000000] (0:@) Messages created: 1827
-> [1196.000000] (0:@) Simulated time: 1196
\ No newline at end of file
+> [   5.999900] (2:node@c-1.me) My finger table:
+> [   5.999900] (2:node@c-1.me) Start | Succ 
+> [   5.999900] (2:node@c-1.me)  366681  |  42 
+> [   5.999900] (2:node@c-1.me)  366682  | 366680 
+> [   5.999900] (2:node@c-1.me)  366684  | 366680 
+> [   5.999900] (2:node@c-1.me)  366688  | 366680 
+> [   5.999900] (2:node@c-1.me)  366696  | 366680 
+> [   5.999900] (2:node@c-1.me)  366712  | 366680 
+> [   5.999900] (2:node@c-1.me)  366744  | 366680 
+> [   5.999900] (2:node@c-1.me)  366808  | 366680 
+> [   5.999900] (2:node@c-1.me)  366936  | 366680 
+> [   5.999900] (2:node@c-1.me)  367192  | 366680 
+> [   5.999900] (2:node@c-1.me)  367704  | 366680 
+> [   5.999900] (2:node@c-1.me)  368728  | 366680 
+> [   5.999900] (2:node@c-1.me)  370776  | 366680 
+> [   5.999900] (2:node@c-1.me)  374872  | 366680 
+> [   5.999900] (2:node@c-1.me)  383064  | 366680 
+> [   5.999900] (2:node@c-1.me)  399448  | 366680 
+> [   5.999900] (2:node@c-1.me)  432216  | 366680 
+> [   5.999900] (2:node@c-1.me)  497752  | 366680 
+> [   5.999900] (2:node@c-1.me)  628824  | 366680 
+> [   5.999900] (2:node@c-1.me)  890968  | 366680 
+> [   5.999900] (2:node@c-1.me)  1415256  | 366680 
+> [   5.999900] (2:node@c-1.me)  2463832  | 366680 
+> [   5.999900] (2:node@c-1.me)  4560984  | 366680 
+> [   5.999900] (2:node@c-1.me)  8755288  | 366680 
+> [   5.999900] (2:node@c-1.me) Predecessor: -1
+> [   7.999900] (7:node@c-6.me) My finger table:
+> [   7.999900] (7:node@c-6.me) Start | Succ 
+> [   7.999900] (7:node@c-6.me)  16728097  | 1319738 
+> [   7.999900] (7:node@c-6.me)  16728098  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728100  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728104  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728112  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728128  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728160  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728224  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728352  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728608  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16729120  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16730144  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16732192  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16736288  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16744480  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16760864  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16416  | 16728096 
+> [   7.999900] (7:node@c-6.me)  81952  | 16728096 
+> [   7.999900] (7:node@c-6.me)  213024  | 16728096 
+> [   7.999900] (7:node@c-6.me)  475168  | 16728096 
+> [   7.999900] (7:node@c-6.me)  999456  | 16728096 
+> [   7.999900] (7:node@c-6.me)  2048032  | 16728096 
+> [   7.999900] (7:node@c-6.me)  4145184  | 16728096 
+> [   7.999900] (7:node@c-6.me)  8339488  | 16728096 
+> [   7.999900] (7:node@c-6.me) Predecessor: -1
+> [   8.999900] (10:node@c-9.me) My finger table:
+> [   8.999900] (10:node@c-9.me) Start | Succ 
+> [   8.999900] (10:node@c-9.me)  2015254  | 1319738 
+> [   8.999900] (10:node@c-9.me)  2015255  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015257  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015261  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015269  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015285  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015317  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015381  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015509  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015765  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2016277  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2017301  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2019349  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2023445  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2031637  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2048021  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2080789  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2146325  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2277397  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2539541  | 2015253 
+> [   8.999900] (10:node@c-9.me)  3063829  | 2015253 
+> [   8.999900] (10:node@c-9.me)  4112405  | 2015253 
+> [   8.999900] (10:node@c-9.me)  6209557  | 2015253 
+> [   8.999900] (10:node@c-9.me)  10403861  | 2015253 
+> [   8.999900] (10:node@c-9.me) Predecessor: -1
+> [  10.999800] (4:node@c-3.me) My finger table:
+> [  10.999800] (4:node@c-3.me) Start | Succ 
+> [  10.999800] (4:node@c-3.me)  1319739  |  42 
+> [  10.999800] (4:node@c-3.me)  1319740  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319742  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319746  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319754  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319770  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319802  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319866  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319994  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1320250  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1320762  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1321786  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1323834  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1327930  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1336122  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1352506  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1385274  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1450810  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1581882  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1844026  | 1319738 
+> [  10.999800] (4:node@c-3.me)  2368314  | 1319738 
+> [  10.999800] (4:node@c-3.me)  3416890  | 1319738 
+> [  10.999800] (4:node@c-3.me)  5514042  | 1319738 
+> [  10.999800] (4:node@c-3.me)  9708346  | 1319738 
+> [  10.999800] (4:node@c-3.me) Predecessor: -1
+> [  15.999700] (9:node@c-8.me) My finger table:
+> [  15.999700] (9:node@c-8.me) Start | Succ 
+> [  15.999700] (9:node@c-8.me)  6518809  |  42 
+> [  15.999700] (9:node@c-8.me)  6518810  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518812  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518816  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518824  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518840  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518872  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518936  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6519064  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6519320  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6519832  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6520856  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6522904  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6527000  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6535192  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6551576  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6584344  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6649880  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6780952  | 6518808 
+> [  15.999700] (9:node@c-8.me)  7043096  | 6518808 
+> [  15.999700] (9:node@c-8.me)  7567384  | 6518808 
+> [  15.999700] (9:node@c-8.me)  8615960  | 6518808 
+> [  15.999700] (9:node@c-8.me)  10713112  | 6518808 
+> [  15.999700] (9:node@c-8.me)  14907416  | 6518808 
+> [  15.999700] (9:node@c-8.me) Predecessor: -1
+> [  26.999600] (3:node@c-2.me) My finger table:
+> [  26.999600] (3:node@c-2.me) Start | Succ 
+> [  26.999600] (3:node@c-2.me)  533745  | 366680 
+> [  26.999600] (3:node@c-2.me)  533746  | 533744 
+> [  26.999600] (3:node@c-2.me)  533748  | 533744 
+> [  26.999600] (3:node@c-2.me)  533752  | 533744 
+> [  26.999600] (3:node@c-2.me)  533760  | 533744 
+> [  26.999600] (3:node@c-2.me)  533776  | 533744 
+> [  26.999600] (3:node@c-2.me)  533808  | 533744 
+> [  26.999600] (3:node@c-2.me)  533872  | 533744 
+> [  26.999600] (3:node@c-2.me)  534000  | 533744 
+> [  26.999600] (3:node@c-2.me)  534256  | 533744 
+> [  26.999600] (3:node@c-2.me)  534768  | 533744 
+> [  26.999600] (3:node@c-2.me)  535792  | 533744 
+> [  26.999600] (3:node@c-2.me)  537840  | 533744 
+> [  26.999600] (3:node@c-2.me)  541936  | 533744 
+> [  26.999600] (3:node@c-2.me)  550128  | 533744 
+> [  26.999600] (3:node@c-2.me)  566512  | 533744 
+> [  26.999600] (3:node@c-2.me)  599280  | 533744 
+> [  26.999600] (3:node@c-2.me)  664816  | 533744 
+> [  26.999600] (3:node@c-2.me)  795888  | 533744 
+> [  26.999600] (3:node@c-2.me)  1058032  | 533744 
+> [  26.999600] (3:node@c-2.me)  1582320  | 533744 
+> [  26.999600] (3:node@c-2.me)  2630896  | 533744 
+> [  26.999600] (3:node@c-2.me)  4728048  | 533744 
+> [  26.999600] (3:node@c-2.me)  8922352  | 533744 
+> [  26.999600] (3:node@c-2.me) Predecessor: 10874876
+> [  31.999400] (5:node@c-4.me) My finger table:
+> [  31.999400] (5:node@c-4.me) Start | Succ 
+> [  31.999400] (5:node@c-4.me)  16509406  | 366680 
+> [  31.999400] (5:node@c-4.me)  16509407  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509409  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509413  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509421  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509437  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509469  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509533  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509661  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509917  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16510429  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16511453  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16513501  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16517597  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16525789  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16542173  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16574941  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16640477  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16771549  | 16509405 
+> [  31.999400] (5:node@c-4.me)  256477  | 16509405 
+> [  31.999400] (5:node@c-4.me)  780765  | 16509405 
+> [  31.999400] (5:node@c-4.me)  1829341  | 16509405 
+> [  31.999400] (5:node@c-4.me)  3926493  | 16509405 
+> [  31.999400] (5:node@c-4.me)  8120797  | 16509405 
+> [  31.999400] (5:node@c-4.me) Predecessor: 10004760
+> [  32.999400] (2:node@c-1.me) My finger table:
+> [  32.999400] (2:node@c-1.me) Start | Succ 
+> [  32.999400] (2:node@c-1.me)  366681  |  42 
+> [  32.999400] (2:node@c-1.me)  366682  | 366680 
+> [  32.999400] (2:node@c-1.me)  366684  | 366680 
+> [  32.999400] (2:node@c-1.me)  366688  | 366680 
+> [  32.999400] (2:node@c-1.me)  366696  | 366680 
+> [  32.999400] (2:node@c-1.me)  366712  | 366680 
+> [  32.999400] (2:node@c-1.me)  366744  | 366680 
+> [  32.999400] (2:node@c-1.me)  366808  | 366680 
+> [  32.999400] (2:node@c-1.me)  366936  | 366680 
+> [  32.999400] (2:node@c-1.me)  367192  | 366680 
+> [  32.999400] (2:node@c-1.me)  367704  | 366680 
+> [  32.999400] (2:node@c-1.me)  368728  | 366680 
+> [  32.999400] (2:node@c-1.me)  370776  | 366680 
+> [  32.999400] (2:node@c-1.me)  374872  | 366680 
+> [  32.999400] (2:node@c-1.me)  383064  | 366680 
+> [  32.999400] (2:node@c-1.me)  399448  | 366680 
+> [  32.999400] (2:node@c-1.me)  432216  | 366680 
+> [  32.999400] (2:node@c-1.me)  497752  | 366680 
+> [  32.999400] (2:node@c-1.me)  628824  | 366680 
+> [  32.999400] (2:node@c-1.me)  890968  | 366680 
+> [  32.999400] (2:node@c-1.me)  1415256  | 366680 
+> [  32.999400] (2:node@c-1.me)  2463832  | 366680 
+> [  32.999400] (2:node@c-1.me)  4560984  | 366680 
+> [  32.999400] (2:node@c-1.me)  8755288  | 366680 
+> [  32.999400] (2:node@c-1.me) Predecessor: 533744
+> [  33.999400] (2:node@c-1.me) My finger table:
+> [  33.999400] (2:node@c-1.me) Start | Succ 
+> [  33.999400] (2:node@c-1.me)  366681  |  42 
+> [  33.999400] (2:node@c-1.me)  366682  | 366680 
+> [  33.999400] (2:node@c-1.me)  366684  | 366680 
+> [  33.999400] (2:node@c-1.me)  366688  | 366680 
+> [  33.999400] (2:node@c-1.me)  366696  | 366680 
+> [  33.999400] (2:node@c-1.me)  366712  | 366680 
+> [  33.999400] (2:node@c-1.me)  366744  | 366680 
+> [  33.999400] (2:node@c-1.me)  366808  | 366680 
+> [  33.999400] (2:node@c-1.me)  366936  | 366680 
+> [  33.999400] (2:node@c-1.me)  367192  | 366680 
+> [  33.999400] (2:node@c-1.me)  367704  | 366680 
+> [  33.999400] (2:node@c-1.me)  368728  | 366680 
+> [  33.999400] (2:node@c-1.me)  370776  | 366680 
+> [  33.999400] (2:node@c-1.me)  374872  | 366680 
+> [  33.999400] (2:node@c-1.me)  383064  | 366680 
+> [  33.999400] (2:node@c-1.me)  399448  | 366680 
+> [  33.999400] (2:node@c-1.me)  432216  | 366680 
+> [  33.999400] (2:node@c-1.me)  497752  | 366680 
+> [  33.999400] (2:node@c-1.me)  628824  | 366680 
+> [  33.999400] (2:node@c-1.me)  890968  | 366680 
+> [  33.999400] (2:node@c-1.me)  1415256  | 366680 
+> [  33.999400] (2:node@c-1.me)  2463832  | 366680 
+> [  33.999400] (2:node@c-1.me)  4560984  | 366680 
+> [  33.999400] (2:node@c-1.me)  8755288  | 366680 
+> [  33.999400] (2:node@c-1.me) Predecessor: 16509405
+> [  35.999300] (4:node@c-3.me) My finger table:
+> [  35.999300] (4:node@c-3.me) Start | Succ 
+> [  35.999300] (4:node@c-3.me)  1319739  |  42 
+> [  35.999300] (4:node@c-3.me)  1319740  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319742  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319746  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319754  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319770  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319802  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319866  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319994  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1320250  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1320762  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1321786  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1323834  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1327930  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1336122  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1352506  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1385274  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1450810  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1581882  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1844026  | 1319738 
+> [  35.999300] (4:node@c-3.me)  2368314  | 1319738 
+> [  35.999300] (4:node@c-3.me)  3416890  | 1319738 
+> [  35.999300] (4:node@c-3.me)  5514042  | 1319738 
+> [  35.999300] (4:node@c-3.me)  9708346  | 1319738 
+> [  35.999300] (4:node@c-3.me) Predecessor: 16728096
+> [  49.999000] (1:node@c-0.me) My finger table:
+> [  49.999000] (1:node@c-0.me) Start | Succ 
+> [  49.999000] (1:node@c-0.me)   43  |  42 
+> [  49.999000] (1:node@c-0.me)   44  |  42 
+> [  49.999000] (1:node@c-0.me)   46  |  42 
+> [  49.999000] (1:node@c-0.me)   50  |  42 
+> [  49.999000] (1:node@c-0.me)   58  |  42 
+> [  49.999000] (1:node@c-0.me)   74  |  42 
+> [  49.999000] (1:node@c-0.me)  106  |  42 
+> [  49.999000] (1:node@c-0.me)  170  |  42 
+> [  49.999000] (1:node@c-0.me)  298  |  42 
+> [  49.999000] (1:node@c-0.me)  554  |  42 
+> [  49.999000] (1:node@c-0.me)  1066  |  42 
+> [  49.999000] (1:node@c-0.me)  2090  |  42 
+> [  49.999000] (1:node@c-0.me)  4138  |  42 
+> [  49.999000] (1:node@c-0.me)  8234  |  42 
+> [  49.999000] (1:node@c-0.me)  16426  |  42 
+> [  49.999000] (1:node@c-0.me)  32810  |  42 
+> [  49.999000] (1:node@c-0.me)  65578  |  42 
+> [  49.999000] (1:node@c-0.me)  131114  |  42 
+> [  49.999000] (1:node@c-0.me)  262186  |  42 
+> [  49.999000] (1:node@c-0.me)  524330  |  42 
+> [  49.999000] (1:node@c-0.me)  1048618  |  42 
+> [  49.999000] (1:node@c-0.me)  2097194  |  42 
+> [  49.999000] (1:node@c-0.me)  4194346  |  42 
+> [  49.999000] (1:node@c-0.me)  8388650  |  42 
+> [  49.999000] (1:node@c-0.me) Predecessor: 366680
+> [  59.998800] (1:node@c-0.me) My finger table:
+> [  59.998800] (1:node@c-0.me) Start | Succ 
+> [  59.998800] (1:node@c-0.me)   43  | 366680 
+> [  59.998800] (1:node@c-0.me)   44  |  42 
+> [  59.998800] (1:node@c-0.me)   46  |  42 
+> [  59.998800] (1:node@c-0.me)   50  |  42 
+> [  59.998800] (1:node@c-0.me)   58  |  42 
+> [  59.998800] (1:node@c-0.me)   74  |  42 
+> [  59.998800] (1:node@c-0.me)  106  |  42 
+> [  59.998800] (1:node@c-0.me)  170  |  42 
+> [  59.998800] (1:node@c-0.me)  298  |  42 
+> [  59.998800] (1:node@c-0.me)  554  |  42 
+> [  59.998800] (1:node@c-0.me)  1066  |  42 
+> [  59.998800] (1:node@c-0.me)  2090  |  42 
+> [  59.998800] (1:node@c-0.me)  4138  |  42 
+> [  59.998800] (1:node@c-0.me)  8234  |  42 
+> [  59.998800] (1:node@c-0.me)  16426  |  42 
+> [  59.998800] (1:node@c-0.me)  32810  |  42 
+> [  59.998800] (1:node@c-0.me)  65578  |  42 
+> [  59.998800] (1:node@c-0.me)  131114  |  42 
+> [  59.998800] (1:node@c-0.me)  262186  |  42 
+> [  59.998800] (1:node@c-0.me)  524330  |  42 
+> [  59.998800] (1:node@c-0.me)  1048618  |  42 
+> [  59.998800] (1:node@c-0.me)  2097194  |  42 
+> [  59.998800] (1:node@c-0.me)  4194346  |  42 
+> [  59.998800] (1:node@c-0.me)  8388650  |  42 
+> [  59.998800] (1:node@c-0.me) Predecessor: 1319738
+> [  69.998600] (1:node@c-0.me) My finger table:
+> [  69.998600] (1:node@c-0.me) Start | Succ 
+> [  69.998600] (1:node@c-0.me)   43  | 366680 
+> [  69.998600] (1:node@c-0.me)   44  |  42 
+> [  69.998600] (1:node@c-0.me)   46  |  42 
+> [  69.998600] (1:node@c-0.me)   50  |  42 
+> [  69.998600] (1:node@c-0.me)   58  |  42 
+> [  69.998600] (1:node@c-0.me)   74  |  42 
+> [  69.998600] (1:node@c-0.me)  106  |  42 
+> [  69.998600] (1:node@c-0.me)  170  |  42 
+> [  69.998600] (1:node@c-0.me)  298  |  42 
+> [  69.998600] (1:node@c-0.me)  554  |  42 
+> [  69.998600] (1:node@c-0.me)  1066  |  42 
+> [  69.998600] (1:node@c-0.me)  2090  |  42 
+> [  69.998600] (1:node@c-0.me)  4138  |  42 
+> [  69.998600] (1:node@c-0.me)  8234  |  42 
+> [  69.998600] (1:node@c-0.me)  16426  |  42 
+> [  69.998600] (1:node@c-0.me)  32810  |  42 
+> [  69.998600] (1:node@c-0.me)  65578  |  42 
+> [  69.998600] (1:node@c-0.me)  131114  |  42 
+> [  69.998600] (1:node@c-0.me)  262186  |  42 
+> [  69.998600] (1:node@c-0.me)  524330  |  42 
+> [  69.998600] (1:node@c-0.me)  1048618  |  42 
+> [  69.998600] (1:node@c-0.me)  2097194  |  42 
+> [  69.998600] (1:node@c-0.me)  4194346  |  42 
+> [  69.998600] (1:node@c-0.me)  8388650  |  42 
+> [  69.998600] (1:node@c-0.me) Predecessor: 6518808
+> [  81.998500] (2:node@c-1.me) My finger table:
+> [  81.998500] (2:node@c-1.me) Start | Succ 
+> [  81.998500] (2:node@c-1.me)  366681  | 6518808 
+> [  81.998500] (2:node@c-1.me)  366682  | 366680 
+> [  81.998500] (2:node@c-1.me)  366684  | 366680 
+> [  81.998500] (2:node@c-1.me)  366688  | 366680 
+> [  81.998500] (2:node@c-1.me)  366696  | 366680 
+> [  81.998500] (2:node@c-1.me)  366712  | 366680 
+> [  81.998500] (2:node@c-1.me)  366744  | 366680 
+> [  81.998500] (2:node@c-1.me)  366808  | 366680 
+> [  81.998500] (2:node@c-1.me)  366936  | 366680 
+> [  81.998500] (2:node@c-1.me)  367192  | 366680 
+> [  81.998500] (2:node@c-1.me)  367704  | 366680 
+> [  81.998500] (2:node@c-1.me)  368728  | 366680 
+> [  81.998500] (2:node@c-1.me)  370776  | 366680 
+> [  81.998500] (2:node@c-1.me)  374872  | 366680 
+> [  81.998500] (2:node@c-1.me)  383064  | 366680 
+> [  81.998500] (2:node@c-1.me)  399448  | 366680 
+> [  81.998500] (2:node@c-1.me)  432216  | 366680 
+> [  81.998500] (2:node@c-1.me)  497752  | 366680 
+> [  81.998500] (2:node@c-1.me)  628824  | 366680 
+> [  81.998500] (2:node@c-1.me)  890968  | 366680 
+> [  81.998500] (2:node@c-1.me)  1415256  | 366680 
+> [  81.998500] (2:node@c-1.me)  2463832  | 366680 
+> [  81.998500] (2:node@c-1.me)  4560984  | 366680 
+> [  81.998500] (2:node@c-1.me)  8755288  | 366680 
+> [  81.998500] (2:node@c-1.me) Predecessor: 42
+> [  98.998100] (7:node@c-6.me) My finger table:
+> [  98.998100] (7:node@c-6.me) Start | Succ 
+> [  98.998100] (7:node@c-6.me)  16728097  | 1319738 
+> [  98.998100] (7:node@c-6.me)  16728098  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728100  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728104  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728112  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728128  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728160  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728224  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728352  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728608  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16729120  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16730144  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16732192  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16736288  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16744480  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16760864  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16416  | 16728096 
+> [  98.998100] (7:node@c-6.me)  81952  | 16728096 
+> [  98.998100] (7:node@c-6.me)  213024  | 16728096 
+> [  98.998100] (7:node@c-6.me)  475168  | 16728096 
+> [  98.998100] (7:node@c-6.me)  999456  | 16728096 
+> [  98.998100] (7:node@c-6.me)  2048032  | 16728096 
+> [  98.998100] (7:node@c-6.me)  4145184  | 16728096 
+> [  98.998100] (7:node@c-6.me)  8339488  | 16728096 
+> [  98.998100] (7:node@c-6.me) Predecessor: 2015253
+> [ 110.998000] (9:node@c-8.me) My finger table:
+> [ 110.998000] (9:node@c-8.me) Start | Succ 
+> [ 110.998000] (9:node@c-8.me)  6518809  |  42 
+> [ 110.998000] (9:node@c-8.me)  6518810  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518812  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518816  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518824  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518840  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518872  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518936  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6519064  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6519320  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6519832  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6520856  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6522904  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6527000  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6535192  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6551576  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6584344  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6649880  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6780952  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  7043096  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  7567384  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  8615960  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  10713112  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  14907416  | 6518808 
+> [ 110.998000] (9:node@c-8.me) Predecessor: 366680
+> [ 111.998000] (9:node@c-8.me) My finger table:
+> [ 111.998000] (9:node@c-8.me) Start | Succ 
+> [ 111.998000] (9:node@c-8.me)  6518809  |  42 
+> [ 111.998000] (9:node@c-8.me)  6518810  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518812  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518816  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518824  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518840  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518872  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518936  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6519064  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6519320  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6519832  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6520856  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6522904  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6527000  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6535192  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6551576  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6584344  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6649880  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6780952  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  7043096  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  7567384  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  8615960  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  10713112  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  14907416  | 6518808 
+> [ 111.998000] (9:node@c-8.me) Predecessor: 1319738
+> [ 127.997700] (8:node@c-7.me) My finger table:
+> [ 127.997700] (8:node@c-7.me) Start | Succ 
+> [ 127.997700] (8:node@c-7.me)  10004761  | 16509405 
+> [ 127.997700] (8:node@c-7.me)  10004762  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004764  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004768  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004776  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004792  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004824  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004888  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10005016  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10005272  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10005784  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10006808  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10008856  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10012952  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10021144  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10037528  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10070296  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10135832  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10266904  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10529048  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  11053336  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  12101912  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  14199064  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  1616152  | 10004760 
+> [ 127.997700] (8:node@c-7.me) Predecessor: 533744
+> [ 137.997600] (1:node@c-0.me) My finger table:
+> [ 137.997600] (1:node@c-0.me) Start | Succ 
+> [ 137.997600] (1:node@c-0.me)   43  | 366680 
+> [ 137.997600] (1:node@c-0.me)   44  |  42 
+> [ 137.997600] (1:node@c-0.me)   46  |  42 
+> [ 137.997600] (1:node@c-0.me)   50  |  42 
+> [ 137.997600] (1:node@c-0.me)   58  |  42 
+> [ 137.997600] (1:node@c-0.me)   74  |  42 
+> [ 137.997600] (1:node@c-0.me)  106  |  42 
+> [ 137.997600] (1:node@c-0.me)  170  |  42 
+> [ 137.997600] (1:node@c-0.me)  298  |  42 
+> [ 137.997600] (1:node@c-0.me)  554  |  42 
+> [ 137.997600] (1:node@c-0.me)  1066  |  42 
+> [ 137.997600] (1:node@c-0.me)  2090  |  42 
+> [ 137.997600] (1:node@c-0.me)  4138  |  42 
+> [ 137.997600] (1:node@c-0.me)  8234  |  42 
+> [ 137.997600] (1:node@c-0.me)  16426  |  42 
+> [ 137.997600] (1:node@c-0.me)  32810  |  42 
+> [ 137.997600] (1:node@c-0.me)  65578  |  42 
+> [ 137.997600] (1:node@c-0.me)  131114  |  42 
+> [ 137.997600] (1:node@c-0.me)  262186  |  42 
+> [ 137.997600] (1:node@c-0.me)  524330  |  42 
+> [ 137.997600] (1:node@c-0.me)  1048618  |  42 
+> [ 137.997600] (1:node@c-0.me)  2097194  |  42 
+> [ 137.997600] (1:node@c-0.me)  4194346  |  42 
+> [ 137.997600] (1:node@c-0.me)  8388650  |  42 
+> [ 137.997600] (1:node@c-0.me) Predecessor: 16509405
+> [ 165.997100] (4:node@c-3.me) My finger table:
+> [ 165.997100] (4:node@c-3.me) Start | Succ 
+> [ 165.997100] (4:node@c-3.me)  1319739  | 6518808 
+> [ 165.997100] (4:node@c-3.me)  1319740  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319742  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319746  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319754  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319770  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319802  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319866  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319994  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1320250  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1320762  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1321786  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1323834  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1327930  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1336122  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1352506  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1385274  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1450810  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1581882  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1844026  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  2368314  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  3416890  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  5514042  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  9708346  | 1319738 
+> [ 165.997100] (4:node@c-3.me) Predecessor: 366680
+> [ 209.996500] (8:node@c-7.me) My finger table:
+> [ 209.996500] (8:node@c-7.me) Start | Succ 
+> [ 209.996500] (8:node@c-7.me)  10004761  | 16509405 
+> [ 209.996500] (8:node@c-7.me)  10004762  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004764  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004768  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004776  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004792  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004824  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004888  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10005016  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10005272  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10005784  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10006808  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10008856  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10012952  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10021144  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10037528  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10070296  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10135832  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10266904  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10529048  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  11053336  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  12101912  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  14199064  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  1616152  | 10004760 
+> [ 209.996500] (8:node@c-7.me) Predecessor: 6518808
+> [ 247.995800] (6:node@c-5.me) My finger table:
+> [ 247.995800] (6:node@c-5.me) Start | Succ 
+> [ 247.995800] (6:node@c-5.me)  10874877  | 533744 
+> [ 247.995800] (6:node@c-5.me)  10874878  | 533744 
+> [ 247.995800] (6:node@c-5.me)  10874880  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10874884  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10874892  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10874908  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10874940  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10875004  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10875132  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10875388  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10875900  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10876924  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10878972  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10883068  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10891260  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10907644  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10940412  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  11005948  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  11137020  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  11399164  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  11923452  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  12972028  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  15069180  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  2486268  | 10874876 
+> [ 247.995800] (6:node@c-5.me) Predecessor: -1
+> [ 249.995700] (7:node@c-6.me) My finger table:
+> [ 249.995700] (7:node@c-6.me) Start | Succ 
+> [ 249.995700] (7:node@c-6.me)  16728097  |  42 
+> [ 249.995700] (7:node@c-6.me)  16728098  |  42 
+> [ 249.995700] (7:node@c-6.me)  16728100  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728104  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728112  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728128  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728160  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728224  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728352  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728608  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16729120  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16730144  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16732192  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16736288  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16744480  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16760864  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16416  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  81952  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  213024  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  475168  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  999456  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  2048032  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  4145184  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  8339488  | 16728096 
+> [ 249.995700] (7:node@c-6.me) Predecessor: 2015253
+> [ 251.995700] (8:node@c-7.me) My finger table:
+> [ 251.995700] (8:node@c-7.me) Start | Succ 
+> [ 251.995700] (8:node@c-7.me)  10004761  | 16509405 
+> [ 251.995700] (8:node@c-7.me)  10004762  | 16509405 
+> [ 251.995700] (8:node@c-7.me)  10004764  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10004768  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10004776  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10004792  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10004824  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10004888  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10005016  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10005272  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10005784  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10006808  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10008856  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10012952  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10021144  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10037528  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10070296  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10135832  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10266904  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10529048  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  11053336  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  12101912  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  14199064  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  1616152  | 10004760 
+> [ 251.995700] (8:node@c-7.me) Predecessor: 6518808
+> [ 252.995700] (2:node@c-1.me) My finger table:
+> [ 252.995700] (2:node@c-1.me) Start | Succ 
+> [ 252.995700] (2:node@c-1.me)  366681  | 1319738 
+> [ 252.995700] (2:node@c-1.me)  366682  | 1319738 
+> [ 252.995700] (2:node@c-1.me)  366684  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366688  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366696  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366712  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366744  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366808  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366936  | 366680 
+> [ 252.995700] (2:node@c-1.me)  367192  | 366680 
+> [ 252.995700] (2:node@c-1.me)  367704  | 366680 
+> [ 252.995700] (2:node@c-1.me)  368728  | 366680 
+> [ 252.995700] (2:node@c-1.me)  370776  | 366680 
+> [ 252.995700] (2:node@c-1.me)  374872  | 366680 
+> [ 252.995700] (2:node@c-1.me)  383064  | 366680 
+> [ 252.995700] (2:node@c-1.me)  399448  | 366680 
+> [ 252.995700] (2:node@c-1.me)  432216  | 366680 
+> [ 252.995700] (2:node@c-1.me)  497752  | 366680 
+> [ 252.995700] (2:node@c-1.me)  628824  | 366680 
+> [ 252.995700] (2:node@c-1.me)  890968  | 366680 
+> [ 252.995700] (2:node@c-1.me)  1415256  | 366680 
+> [ 252.995700] (2:node@c-1.me)  2463832  | 366680 
+> [ 252.995700] (2:node@c-1.me)  4560984  | 366680 
+> [ 252.995700] (2:node@c-1.me)  8755288  | 366680 
+> [ 252.995700] (2:node@c-1.me) Predecessor: 42
+> [ 254.995700] (1:node@c-0.me) My finger table:
+> [ 254.995700] (1:node@c-0.me) Start | Succ 
+> [ 254.995700] (1:node@c-0.me)   43  | 366680 
+> [ 254.995700] (1:node@c-0.me)   44  |  42 
+> [ 254.995700] (1:node@c-0.me)   46  |  42 
+> [ 254.995700] (1:node@c-0.me)   50  |  42 
+> [ 254.995700] (1:node@c-0.me)   58  |  42 
+> [ 254.995700] (1:node@c-0.me)   74  |  42 
+> [ 254.995700] (1:node@c-0.me)  106  |  42 
+> [ 254.995700] (1:node@c-0.me)  170  |  42 
+> [ 254.995700] (1:node@c-0.me)  298  |  42 
+> [ 254.995700] (1:node@c-0.me)  554  |  42 
+> [ 254.995700] (1:node@c-0.me)  1066  |  42 
+> [ 254.995700] (1:node@c-0.me)  2090  |  42 
+> [ 254.995700] (1:node@c-0.me)  4138  |  42 
+> [ 254.995700] (1:node@c-0.me)  8234  |  42 
+> [ 254.995700] (1:node@c-0.me)  16426  |  42 
+> [ 254.995700] (1:node@c-0.me)  32810  |  42 
+> [ 254.995700] (1:node@c-0.me)  65578  |  42 
+> [ 254.995700] (1:node@c-0.me)  131114  |  42 
+> [ 254.995700] (1:node@c-0.me)  262186  |  42 
+> [ 254.995700] (1:node@c-0.me)  524330  |  42 
+> [ 254.995700] (1:node@c-0.me)  1048618  |  42 
+> [ 254.995700] (1:node@c-0.me)  2097194  |  42 
+> [ 254.995700] (1:node@c-0.me)  4194346  |  42 
+> [ 254.995700] (1:node@c-0.me)  8388650  |  42 
+> [ 254.995700] (1:node@c-0.me) Predecessor: 16728096
+> [ 254.995700] (4:node@c-3.me) My finger table:
+> [ 254.995700] (4:node@c-3.me) Start | Succ 
+> [ 254.995700] (4:node@c-3.me)  1319739  | 6518808 
+> [ 254.995700] (4:node@c-3.me)  1319740  | 6518808 
+> [ 254.995700] (4:node@c-3.me)  1319742  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319746  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319754  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319770  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319802  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319866  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319994  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1320250  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1320762  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1321786  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1323834  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1327930  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1336122  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1352506  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1385274  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1450810  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1581882  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1844026  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  2368314  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  3416890  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  5514042  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  9708346  | 1319738 
+> [ 254.995700] (4:node@c-3.me) Predecessor: 366680
+> [ 255.995700] (1:node@c-0.me) My finger table:
+> [ 255.995700] (1:node@c-0.me) Start | Succ 
+> [ 255.995700] (1:node@c-0.me)   43  | 366680 
+> [ 255.995700] (1:node@c-0.me)   44  | 366680 
+> [ 255.995700] (1:node@c-0.me)   46  |  42 
+> [ 255.995700] (1:node@c-0.me)   50  |  42 
+> [ 255.995700] (1:node@c-0.me)   58  |  42 
+> [ 255.995700] (1:node@c-0.me)   74  |  42 
+> [ 255.995700] (1:node@c-0.me)  106  |  42 
+> [ 255.995700] (1:node@c-0.me)  170  |  42 
+> [ 255.995700] (1:node@c-0.me)  298  |  42 
+> [ 255.995700] (1:node@c-0.me)  554  |  42 
+> [ 255.995700] (1:node@c-0.me)  1066  |  42 
+> [ 255.995700] (1:node@c-0.me)  2090  |  42 
+> [ 255.995700] (1:node@c-0.me)  4138  |  42 
+> [ 255.995700] (1:node@c-0.me)  8234  |  42 
+> [ 255.995700] (1:node@c-0.me)  16426  |  42 
+> [ 255.995700] (1:node@c-0.me)  32810  |  42 
+> [ 255.995700] (1:node@c-0.me)  65578  |  42 
+> [ 255.995700] (1:node@c-0.me)  131114  |  42 
+> [ 255.995700] (1:node@c-0.me)  262186  |  42 
+> [ 255.995700] (1:node@c-0.me)  524330  |  42 
+> [ 255.995700] (1:node@c-0.me)  1048618  |  42 
+> [ 255.995700] (1:node@c-0.me)  2097194  |  42 
+> [ 255.995700] (1:node@c-0.me)  4194346  |  42 
+> [ 255.995700] (1:node@c-0.me)  8388650  |  42 
+> [ 255.995700] (1:node@c-0.me) Predecessor: 16728096
+> [ 255.995700] (5:node@c-4.me) My finger table:
+> [ 255.995700] (5:node@c-4.me) Start | Succ 
+> [ 255.995700] (5:node@c-4.me)  16509406  |  42 
+> [ 255.995700] (5:node@c-4.me)  16509407  |  42 
+> [ 255.995700] (5:node@c-4.me)  16509409  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509413  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509421  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509437  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509469  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509533  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509661  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509917  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16510429  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16511453  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16513501  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16517597  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16525789  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16542173  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16574941  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16640477  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16771549  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  256477  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  780765  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  1829341  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  3926493  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  8120797  | 16509405 
+> [ 255.995700] (5:node@c-4.me) Predecessor: 10004760
+> [ 257.995700] (10:node@c-9.me) My finger table:
+> [ 257.995700] (10:node@c-9.me) Start | Succ 
+> [ 257.995700] (10:node@c-9.me)  2015254  | 16728096 
+> [ 257.995700] (10:node@c-9.me)  2015255  | 16728096 
+> [ 257.995700] (10:node@c-9.me)  2015257  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015261  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015269  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015285  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015317  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015381  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015509  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015765  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2016277  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2017301  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2019349  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2023445  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2031637  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2048021  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2080789  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2146325  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2277397  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2539541  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  3063829  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  4112405  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  6209557  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  10403861  | 2015253 
+> [ 257.995700] (10:node@c-9.me) Predecessor: -1
+> [ 263.995700] (3:node@c-2.me) My finger table:
+> [ 263.995700] (3:node@c-2.me) Start | Succ 
+> [ 263.995700] (3:node@c-2.me)  533745  | 1319738 
+> [ 263.995700] (3:node@c-2.me)  533746  | 1319738 
+> [ 263.995700] (3:node@c-2.me)  533748  | 533744 
+> [ 263.995700] (3:node@c-2.me)  533752  | 533744 
+> [ 263.995700] (3:node@c-2.me)  533760  | 533744 
+> [ 263.995700] (3:node@c-2.me)  533776  | 533744 
+> [ 263.995700] (3:node@c-2.me)  533808  | 533744 
+> [ 263.995700] (3:node@c-2.me)  533872  | 533744 
+> [ 263.995700] (3:node@c-2.me)  534000  | 533744 
+> [ 263.995700] (3:node@c-2.me)  534256  | 533744 
+> [ 263.995700] (3:node@c-2.me)  534768  | 533744 
+> [ 263.995700] (3:node@c-2.me)  535792  | 533744 
+> [ 263.995700] (3:node@c-2.me)  537840  | 533744 
+> [ 263.995700] (3:node@c-2.me)  541936  | 533744 
+> [ 263.995700] (3:node@c-2.me)  550128  | 533744 
+> [ 263.995700] (3:node@c-2.me)  566512  | 533744 
+> [ 263.995700] (3:node@c-2.me)  599280  | 533744 
+> [ 263.995700] (3:node@c-2.me)  664816  | 533744 
+> [ 263.995700] (3:node@c-2.me)  795888  | 533744 
+> [ 263.995700] (3:node@c-2.me)  1058032  | 533744 
+> [ 263.995700] (3:node@c-2.me)  1582320  | 533744 
+> [ 263.995700] (3:node@c-2.me)  2630896  | 533744 
+> [ 263.995700] (3:node@c-2.me)  4728048  | 533744 
+> [ 263.995700] (3:node@c-2.me)  8922352  | 533744 
+> [ 263.995700] (3:node@c-2.me) Predecessor: 10874876
+> [ 264.995500] (9:node@c-8.me) My finger table:
+> [ 264.995500] (9:node@c-8.me) Start | Succ 
+> [ 264.995500] (9:node@c-8.me)  6518809  | 10004760 
+> [ 264.995500] (9:node@c-8.me)  6518810  | 10004760 
+> [ 264.995500] (9:node@c-8.me)  6518812  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6518816  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6518824  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6518840  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6518872  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6518936  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6519064  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6519320  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6519832  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6520856  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6522904  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6527000  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6535192  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6551576  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6584344  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6649880  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6780952  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  7043096  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  7567384  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  8615960  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  10713112  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  14907416  | 6518808 
+> [ 264.995500] (9:node@c-8.me) Predecessor: 1319738
+> [ 310.994900] (4:node@c-3.me) My finger table:
+> [ 310.994900] (4:node@c-3.me) Start | Succ 
+> [ 310.994900] (4:node@c-3.me)  1319739  | 6518808 
+> [ 310.994900] (4:node@c-3.me)  1319740  | 6518808 
+> [ 310.994900] (4:node@c-3.me)  1319742  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319746  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319754  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319770  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319802  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319866  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319994  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1320250  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1320762  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1321786  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1323834  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1327930  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1336122  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1352506  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1385274  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1450810  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1581882  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1844026  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  2368314  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  3416890  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  5514042  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  9708346  | 1319738 
+> [ 310.994900] (4:node@c-3.me) Predecessor: 533744
+> [ 335.994500] (7:node@c-6.me) My finger table:
+> [ 335.994500] (7:node@c-6.me) Start | Succ 
+> [ 335.994500] (7:node@c-6.me)  16728097  |  42 
+> [ 335.994500] (7:node@c-6.me)  16728098  |  42 
+> [ 335.994500] (7:node@c-6.me)  16728100  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728104  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728112  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728128  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728160  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728224  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728352  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728608  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16729120  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16730144  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16732192  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16736288  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16744480  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16760864  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16416  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  81952  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  213024  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  475168  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  999456  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  2048032  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  4145184  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  8339488  | 16728096 
+> [ 335.994500] (7:node@c-6.me) Predecessor: 16509405
+> [ 366.994000] (3:node@c-2.me) My finger table:
+> [ 366.994000] (3:node@c-2.me) Start | Succ 
+> [ 366.994000] (3:node@c-2.me)  533745  | 1319738 
+> [ 366.994000] (3:node@c-2.me)  533746  | 1319738 
+> [ 366.994000] (3:node@c-2.me)  533748  | 533744 
+> [ 366.994000] (3:node@c-2.me)  533752  | 533744 
+> [ 366.994000] (3:node@c-2.me)  533760  | 533744 
+> [ 366.994000] (3:node@c-2.me)  533776  | 533744 
+> [ 366.994000] (3:node@c-2.me)  533808  | 533744 
+> [ 366.994000] (3:node@c-2.me)  533872  | 533744 
+> [ 366.994000] (3:node@c-2.me)  534000  | 533744 
+> [ 366.994000] (3:node@c-2.me)  534256  | 533744 
+> [ 366.994000] (3:node@c-2.me)  534768  | 533744 
+> [ 366.994000] (3:node@c-2.me)  535792  | 533744 
+> [ 366.994000] (3:node@c-2.me)  537840  | 533744 
+> [ 366.994000] (3:node@c-2.me)  541936  | 533744 
+> [ 366.994000] (3:node@c-2.me)  550128  | 533744 
+> [ 366.994000] (3:node@c-2.me)  566512  | 533744 
+> [ 366.994000] (3:node@c-2.me)  599280  | 533744 
+> [ 366.994000] (3:node@c-2.me)  664816  | 533744 
+> [ 366.994000] (3:node@c-2.me)  795888  | 533744 
+> [ 366.994000] (3:node@c-2.me)  1058032  | 533744 
+> [ 366.994000] (3:node@c-2.me)  1582320  | 533744 
+> [ 366.994000] (3:node@c-2.me)  2630896  | 533744 
+> [ 366.994000] (3:node@c-2.me)  4728048  | 533744 
+> [ 366.994000] (3:node@c-2.me)  8922352  | 533744 
+> [ 366.994000] (3:node@c-2.me) Predecessor: 366680
+> [ 370.993500] (6:node@c-5.me) My finger table:
+> [ 370.993500] (6:node@c-5.me) Start | Succ 
+> [ 370.993500] (6:node@c-5.me)  10874877  | 533744 
+> [ 370.993500] (6:node@c-5.me)  10874878  | 533744 
+> [ 370.993500] (6:node@c-5.me)  10874880  | 533744 
+> [ 370.993500] (6:node@c-5.me)  10874884  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10874892  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10874908  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10874940  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10875004  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10875132  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10875388  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10875900  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10876924  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10878972  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10883068  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10891260  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10907644  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10940412  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  11005948  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  11137020  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  11399164  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  11923452  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  12972028  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  15069180  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  2486268  | 10874876 
+> [ 370.993500] (6:node@c-5.me) Predecessor: -1
+> [ 375.993800] (2:node@c-1.me) My finger table:
+> [ 375.993800] (2:node@c-1.me) Start | Succ 
+> [ 375.993800] (2:node@c-1.me)  366681  | 533744 
+> [ 375.993800] (2:node@c-1.me)  366682  | 1319738 
+> [ 375.993800] (2:node@c-1.me)  366684  | 533744 
+> [ 375.993800] (2:node@c-1.me)  366688  | 366680 
+> [ 375.993800] (2:node@c-1.me)  366696  | 366680 
+> [ 375.993800] (2:node@c-1.me)  366712  | 366680 
+> [ 375.993800] (2:node@c-1.me)  366744  | 366680 
+> [ 375.993800] (2:node@c-1.me)  366808  | 366680 
+> [ 375.993800] (2:node@c-1.me)  366936  | 366680 
+> [ 375.993800] (2:node@c-1.me)  367192  | 366680 
+> [ 375.993800] (2:node@c-1.me)  367704  | 366680 
+> [ 375.993800] (2:node@c-1.me)  368728  | 366680 
+> [ 375.993800] (2:node@c-1.me)  370776  | 366680 
+> [ 375.993800] (2:node@c-1.me)  374872  | 366680 
+> [ 375.993800] (2:node@c-1.me)  383064  | 366680 
+> [ 375.993800] (2:node@c-1.me)  399448  | 366680 
+> [ 375.993800] (2:node@c-1.me)  432216  | 366680 
+> [ 375.993800] (2:node@c-1.me)  497752  | 366680 
+> [ 375.993800] (2:node@c-1.me)  628824  | 366680 
+> [ 375.993800] (2:node@c-1.me)  890968  | 366680 
+> [ 375.993800] (2:node@c-1.me)  1415256  | 366680 
+> [ 375.993800] (2:node@c-1.me)  2463832  | 366680 
+> [ 375.993800] (2:node@c-1.me)  4560984  | 366680 
+> [ 375.993800] (2:node@c-1.me)  8755288  | 366680 
+> [ 375.993800] (2:node@c-1.me) Predecessor: 42
+> [ 376.993800] (1:node@c-0.me) My finger table:
+> [ 376.993800] (1:node@c-0.me) Start | Succ 
+> [ 376.993800] (1:node@c-0.me)   43  | 366680 
+> [ 376.993800] (1:node@c-0.me)   44  | 366680 
+> [ 376.993800] (1:node@c-0.me)   46  | 366680 
+> [ 376.993800] (1:node@c-0.me)   50  |  42 
+> [ 376.993800] (1:node@c-0.me)   58  |  42 
+> [ 376.993800] (1:node@c-0.me)   74  |  42 
+> [ 376.993800] (1:node@c-0.me)  106  |  42 
+> [ 376.993800] (1:node@c-0.me)  170  |  42 
+> [ 376.993800] (1:node@c-0.me)  298  |  42 
+> [ 376.993800] (1:node@c-0.me)  554  |  42 
+> [ 376.993800] (1:node@c-0.me)  1066  |  42 
+> [ 376.993800] (1:node@c-0.me)  2090  |  42 
+> [ 376.993800] (1:node@c-0.me)  4138  |  42 
+> [ 376.993800] (1:node@c-0.me)  8234  |  42 
+> [ 376.993800] (1:node@c-0.me)  16426  |  42 
+> [ 376.993800] (1:node@c-0.me)  32810  |  42 
+> [ 376.993800] (1:node@c-0.me)  65578  |  42 
+> [ 376.993800] (1:node@c-0.me)  131114  |  42 
+> [ 376.993800] (1:node@c-0.me)  262186  |  42 
+> [ 376.993800] (1:node@c-0.me)  524330  |  42 
+> [ 376.993800] (1:node@c-0.me)  1048618  |  42 
+> [ 376.993800] (1:node@c-0.me)  2097194  |  42 
+> [ 376.993800] (1:node@c-0.me)  4194346  |  42 
+> [ 376.993800] (1:node@c-0.me)  8388650  |  42 
+> [ 376.993800] (1:node@c-0.me) Predecessor: 16728096
+> [ 376.993800] (4:node@c-3.me) My finger table:
+> [ 376.993800] (4:node@c-3.me) Start | Succ 
+> [ 376.993800] (4:node@c-3.me)  1319739  | 6518808 
+> [ 376.993800] (4:node@c-3.me)  1319740  | 6518808 
+> [ 376.993800] (4:node@c-3.me)  1319742  | 6518808 
+> [ 376.993800] (4:node@c-3.me)  1319746  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1319754  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1319770  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1319802  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1319866  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1319994  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1320250  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1320762  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1321786  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1323834  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1327930  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1336122  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1352506  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1385274  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1450810  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1581882  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1844026  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  2368314  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  3416890  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  5514042  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  9708346  | 1319738 
+> [ 376.993800] (4:node@c-3.me) Predecessor: 533744
+> [ 378.993800] (10:node@c-9.me) My finger table:
+> [ 378.993800] (10:node@c-9.me) Start | Succ 
+> [ 378.993800] (10:node@c-9.me)  2015254  | 10004760 
+> [ 378.993800] (10:node@c-9.me)  2015255  | 16728096 
+> [ 378.993800] (10:node@c-9.me)  2015257  | 10004760 
+> [ 378.993800] (10:node@c-9.me)  2015261  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015269  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015285  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015317  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015381  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015509  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015765  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2016277  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2017301  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2019349  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2023445  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2031637  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2048021  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2080789  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2146325  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2277397  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2539541  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  3063829  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  4112405  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  6209557  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  10403861  | 2015253 
+> [ 378.993800] (10:node@c-9.me) Predecessor: -1
+> [ 378.993800] (5:node@c-4.me) My finger table:
+> [ 378.993800] (5:node@c-4.me) Start | Succ 
+> [ 378.993800] (5:node@c-4.me)  16509406  | 16728096 
+> [ 378.993800] (5:node@c-4.me)  16509407  |  42 
+> [ 378.993800] (5:node@c-4.me)  16509409  | 16728096 
+> [ 378.993800] (5:node@c-4.me)  16509413  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509421  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509437  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509469  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509533  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509661  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509917  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16510429  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16511453  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16513501  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16517597  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16525789  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16542173  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16574941  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16640477  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16771549  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  256477  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  780765  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  1829341  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  3926493  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  8120797  | 16509405 
+> [ 378.993800] (5:node@c-4.me) Predecessor: 10004760
+> [ 379.993800] (8:node@c-7.me) My finger table:
+> [ 379.993800] (8:node@c-7.me) Start | Succ 
+> [ 379.993800] (8:node@c-7.me)  10004761  | 16509405 
+> [ 379.993800] (8:node@c-7.me)  10004762  | 16509405 
+> [ 379.993800] (8:node@c-7.me)  10004764  | 16509405 
+> [ 379.993800] (8:node@c-7.me)  10004768  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10004776  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10004792  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10004824  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10004888  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10005016  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10005272  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10005784  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10006808  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10008856  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10012952  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10021144  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10037528  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10070296  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10135832  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10266904  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10529048  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  11053336  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  12101912  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  14199064  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  1616152  | 10004760 
+> [ 379.993800] (8:node@c-7.me) Predecessor: 6518808
+> [ 385.993700] (3:node@c-2.me) My finger table:
+> [ 385.993700] (3:node@c-2.me) Start | Succ 
+> [ 385.993700] (3:node@c-2.me)  533745  | 1319738 
+> [ 385.993700] (3:node@c-2.me)  533746  | 1319738 
+> [ 385.993700] (3:node@c-2.me)  533748  | 1319738 
+> [ 385.993700] (3:node@c-2.me)  533752  | 533744 
+> [ 385.993700] (3:node@c-2.me)  533760  | 533744 
+> [ 385.993700] (3:node@c-2.me)  533776  | 533744 
+> [ 385.993700] (3:node@c-2.me)  533808  | 533744 
+> [ 385.993700] (3:node@c-2.me)  533872  | 533744 
+> [ 385.993700] (3:node@c-2.me)  534000  | 533744 
+> [ 385.993700] (3:node@c-2.me)  534256  | 533744 
+> [ 385.993700] (3:node@c-2.me)  534768  | 533744 
+> [ 385.993700] (3:node@c-2.me)  535792  | 533744 
+> [ 385.993700] (3:node@c-2.me)  537840  | 533744 
+> [ 385.993700] (3:node@c-2.me)  541936  | 533744 
+> [ 385.993700] (3:node@c-2.me)  550128  | 533744 
+> [ 385.993700] (3:node@c-2.me)  566512  | 533744 
+> [ 385.993700] (3:node@c-2.me)  599280  | 533744 
+> [ 385.993700] (3:node@c-2.me)  664816  | 533744 
+> [ 385.993700] (3:node@c-2.me)  795888  | 533744 
+> [ 385.993700] (3:node@c-2.me)  1058032  | 533744 
+> [ 385.993700] (3:node@c-2.me)  1582320  | 533744 
+> [ 385.993700] (3:node@c-2.me)  2630896  | 533744 
+> [ 385.993700] (3:node@c-2.me)  4728048  | 533744 
+> [ 385.993700] (3:node@c-2.me)  8922352  | 533744 
+> [ 385.993700] (3:node@c-2.me) Predecessor: 366680
+> [ 387.993700] (7:node@c-6.me) My finger table:
+> [ 387.993700] (7:node@c-6.me) Start | Succ 
+> [ 387.993700] (7:node@c-6.me)  16728097  |  42 
+> [ 387.993700] (7:node@c-6.me)  16728098  |  42 
+> [ 387.993700] (7:node@c-6.me)  16728100  |  42 
+> [ 387.993700] (7:node@c-6.me)  16728104  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728112  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728128  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728160  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728224  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728352  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728608  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16729120  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16730144  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16732192  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16736288  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16744480  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16760864  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16416  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  81952  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  213024  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  475168  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  999456  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  2048032  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  4145184  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  8339488  | 16728096 
+> [ 387.993700] (7:node@c-6.me) Predecessor: 16509405
+> [ 389.993600] (9:node@c-8.me) My finger table:
+> [ 389.993600] (9:node@c-8.me) Start | Succ 
+> [ 389.993600] (9:node@c-8.me)  6518809  | 10004760 
+> [ 389.993600] (9:node@c-8.me)  6518810  | 10004760 
+> [ 389.993600] (9:node@c-8.me)  6518812  | 10004760 
+> [ 389.993600] (9:node@c-8.me)  6518816  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6518824  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6518840  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6518872  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6518936  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6519064  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6519320  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6519832  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6520856  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6522904  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6527000  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6535192  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6551576  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6584344  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6649880  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6780952  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  7043096  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  7567384  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  8615960  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  10713112  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  14907416  | 6518808 
+> [ 389.993600] (9:node@c-8.me) Predecessor: 1319738
+> [ 435.993000] (9:node@c-8.me) My finger table:
+> [ 435.993000] (9:node@c-8.me) Start | Succ 
+> [ 435.993000] (9:node@c-8.me)  6518809  | 10004760 
+> [ 435.993000] (9:node@c-8.me)  6518810  | 10004760 
+> [ 435.993000] (9:node@c-8.me)  6518812  | 10004760 
+> [ 435.993000] (9:node@c-8.me)  6518816  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6518824  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6518840  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6518872  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6518936  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6519064  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6519320  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6519832  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6520856  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6522904  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6527000  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6535192  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6551576  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6584344  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6649880  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6780952  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  7043096  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  7567384  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  8615960  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  10713112  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  14907416  | 6518808 
+> [ 435.993000] (9:node@c-8.me) Predecessor: 2015253
+> [ 492.992000] (6:node@c-5.me) My finger table:
+> [ 492.992000] (6:node@c-5.me) Start | Succ 
+> [ 492.992000] (6:node@c-5.me)  10874877  | 16509405 
+> [ 492.992000] (6:node@c-5.me)  10874878  | 533744 
+> [ 492.992000] (6:node@c-5.me)  10874880  | 533744 
+> [ 492.992000] (6:node@c-5.me)  10874884  | 16509405 
+> [ 492.992000] (6:node@c-5.me)  10874892  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10874908  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10874940  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10875004  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10875132  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10875388  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10875900  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10876924  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10878972  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10883068  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10891260  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10907644  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10940412  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  11005948  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  11137020  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  11399164  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  11923452  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  12972028  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  15069180  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  2486268  | 10874876 
+> [ 492.992000] (6:node@c-5.me) Predecessor: -1
+> [ 500.991800] (1:node@c-0.me) My finger table:
+> [ 500.991800] (1:node@c-0.me) Start | Succ 
+> [ 500.991800] (1:node@c-0.me)   43  | 366680 
+> [ 500.991800] (1:node@c-0.me)   44  | 366680 
+> [ 500.991800] (1:node@c-0.me)   46  | 366680 
+> [ 500.991800] (1:node@c-0.me)   50  | 366680 
+> [ 500.991800] (1:node@c-0.me)   58  |  42 
+> [ 500.991800] (1:node@c-0.me)   74  |  42 
+> [ 500.991800] (1:node@c-0.me)  106  |  42 
+> [ 500.991800] (1:node@c-0.me)  170  |  42 
+> [ 500.991800] (1:node@c-0.me)  298  |  42 
+> [ 500.991800] (1:node@c-0.me)  554  |  42 
+> [ 500.991800] (1:node@c-0.me)  1066  |  42 
+> [ 500.991800] (1:node@c-0.me)  2090  |  42 
+> [ 500.991800] (1:node@c-0.me)  4138  |  42 
+> [ 500.991800] (1:node@c-0.me)  8234  |  42 
+> [ 500.991800] (1:node@c-0.me)  16426  |  42 
+> [ 500.991800] (1:node@c-0.me)  32810  |  42 
+> [ 500.991800] (1:node@c-0.me)  65578  |  42 
+> [ 500.991800] (1:node@c-0.me)  131114  |  42 
+> [ 500.991800] (1:node@c-0.me)  262186  |  42 
+> [ 500.991800] (1:node@c-0.me)  524330  |  42 
+> [ 500.991800] (1:node@c-0.me)  1048618  |  42 
+> [ 500.991800] (1:node@c-0.me)  2097194  |  42 
+> [ 500.991800] (1:node@c-0.me)  4194346  |  42 
+> [ 500.991800] (1:node@c-0.me)  8388650  |  42 
+> [ 500.991800] (1:node@c-0.me) Predecessor: 16728096
+> [ 504.991900] (5:node@c-4.me) My finger table:
+> [ 504.991900] (5:node@c-4.me) Start | Succ 
+> [ 504.991900] (5:node@c-4.me)  16509406  | 16728096 
+> [ 504.991900] (5:node@c-4.me)  16509407  |  42 
+> [ 504.991900] (5:node@c-4.me)  16509409  | 16728096 
+> [ 504.991900] (5:node@c-4.me)  16509413  | 16728096 
+> [ 504.991900] (5:node@c-4.me)  16509421  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16509437  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16509469  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16509533  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16509661  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16509917  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16510429  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16511453  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16513501  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16517597  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16525789  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16542173  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16574941  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16640477  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16771549  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  256477  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  780765  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  1829341  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  3926493  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  8120797  | 16509405 
+> [ 504.991900] (5:node@c-4.me) Predecessor: 10004760
+> [ 508.991700] (4:node@c-3.me) My finger table:
+> [ 508.991700] (4:node@c-3.me) Start | Succ 
+> [ 508.991700] (4:node@c-3.me)  1319739  | 2015253 
+> [ 508.991700] (4:node@c-3.me)  1319740  | 6518808 
+> [ 508.991700] (4:node@c-3.me)  1319742  | 6518808 
+> [ 508.991700] (4:node@c-3.me)  1319746  | 2015253 
+> [ 508.991700] (4:node@c-3.me)  1319754  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1319770  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1319802  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1319866  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1319994  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1320250  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1320762  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1321786  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1323834  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1327930  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1336122  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1352506  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1385274  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1450810  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1581882  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1844026  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  2368314  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  3416890  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  5514042  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  9708346  | 1319738 
+> [ 508.991700] (4:node@c-3.me) Predecessor: 533744
+> [ 509.991700] (10:node@c-9.me) My finger table:
+> [ 509.991700] (10:node@c-9.me) Start | Succ 
+> [ 509.991700] (10:node@c-9.me)  2015254  | 6518808 
+> [ 509.991700] (10:node@c-9.me)  2015255  | 16728096 
+> [ 509.991700] (10:node@c-9.me)  2015257  | 10004760 
+> [ 509.991700] (10:node@c-9.me)  2015261  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015269  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015285  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015317  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015381  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015509  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015765  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2016277  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2017301  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2019349  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2023445  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2031637  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2048021  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2080789  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2146325  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2277397  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2539541  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  3063829  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  4112405  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  6209557  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  10403861  | 2015253 
+> [ 509.991700] (10:node@c-9.me) Predecessor: 1319738
+> [ 513.991600] (2:node@c-1.me) My finger table:
+> [ 513.991600] (2:node@c-1.me) Start | Succ 
+> [ 513.991600] (2:node@c-1.me)  366681  | 533744 
+> [ 513.991600] (2:node@c-1.me)  366682  | 1319738 
+> [ 513.991600] (2:node@c-1.me)  366684  | 533744 
+> [ 513.991600] (2:node@c-1.me)  366688  | 533744 
+> [ 513.991600] (2:node@c-1.me)  366696  | 366680 
+> [ 513.991600] (2:node@c-1.me)  366712  | 366680 
+> [ 513.991600] (2:node@c-1.me)  366744  | 366680 
+> [ 513.991600] (2:node@c-1.me)  366808  | 366680 
+> [ 513.991600] (2:node@c-1.me)  366936  | 366680 
+> [ 513.991600] (2:node@c-1.me)  367192  | 366680 
+> [ 513.991600] (2:node@c-1.me)  367704  | 366680 
+> [ 513.991600] (2:node@c-1.me)  368728  | 366680 
+> [ 513.991600] (2:node@c-1.me)  370776  | 366680 
+> [ 513.991600] (2:node@c-1.me)  374872  | 366680 
+> [ 513.991600] (2:node@c-1.me)  383064  | 366680 
+> [ 513.991600] (2:node@c-1.me)  399448  | 366680 
+> [ 513.991600] (2:node@c-1.me)  432216  | 366680 
+> [ 513.991600] (2:node@c-1.me)  497752  | 366680 
+> [ 513.991600] (2:node@c-1.me)  628824  | 366680 
+> [ 513.991600] (2:node@c-1.me)  890968  | 366680 
+> [ 513.991600] (2:node@c-1.me)  1415256  | 366680 
+> [ 513.991600] (2:node@c-1.me)  2463832  | 366680 
+> [ 513.991600] (2:node@c-1.me)  4560984  | 366680 
+> [ 513.991600] (2:node@c-1.me)  8755288  | 366680 
+> [ 513.991600] (2:node@c-1.me) Predecessor: 42
+> [ 516.991600] (10:node@c-9.me) My finger table:
+> [ 516.991600] (10:node@c-9.me) Start | Succ 
+> [ 516.991600] (10:node@c-9.me)  2015254  | 6518808 
+> [ 516.991600] (10:node@c-9.me)  2015255  | 16728096 
+> [ 516.991600] (10:node@c-9.me)  2015257  | 10004760 
+> [ 516.991600] (10:node@c-9.me)  2015261  | 6518808 
+> [ 516.991600] (10:node@c-9.me)  2015269  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2015285  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2015317  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2015381  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2015509  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2015765  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2016277  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2017301  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2019349  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2023445  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2031637  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2048021  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2080789  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2146325  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2277397  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2539541  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  3063829  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  4112405  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  6209557  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  10403861  | 2015253 
+> [ 516.991600] (10:node@c-9.me) Predecessor: 1319738
+> [ 516.991600] (3:node@c-2.me) My finger table:
+> [ 516.991600] (3:node@c-2.me) Start | Succ 
+> [ 516.991600] (3:node@c-2.me)  533745  | 1319738 
+> [ 516.991600] (3:node@c-2.me)  533746  | 1319738 
+> [ 516.991600] (3:node@c-2.me)  533748  | 1319738 
+> [ 516.991600] (3:node@c-2.me)  533752  | 1319738 
+> [ 516.991600] (3:node@c-2.me)  533760  | 533744 
+> [ 516.991600] (3:node@c-2.me)  533776  | 533744 
+> [ 516.991600] (3:node@c-2.me)  533808  | 533744 
+> [ 516.991600] (3:node@c-2.me)  533872  | 533744 
+> [ 516.991600] (3:node@c-2.me)  534000  | 533744 
+> [ 516.991600] (3:node@c-2.me)  534256  | 533744 
+> [ 516.991600] (3:node@c-2.me)  534768  | 533744 
+> [ 516.991600] (3:node@c-2.me)  535792  | 533744 
+> [ 516.991600] (3:node@c-2.me)  537840  | 533744 
+> [ 516.991600] (3:node@c-2.me)  541936  | 533744 
+> [ 516.991600] (3:node@c-2.me)  550128  | 533744 
+> [ 516.991600] (3:node@c-2.me)  566512  | 533744 
+> [ 516.991600] (3:node@c-2.me)  599280  | 533744 
+> [ 516.991600] (3:node@c-2.me)  664816  | 533744 
+> [ 516.991600] (3:node@c-2.me)  795888  | 533744 
+> [ 516.991600] (3:node@c-2.me)  1058032  | 533744 
+> [ 516.991600] (3:node@c-2.me)  1582320  | 533744 
+> [ 516.991600] (3:node@c-2.me)  2630896  | 533744 
+> [ 516.991600] (3:node@c-2.me)  4728048  | 533744 
+> [ 516.991600] (3:node@c-2.me)  8922352  | 533744 
+> [ 516.991600] (3:node@c-2.me) Predecessor: 366680
+> [ 519.991600] (7:node@c-6.me) My finger table:
+> [ 519.991600] (7:node@c-6.me) Start | Succ 
+> [ 519.991600] (7:node@c-6.me)  16728097  |  42 
+> [ 519.991600] (7:node@c-6.me)  16728098  |  42 
+> [ 519.991600] (7:node@c-6.me)  16728100  |  42 
+> [ 519.991600] (7:node@c-6.me)  16728104  |  42 
+> [ 519.991600] (7:node@c-6.me)  16728112  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16728128  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16728160  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16728224  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16728352  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16728608  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16729120  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16730144  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16732192  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16736288  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16744480  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16760864  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16416  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  81952  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  213024  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  475168  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  999456  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  2048032  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  4145184  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  8339488  | 16728096 
+> [ 519.991600] (7:node@c-6.me) Predecessor: 16509405
+> [ 524.991500] (8:node@c-7.me) My finger table:
+> [ 524.991500] (8:node@c-7.me) Start | Succ 
+> [ 524.991500] (8:node@c-7.me)  10004761  | 16509405 
+> [ 524.991500] (8:node@c-7.me)  10004762  | 16509405 
+> [ 524.991500] (8:node@c-7.me)  10004764  | 16509405 
+> [ 524.991500] (8:node@c-7.me)  10004768  | 16509405 
+> [ 524.991500] (8:node@c-7.me)  10004776  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10004792  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10004824  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10004888  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10005016  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10005272  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10005784  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10006808  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10008856  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10012952  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10021144  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10037528  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10070296  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10135832  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10266904  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10529048  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  11053336  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  12101912  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  14199064  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  1616152  | 10004760 
+> [ 524.991500] (8:node@c-7.me) Predecessor: 6518808
+> [ 529.991500] (5:node@c-4.me) My finger table:
+> [ 529.991500] (5:node@c-4.me) Start | Succ 
+> [ 529.991500] (5:node@c-4.me)  16509406  | 16728096 
+> [ 529.991500] (5:node@c-4.me)  16509407  |  42 
+> [ 529.991500] (5:node@c-4.me)  16509409  | 16728096 
+> [ 529.991500] (5:node@c-4.me)  16509413  | 16728096 
+> [ 529.991500] (5:node@c-4.me)  16509421  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16509437  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16509469  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16509533  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16509661  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16509917  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16510429  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16511453  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16513501  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16517597  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16525789  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16542173  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16574941  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16640477  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16771549  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  256477  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  780765  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  1829341  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  3926493  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  8120797  | 16509405 
+> [ 529.991500] (5:node@c-4.me) Predecessor: 10874876
+> [ 540.991400] (9:node@c-8.me) My finger table:
+> [ 540.991400] (9:node@c-8.me) Start | Succ 
+> [ 540.991400] (9:node@c-8.me)  6518809  | 10004760 
+> [ 540.991400] (9:node@c-8.me)  6518810  | 10004760 
+> [ 540.991400] (9:node@c-8.me)  6518812  | 10004760 
+> [ 540.991400] (9:node@c-8.me)  6518816  | 10004760 
+> [ 540.991400] (9:node@c-8.me)  6518824  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6518840  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6518872  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6518936  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6519064  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6519320  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6519832  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6520856  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6522904  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6527000  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6535192  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6551576  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6584344  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6649880  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6780952  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  7043096  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  7567384  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  8615960  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  10713112  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  14907416  | 6518808 
+> [ 540.991400] (9:node@c-8.me) Predecessor: 2015253
+> [ 613.990100] (6:node@c-5.me) My finger table:
+> [ 613.990100] (6:node@c-5.me) Start | Succ 
+> [ 613.990100] (6:node@c-5.me)  10874877  | 16509405 
+> [ 613.990100] (6:node@c-5.me)  10874878  | 533744 
+> [ 613.990100] (6:node@c-5.me)  10874880  | 533744 
+> [ 613.990100] (6:node@c-5.me)  10874884  | 16509405 
+> [ 613.990100] (6:node@c-5.me)  10874892  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10874908  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10874940  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10875004  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10875132  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10875388  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10875900  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10876924  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10878972  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10883068  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10891260  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10907644  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10940412  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  11005948  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  11137020  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  11399164  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  11923452  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  12972028  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  15069180  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  2486268  | 10874876 
+> [ 613.990100] (6:node@c-5.me) Predecessor: 10004760
+> [ 629.989800] (1:node@c-0.me) My finger table:
+> [ 629.989800] (1:node@c-0.me) Start | Succ 
+> [ 629.989800] (1:node@c-0.me)   43  | 366680 
+> [ 629.989800] (1:node@c-0.me)   44  | 366680 
+> [ 629.989800] (1:node@c-0.me)   46  | 366680 
+> [ 629.989800] (1:node@c-0.me)   50  | 366680 
+> [ 629.989800] (1:node@c-0.me)   58  | 366680 
+> [ 629.989800] (1:node@c-0.me)   74  |  42 
+> [ 629.989800] (1:node@c-0.me)  106  |  42 
+> [ 629.989800] (1:node@c-0.me)  170  |  42 
+> [ 629.989800] (1:node@c-0.me)  298  |  42 
+> [ 629.989800] (1:node@c-0.me)  554  |  42 
+> [ 629.989800] (1:node@c-0.me)  1066  |  42 
+> [ 629.989800] (1:node@c-0.me)  2090  |  42 
+> [ 629.989800] (1:node@c-0.me)  4138  |  42 
+> [ 629.989800] (1:node@c-0.me)  8234  |  42 
+> [ 629.989800] (1:node@c-0.me)  16426  |  42 
+> [ 629.989800] (1:node@c-0.me)  32810  |  42 
+> [ 629.989800] (1:node@c-0.me)  65578  |  42 
+> [ 629.989800] (1:node@c-0.me)  131114  |  42 
+> [ 629.989800] (1:node@c-0.me)  262186  |  42 
+> [ 629.989800] (1:node@c-0.me)  524330  |  42 
+> [ 629.989800] (1:node@c-0.me)  1048618  |  42 
+> [ 629.989800] (1:node@c-0.me)  2097194  |  42 
+> [ 629.989800] (1:node@c-0.me)  4194346  |  42 
+> [ 629.989800] (1:node@c-0.me)  8388650  |  42 
+> [ 629.989800] (1:node@c-0.me) Predecessor: 16728096
+> [ 629.989800] (6:node@c-5.me) My finger table:
+> [ 629.989800] (6:node@c-5.me) Start | Succ 
+> [ 629.989800] (6:node@c-5.me)  10874877  | 16509405 
+> [ 629.989800] (6:node@c-5.me)  10874878  | 533744 
+> [ 629.989800] (6:node@c-5.me)  10874880  | 533744 
+> [ 629.989800] (6:node@c-5.me)  10874884  | 16509405 
+> [ 629.989800] (6:node@c-5.me)  10874892  | 16509405 
+> [ 629.989800] (6:node@c-5.me)  10874908  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10874940  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10875004  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10875132  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10875388  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10875900  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10876924  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10878972  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10883068  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10891260  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10907644  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10940412  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  11005948  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  11137020  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  11399164  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  11923452  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  12972028  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  15069180  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  2486268  | 10874876 
+> [ 629.989800] (6:node@c-5.me) Predecessor: 10004760
+> [ 632.989700] (4:node@c-3.me) My finger table:
+> [ 632.989700] (4:node@c-3.me) Start | Succ 
+> [ 632.989700] (4:node@c-3.me)  1319739  | 2015253 
+> [ 632.989700] (4:node@c-3.me)  1319740  | 6518808 
+> [ 632.989700] (4:node@c-3.me)  1319742  | 6518808 
+> [ 632.989700] (4:node@c-3.me)  1319746  | 2015253 
+> [ 632.989700] (4:node@c-3.me)  1319754  | 2015253 
+> [ 632.989700] (4:node@c-3.me)  1319770  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1319802  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1319866  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1319994  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1320250  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1320762  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1321786  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1323834  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1327930  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1336122  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1352506  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1385274  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1450810  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1581882  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1844026  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  2368314  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  3416890  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  5514042  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  9708346  | 1319738 
+> [ 632.989700] (4:node@c-3.me) Predecessor: 533744
+> [ 637.989600] (2:node@c-1.me) My finger table:
+> [ 637.989600] (2:node@c-1.me) Start | Succ 
+> [ 637.989600] (2:node@c-1.me)  366681  | 533744 
+> [ 637.989600] (2:node@c-1.me)  366682  | 1319738 
+> [ 637.989600] (2:node@c-1.me)  366684  | 533744 
+> [ 637.989600] (2:node@c-1.me)  366688  | 533744 
+> [ 637.989600] (2:node@c-1.me)  366696  | 533744 
+> [ 637.989600] (2:node@c-1.me)  366712  | 366680 
+> [ 637.989600] (2:node@c-1.me)  366744  | 366680 
+> [ 637.989600] (2:node@c-1.me)  366808  | 366680 
+> [ 637.989600] (2:node@c-1.me)  366936  | 366680 
+> [ 637.989600] (2:node@c-1.me)  367192  | 366680 
+> [ 637.989600] (2:node@c-1.me)  367704  | 366680 
+> [ 637.989600] (2:node@c-1.me)  368728  | 366680 
+> [ 637.989600] (2:node@c-1.me)  370776  | 366680 
+> [ 637.989600] (2:node@c-1.me)  374872  | 366680 
+> [ 637.989600] (2:node@c-1.me)  383064  | 366680 
+> [ 637.989600] (2:node@c-1.me)  399448  | 366680 
+> [ 637.989600] (2:node@c-1.me)  432216  | 366680 
+> [ 637.989600] (2:node@c-1.me)  497752  | 366680 
+> [ 637.989600] (2:node@c-1.me)  628824  | 366680 
+> [ 637.989600] (2:node@c-1.me)  890968  | 366680 
+> [ 637.989600] (2:node@c-1.me)  1415256  | 366680 
+> [ 637.989600] (2:node@c-1.me)  2463832  | 366680 
+> [ 637.989600] (2:node@c-1.me)  4560984  | 366680 
+> [ 637.989600] (2:node@c-1.me)  8755288  | 366680 
+> [ 637.989600] (2:node@c-1.me) Predecessor: 42
+> [ 638.989600] (3:node@c-2.me) My finger table:
+> [ 638.989600] (3:node@c-2.me) Start | Succ 
+> [ 638.989600] (3:node@c-2.me)  533745  | 1319738 
+> [ 638.989600] (3:node@c-2.me)  533746  | 1319738 
+> [ 638.989600] (3:node@c-2.me)  533748  | 1319738 
+> [ 638.989600] (3:node@c-2.me)  533752  | 1319738 
+> [ 638.989600] (3:node@c-2.me)  533760  | 1319738 
+> [ 638.989600] (3:node@c-2.me)  533776  | 533744 
+> [ 638.989600] (3:node@c-2.me)  533808  | 533744 
+> [ 638.989600] (3:node@c-2.me)  533872  | 533744 
+> [ 638.989600] (3:node@c-2.me)  534000  | 533744 
+> [ 638.989600] (3:node@c-2.me)  534256  | 533744 
+> [ 638.989600] (3:node@c-2.me)  534768  | 533744 
+> [ 638.989600] (3:node@c-2.me)  535792  | 533744 
+> [ 638.989600] (3:node@c-2.me)  537840  | 533744 
+> [ 638.989600] (3:node@c-2.me)  541936  | 533744 
+> [ 638.989600] (3:node@c-2.me)  550128  | 533744 
+> [ 638.989600] (3:node@c-2.me)  566512  | 533744 
+> [ 638.989600] (3:node@c-2.me)  599280  | 533744 
+> [ 638.989600] (3:node@c-2.me)  664816  | 533744 
+> [ 638.989600] (3:node@c-2.me)  795888  | 533744 
+> [ 638.989600] (3:node@c-2.me)  1058032  | 533744 
+> [ 638.989600] (3:node@c-2.me)  1582320  | 533744 
+> [ 638.989600] (3:node@c-2.me)  2630896  | 533744 
+> [ 638.989600] (3:node@c-2.me)  4728048  | 533744 
+> [ 638.989600] (3:node@c-2.me)  8922352  | 533744 
+> [ 638.989600] (3:node@c-2.me) Predecessor: 366680
+> [ 641.989600] (10:node@c-9.me) My finger table:
+> [ 641.989600] (10:node@c-9.me) Start | Succ 
+> [ 641.989600] (10:node@c-9.me)  2015254  | 6518808 
+> [ 641.989600] (10:node@c-9.me)  2015255  | 16728096 
+> [ 641.989600] (10:node@c-9.me)  2015257  | 10004760 
+> [ 641.989600] (10:node@c-9.me)  2015261  | 6518808 
+> [ 641.989600] (10:node@c-9.me)  2015269  | 6518808 
+> [ 641.989600] (10:node@c-9.me)  2015285  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2015317  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2015381  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2015509  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2015765  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2016277  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2017301  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2019349  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2023445  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2031637  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2048021  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2080789  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2146325  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2277397  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2539541  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  3063829  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  4112405  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  6209557  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  10403861  | 2015253 
+> [ 641.989600] (10:node@c-9.me) Predecessor: 1319738
+> [ 645.989500] (7:node@c-6.me) My finger table:
+> [ 645.989500] (7:node@c-6.me) Start | Succ 
+> [ 645.989500] (7:node@c-6.me)  16728097  |  42 
+> [ 645.989500] (7:node@c-6.me)  16728098  |  42 
+> [ 645.989500] (7:node@c-6.me)  16728100  |  42 
+> [ 645.989500] (7:node@c-6.me)  16728104  |  42 
+> [ 645.989500] (7:node@c-6.me)  16728112  |  42 
+> [ 645.989500] (7:node@c-6.me)  16728128  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16728160  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16728224  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16728352  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16728608  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16729120  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16730144  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16732192  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16736288  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16744480  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16760864  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16416  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  81952  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  213024  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  475168  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  999456  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  2048032  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  4145184  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  8339488  | 16728096 
+> [ 645.989500] (7:node@c-6.me) Predecessor: 16509405
+> [ 645.989600] (5:node@c-4.me) My finger table:
+> [ 645.989600] (5:node@c-4.me) Start | Succ 
+> [ 645.989600] (5:node@c-4.me)  16509406  | 16728096 
+> [ 645.989600] (5:node@c-4.me)  16509407  |  42 
+> [ 645.989600] (5:node@c-4.me)  16509409  | 16728096 
+> [ 645.989600] (5:node@c-4.me)  16509413  | 16728096 
+> [ 645.989600] (5:node@c-4.me)  16509421  | 16728096 
+> [ 645.989600] (5:node@c-4.me)  16509437  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16509469  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16509533  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16509661  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16509917  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16510429  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16511453  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16513501  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16517597  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16525789  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16542173  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16574941  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16640477  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16771549  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  256477  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  780765  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  1829341  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  3926493  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  8120797  | 16509405 
+> [ 645.989600] (5:node@c-4.me) Predecessor: 10874876
+> [ 655.989400] (8:node@c-7.me) My finger table:
+> [ 655.989400] (8:node@c-7.me) Start | Succ 
+> [ 655.989400] (8:node@c-7.me)  10004761  | 10874876 
+> [ 655.989400] (8:node@c-7.me)  10004762  | 16509405 
+> [ 655.989400] (8:node@c-7.me)  10004764  | 16509405 
+> [ 655.989400] (8:node@c-7.me)  10004768  | 16509405 
+> [ 655.989400] (8:node@c-7.me)  10004776  | 10874876 
+> [ 655.989400] (8:node@c-7.me)  10004792  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10004824  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10004888  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10005016  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10005272  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10005784  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10006808  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10008856  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10012952  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10021144  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10037528  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10070296  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10135832  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10266904  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10529048  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  11053336  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  12101912  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  14199064  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  1616152  | 10004760 
+> [ 655.989400] (8:node@c-7.me) Predecessor: 6518808
+> [ 662.989300] (9:node@c-8.me) My finger table:
+> [ 662.989300] (9:node@c-8.me) Start | Succ 
+> [ 662.989300] (9:node@c-8.me)  6518809  | 10004760 
+> [ 662.989300] (9:node@c-8.me)  6518810  | 10004760 
+> [ 662.989300] (9:node@c-8.me)  6518812  | 10004760 
+> [ 662.989300] (9:node@c-8.me)  6518816  | 10004760 
+> [ 662.989300] (9:node@c-8.me)  6518824  | 10004760 
+> [ 662.989300] (9:node@c-8.me)  6518840  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6518872  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6518936  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6519064  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6519320  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6519832  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6520856  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6522904  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6527000  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6535192  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6551576  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6584344  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6649880  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6780952  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  7043096  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  7567384  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  8615960  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  10713112  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  14907416  | 6518808 
+> [ 662.989300] (9:node@c-8.me) Predecessor: 2015253
+> [ 754.987800] (1:node@c-0.me) My finger table:
+> [ 754.987800] (1:node@c-0.me) Start | Succ 
+> [ 754.987800] (1:node@c-0.me)   43  | 366680 
+> [ 754.987800] (1:node@c-0.me)   44  | 366680 
+> [ 754.987800] (1:node@c-0.me)   46  | 366680 
+> [ 754.987800] (1:node@c-0.me)   50  | 366680 
+> [ 754.987800] (1:node@c-0.me)   58  | 366680 
+> [ 754.987800] (1:node@c-0.me)   74  | 366680 
+> [ 754.987800] (1:node@c-0.me)  106  |  42 
+> [ 754.987800] (1:node@c-0.me)  170  |  42 
+> [ 754.987800] (1:node@c-0.me)  298  |  42 
+> [ 754.987800] (1:node@c-0.me)  554  |  42 
+> [ 754.987800] (1:node@c-0.me)  1066  |  42 
+> [ 754.987800] (1:node@c-0.me)  2090  |  42 
+> [ 754.987800] (1:node@c-0.me)  4138  |  42 
+> [ 754.987800] (1:node@c-0.me)  8234  |  42 
+> [ 754.987800] (1:node@c-0.me)  16426  |  42 
+> [ 754.987800] (1:node@c-0.me)  32810  |  42 
+> [ 754.987800] (1:node@c-0.me)  65578  |  42 
+> [ 754.987800] (1:node@c-0.me)  131114  |  42 
+> [ 754.987800] (1:node@c-0.me)  262186  |  42 
+> [ 754.987800] (1:node@c-0.me)  524330  |  42 
+> [ 754.987800] (1:node@c-0.me)  1048618  |  42 
+> [ 754.987800] (1:node@c-0.me)  2097194  |  42 
+> [ 754.987800] (1:node@c-0.me)  4194346  |  42 
+> [ 754.987800] (1:node@c-0.me)  8388650  |  42 
+> [ 754.987800] (1:node@c-0.me) Predecessor: 16728096
+> [ 757.987800] (4:node@c-3.me) My finger table:
+> [ 757.987800] (4:node@c-3.me) Start | Succ 
+> [ 757.987800] (4:node@c-3.me)  1319739  | 2015253 
+> [ 757.987800] (4:node@c-3.me)  1319740  | 6518808 
+> [ 757.987800] (4:node@c-3.me)  1319742  | 6518808 
+> [ 757.987800] (4:node@c-3.me)  1319746  | 2015253 
+> [ 757.987800] (4:node@c-3.me)  1319754  | 2015253 
+> [ 757.987800] (4:node@c-3.me)  1319770  | 2015253 
+> [ 757.987800] (4:node@c-3.me)  1319802  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1319866  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1319994  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1320250  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1320762  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1321786  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1323834  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1327930  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1336122  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1352506  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1385274  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1450810  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1581882  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1844026  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  2368314  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  3416890  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  5514042  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  9708346  | 1319738 
+> [ 757.987800] (4:node@c-3.me) Predecessor: 533744
+> [ 762.987700] (10:node@c-9.me) My finger table:
+> [ 762.987700] (10:node@c-9.me) Start | Succ 
+> [ 762.987700] (10:node@c-9.me)  2015254  | 6518808 
+> [ 762.987700] (10:node@c-9.me)  2015255  | 16728096 
+> [ 762.987700] (10:node@c-9.me)  2015257  | 10004760 
+> [ 762.987700] (10:node@c-9.me)  2015261  | 6518808 
+> [ 762.987700] (10:node@c-9.me)  2015269  | 6518808 
+> [ 762.987700] (10:node@c-9.me)  2015285  | 6518808 
+> [ 762.987700] (10:node@c-9.me)  2015317  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2015381  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2015509  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2015765  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2016277  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2017301  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2019349  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2023445  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2031637  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2048021  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2080789  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2146325  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2277397  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2539541  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  3063829  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  4112405  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  6209557  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  10403861  | 2015253 
+> [ 762.987700] (10:node@c-9.me) Predecessor: 1319738
+> [ 762.987700] (6:node@c-5.me) My finger table:
+> [ 762.987700] (6:node@c-5.me) Start | Succ 
+> [ 762.987700] (6:node@c-5.me)  10874877  | 16509405 
+> [ 762.987700] (6:node@c-5.me)  10874878  | 533744 
+> [ 762.987700] (6:node@c-5.me)  10874880  | 533744 
+> [ 762.987700] (6:node@c-5.me)  10874884  | 16509405 
+> [ 762.987700] (6:node@c-5.me)  10874892  | 16509405 
+> [ 762.987700] (6:node@c-5.me)  10874908  | 16509405 
+> [ 762.987700] (6:node@c-5.me)  10874940  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10875004  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10875132  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10875388  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10875900  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10876924  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10878972  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10883068  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10891260  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10907644  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10940412  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  11005948  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  11137020  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  11399164  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  11923452  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  12972028  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  15069180  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  2486268  | 10874876 
+> [ 762.987700] (6:node@c-5.me) Predecessor: 10004760
+> [ 767.987600] (2:node@c-1.me) My finger table:
+> [ 767.987600] (2:node@c-1.me) Start | Succ 
+> [ 767.987600] (2:node@c-1.me)  366681  | 533744 
+> [ 767.987600] (2:node@c-1.me)  366682  | 1319738 
+> [ 767.987600] (2:node@c-1.me)  366684  | 533744 
+> [ 767.987600] (2:node@c-1.me)  366688  | 533744 
+> [ 767.987600] (2:node@c-1.me)  366696  | 533744 
+> [ 767.987600] (2:node@c-1.me)  366712  | 533744 
+> [ 767.987600] (2:node@c-1.me)  366744  | 366680 
+> [ 767.987600] (2:node@c-1.me)  366808  | 366680 
+> [ 767.987600] (2:node@c-1.me)  366936  | 366680 
+> [ 767.987600] (2:node@c-1.me)  367192  | 366680 
+> [ 767.987600] (2:node@c-1.me)  367704  | 366680 
+> [ 767.987600] (2:node@c-1.me)  368728  | 366680 
+> [ 767.987600] (2:node@c-1.me)  370776  | 366680 
+> [ 767.987600] (2:node@c-1.me)  374872  | 366680 
+> [ 767.987600] (2:node@c-1.me)  383064  | 366680 
+> [ 767.987600] (2:node@c-1.me)  399448  | 366680 
+> [ 767.987600] (2:node@c-1.me)  432216  | 366680 
+> [ 767.987600] (2:node@c-1.me)  497752  | 366680 
+> [ 767.987600] (2:node@c-1.me)  628824  | 366680 
+> [ 767.987600] (2:node@c-1.me)  890968  | 366680 
+> [ 767.987600] (2:node@c-1.me)  1415256  | 366680 
+> [ 767.987600] (2:node@c-1.me)  2463832  | 366680 
+> [ 767.987600] (2:node@c-1.me)  4560984  | 366680 
+> [ 767.987600] (2:node@c-1.me)  8755288  | 366680 
+> [ 767.987600] (2:node@c-1.me) Predecessor: 42
+> [ 771.987500] (5:node@c-4.me) My finger table:
+> [ 771.987500] (5:node@c-4.me) Start | Succ 
+> [ 771.987500] (5:node@c-4.me)  16509406  | 16728096 
+> [ 771.987500] (5:node@c-4.me)  16509407  |  42 
+> [ 771.987500] (5:node@c-4.me)  16509409  | 16728096 
+> [ 771.987500] (5:node@c-4.me)  16509413  | 16728096 
+> [ 771.987500] (5:node@c-4.me)  16509421  | 16728096 
+> [ 771.987500] (5:node@c-4.me)  16509437  | 16728096 
+> [ 771.987500] (5:node@c-4.me)  16509469  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16509533  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16509661  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16509917  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16510429  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16511453  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16513501  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16517597  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16525789  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16542173  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16574941  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16640477  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16771549  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  256477  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  780765  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  1829341  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  3926493  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  8120797  | 16509405 
+> [ 771.987500] (5:node@c-4.me) Predecessor: 10874876
+> [ 776.987500] (3:node@c-2.me) My finger table:
+> [ 776.987500] (3:node@c-2.me) Start | Succ 
+> [ 776.987500] (3:node@c-2.me)  533745  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533746  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533748  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533752  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533760  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533776  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533808  | 533744 
+> [ 776.987500] (3:node@c-2.me)  533872  | 533744 
+> [ 776.987500] (3:node@c-2.me)  534000  | 533744 
+> [ 776.987500] (3:node@c-2.me)  534256  | 533744 
+> [ 776.987500] (3:node@c-2.me)  534768  | 533744 
+> [ 776.987500] (3:node@c-2.me)  535792  | 533744 
+> [ 776.987500] (3:node@c-2.me)  537840  | 533744 
+> [ 776.987500] (3:node@c-2.me)  541936  | 533744 
+> [ 776.987500] (3:node@c-2.me)  550128  | 533744 
+> [ 776.987500] (3:node@c-2.me)  566512  | 533744 
+> [ 776.987500] (3:node@c-2.me)  599280  | 533744 
+> [ 776.987500] (3:node@c-2.me)  664816  | 533744 
+> [ 776.987500] (3:node@c-2.me)  795888  | 533744 
+> [ 776.987500] (3:node@c-2.me)  1058032  | 533744 
+> [ 776.987500] (3:node@c-2.me)  1582320  | 533744 
+> [ 776.987500] (3:node@c-2.me)  2630896  | 533744 
+> [ 776.987500] (3:node@c-2.me)  4728048  | 533744 
+> [ 776.987500] (3:node@c-2.me)  8922352  | 533744 
+> [ 776.987500] (3:node@c-2.me) Predecessor: 366680
+> [ 823.987500] (8:node@c-7.me) My finger table:
+> [ 823.987500] (8:node@c-7.me) Start | Succ 
+> [ 823.987500] (8:node@c-7.me)  10004761  | 10874876 
+> [ 823.987500] (8:node@c-7.me)  10004762  | 16509405 
+> [ 823.987500] (8:node@c-7.me)  10004764  | 16509405 
+> [ 823.987500] (8:node@c-7.me)  10004768  | 16509405 
+> [ 823.987500] (8:node@c-7.me)  10004776  | 10874876 
+> [ 823.987500] (8:node@c-7.me)  10004792  | 10874876 
+> [ 823.987500] (8:node@c-7.me)  10004824  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10004888  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10005016  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10005272  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10005784  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10006808  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10008856  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10012952  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10021144  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10037528  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10070296  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10135832  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10266904  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10529048  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  11053336  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  12101912  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  14199064  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  1616152  | 10004760 
+> [ 823.987500] (8:node@c-7.me) Predecessor: 6518808
+> [ 824.987500] (7:node@c-6.me) My finger table:
+> [ 824.987500] (7:node@c-6.me) Start | Succ 
+> [ 824.987500] (7:node@c-6.me)  16728097  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728098  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728100  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728104  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728112  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728128  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728160  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16728224  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16728352  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16728608  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16729120  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16730144  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16732192  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16736288  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16744480  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16760864  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16416  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  81952  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  213024  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  475168  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  999456  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  2048032  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  4145184  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  8339488  | 16728096 
+> [ 824.987500] (7:node@c-6.me) Predecessor: 16509405
+> [ 876.987500] (9:node@c-8.me) My finger table:
+> [ 876.987500] (9:node@c-8.me) Start | Succ 
+> [ 876.987500] (9:node@c-8.me)  6518809  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518810  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518812  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518816  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518824  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518840  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518872  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6518936  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6519064  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6519320  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6519832  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6520856  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6522904  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6527000  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6535192  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6551576  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6584344  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6649880  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6780952  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  7043096  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  7567384  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  8615960  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  10713112  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  14907416  | 6518808 
+> [ 876.987500] (9:node@c-8.me) Predecessor: 2015253
+> [ 880.986500] (1:node@c-0.me) My finger table:
+> [ 880.986500] (1:node@c-0.me) Start | Succ 
+> [ 880.986500] (1:node@c-0.me)   43  | 366680 
+> [ 880.986500] (1:node@c-0.me)   44  | 366680 
+> [ 880.986500] (1:node@c-0.me)   46  | 366680 
+> [ 880.986500] (1:node@c-0.me)   50  | 366680 
+> [ 880.986500] (1:node@c-0.me)   58  | 366680 
+> [ 880.986500] (1:node@c-0.me)   74  | 366680 
+> [ 880.986500] (1:node@c-0.me)  106  | 366680 
+> [ 880.986500] (1:node@c-0.me)  170  |  42 
+> [ 880.986500] (1:node@c-0.me)  298  |  42 
+> [ 880.986500] (1:node@c-0.me)  554  |  42 
+> [ 880.986500] (1:node@c-0.me)  1066  |  42 
+> [ 880.986500] (1:node@c-0.me)  2090  |  42 
+> [ 880.986500] (1:node@c-0.me)  4138  |  42 
+> [ 880.986500] (1:node@c-0.me)  8234  |  42 
+> [ 880.986500] (1:node@c-0.me)  16426  |  42 
+> [ 880.986500] (1:node@c-0.me)  32810  |  42 
+> [ 880.986500] (1:node@c-0.me)  65578  |  42 
+> [ 880.986500] (1:node@c-0.me)  131114  |  42 
+> [ 880.986500] (1:node@c-0.me)  262186  |  42 
+> [ 880.986500] (1:node@c-0.me)  524330  |  42 
+> [ 880.986500] (1:node@c-0.me)  1048618  |  42 
+> [ 880.986500] (1:node@c-0.me)  2097194  |  42 
+> [ 880.986500] (1:node@c-0.me)  4194346  |  42 
+> [ 880.986500] (1:node@c-0.me)  8388650  |  42 
+> [ 880.986500] (1:node@c-0.me) Predecessor: 16728096
+> [ 904.987100] (3:node@c-2.me) My finger table:
+> [ 904.987100] (3:node@c-2.me) Start | Succ 
+> [ 904.987100] (3:node@c-2.me)  533745  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533746  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533748  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533752  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533760  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533776  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533808  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533872  | 533744 
+> [ 904.987100] (3:node@c-2.me)  534000  | 533744 
+> [ 904.987100] (3:node@c-2.me)  534256  | 533744 
+> [ 904.987100] (3:node@c-2.me)  534768  | 533744 
+> [ 904.987100] (3:node@c-2.me)  535792  | 533744 
+> [ 904.987100] (3:node@c-2.me)  537840  | 533744 
+> [ 904.987100] (3:node@c-2.me)  541936  | 533744 
+> [ 904.987100] (3:node@c-2.me)  550128  | 533744 
+> [ 904.987100] (3:node@c-2.me)  566512  | 533744 
+> [ 904.987100] (3:node@c-2.me)  599280  | 533744 
+> [ 904.987100] (3:node@c-2.me)  664816  | 533744 
+> [ 904.987100] (3:node@c-2.me)  795888  | 533744 
+> [ 904.987100] (3:node@c-2.me)  1058032  | 533744 
+> [ 904.987100] (3:node@c-2.me)  1582320  | 533744 
+> [ 904.987100] (3:node@c-2.me)  2630896  | 533744 
+> [ 904.987100] (3:node@c-2.me)  4728048  | 533744 
+> [ 904.987100] (3:node@c-2.me)  8922352  | 533744 
+> [ 904.987100] (3:node@c-2.me) Predecessor: 366680
+> [ 924.987500] (5:node@c-4.me) My finger table:
+> [ 924.987500] (5:node@c-4.me) Start | Succ 
+> [ 924.987500] (5:node@c-4.me)  16509406  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509407  |  42 
+> [ 924.987500] (5:node@c-4.me)  16509409  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509413  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509421  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509437  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509469  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509533  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16509661  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16509917  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16510429  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16511453  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16513501  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16517597  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16525789  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16542173  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16574941  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16640477  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16771549  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  256477  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  780765  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  1829341  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  3926493  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  8120797  | 16509405 
+> [ 924.987500] (5:node@c-4.me) Predecessor: 10874876
+> [ 936.987400] (6:node@c-5.me) My finger table:
+> [ 936.987400] (6:node@c-5.me) Start | Succ 
+> [ 936.987400] (6:node@c-5.me)  10874877  | 16509405 
+> [ 936.987400] (6:node@c-5.me)  10874878  | 533744 
+> [ 936.987400] (6:node@c-5.me)  10874880  | 533744 
+> [ 936.987400] (6:node@c-5.me)  10874884  | 16509405 
+> [ 936.987400] (6:node@c-5.me)  10874892  | 16509405 
+> [ 936.987400] (6:node@c-5.me)  10874908  | 16509405 
+> [ 936.987400] (6:node@c-5.me)  10874940  | 16509405 
+> [ 936.987400] (6:node@c-5.me)  10875004  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10875132  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10875388  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10875900  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10876924  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10878972  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10883068  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10891260  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10907644  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10940412  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  11005948  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  11137020  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  11399164  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  11923452  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  12972028  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  15069180  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  2486268  | 10874876 
+> [ 936.987400] (6:node@c-5.me) Predecessor: 10004760
+> [ 945.985300] (7:node@c-6.me) My finger table:
+> [ 945.985300] (7:node@c-6.me) Start | Succ 
+> [ 945.985300] (7:node@c-6.me)  16728097  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728098  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728100  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728104  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728112  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728128  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728160  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728224  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16728352  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16728608  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16729120  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16730144  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16732192  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16736288  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16744480  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16760864  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16416  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  81952  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  213024  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  475168  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  999456  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  2048032  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  4145184  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  8339488  | 16728096 
+> [ 945.985300] (7:node@c-6.me) Predecessor: 16509405
+> [ 952.985200] (2:node@c-1.me) My finger table:
+> [ 952.985200] (2:node@c-1.me) Start | Succ 
+> [ 952.985200] (2:node@c-1.me)  366681  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366682  | 1319738 
+> [ 952.985200] (2:node@c-1.me)  366684  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366688  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366696  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366712  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366744  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366808  | 366680 
+> [ 952.985200] (2:node@c-1.me)  366936  | 366680 
+> [ 952.985200] (2:node@c-1.me)  367192  | 366680 
+> [ 952.985200] (2:node@c-1.me)  367704  | 366680 
+> [ 952.985200] (2:node@c-1.me)  368728  | 366680 
+> [ 952.985200] (2:node@c-1.me)  370776  | 366680 
+> [ 952.985200] (2:node@c-1.me)  374872  | 366680 
+> [ 952.985200] (2:node@c-1.me)  383064  | 366680 
+> [ 952.985200] (2:node@c-1.me)  399448  | 366680 
+> [ 952.985200] (2:node@c-1.me)  432216  | 366680 
+> [ 952.985200] (2:node@c-1.me)  497752  | 366680 
+> [ 952.985200] (2:node@c-1.me)  628824  | 366680 
+> [ 952.985200] (2:node@c-1.me)  890968  | 366680 
+> [ 952.985200] (2:node@c-1.me)  1415256  | 366680 
+> [ 952.985200] (2:node@c-1.me)  2463832  | 366680 
+> [ 952.985200] (2:node@c-1.me)  4560984  | 366680 
+> [ 952.985200] (2:node@c-1.me)  8755288  | 366680 
+> [ 952.985200] (2:node@c-1.me) Predecessor: 42
+> [ 967.986900] (4:node@c-3.me) My finger table:
+> [ 967.986900] (4:node@c-3.me) Start | Succ 
+> [ 967.986900] (4:node@c-3.me)  1319739  | 2015253 
+> [ 967.986900] (4:node@c-3.me)  1319740  | 6518808 
+> [ 967.986900] (4:node@c-3.me)  1319742  | 6518808 
+> [ 967.986900] (4:node@c-3.me)  1319746  | 2015253 
+> [ 967.986900] (4:node@c-3.me)  1319754  | 2015253 
+> [ 967.986900] (4:node@c-3.me)  1319770  | 2015253 
+> [ 967.986900] (4:node@c-3.me)  1319802  | 2015253 
+> [ 967.986900] (4:node@c-3.me)  1319866  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1319994  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1320250  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1320762  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1321786  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1323834  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1327930  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1336122  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1352506  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1385274  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1450810  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1581882  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1844026  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  2368314  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  3416890  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  5514042  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  9708346  | 1319738 
+> [ 967.986900] (4:node@c-3.me) Predecessor: 533744
+> [1207.985300] (0:@) Messages created: 1690
+> [1207.985300] (0:@) Simulated time: 1207.99
index 78b5acc..19bc5ff 100644 (file)
@@ -1,6 +1,6 @@
 #! ./tesh
 
-p Testing the Chord implementation with MSG
+p> Testing the Chord implementation with MSG
 
 ! output sort
 $ $SG_TEST_EXENV ${bindir:=.}/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"
@@ -20,404 +20,350 @@ $ $SG_TEST_EXENV ${bindir:=.}/chord$EXEEXT -nb_bits=6 ${srcdir:=.}/../msg_platfo
 > [  0.000000] (8:node@Jacquelin)   17  |   1 
 > [  0.000000] (8:node@Jacquelin)   33  |   1 
 > [  0.000000] (8:node@Jacquelin) Predecessor: -1
-> [  6.274448] (1:node@Gatien) My finger table:
-> [  6.274448] (1:node@Gatien) Start | Succ 
-> [  6.274448] (1:node@Gatien)   49  |   1 
-> [  6.274448] (1:node@Gatien)   50  |  48 
-> [  6.274448] (1:node@Gatien)   52  |  48 
-> [  6.274448] (1:node@Gatien)   56  |  48 
-> [  6.274448] (1:node@Gatien)    0  |  48 
-> [  6.274448] (1:node@Gatien)   16  |  48 
-> [  6.274448] (1:node@Gatien) Predecessor: -1
-> [ 10.888356] (2:node@McGee) My finger table:
-> [ 10.888356] (2:node@McGee) Start | Succ 
-> [ 10.888356] (2:node@McGee)   43  |   1 
-> [ 10.888356] (2:node@McGee)   44  |  42 
-> [ 10.888356] (2:node@McGee)   46  |  42 
-> [ 10.888356] (2:node@McGee)   50  |  42 
-> [ 10.888356] (2:node@McGee)   58  |  42 
-> [ 10.888356] (2:node@McGee)   10  |  42 
-> [ 10.888356] (2:node@McGee) Predecessor: -1
-> [ 18.043675] (3:node@iRMX) My finger table:
-> [ 18.043675] (3:node@iRMX) Start | Succ 
-> [ 18.043675] (3:node@iRMX)   39  |   1 
-> [ 18.043675] (3:node@iRMX)   40  |  38 
-> [ 18.043675] (3:node@iRMX)   42  |  38 
-> [ 18.043675] (3:node@iRMX)   46  |  38 
-> [ 18.043675] (3:node@iRMX)   54  |  38 
-> [ 18.043675] (3:node@iRMX)    6  |  38 
-> [ 18.043675] (3:node@iRMX) Predecessor: -1
-> [ 20.005344] (4:node@Geoff) My finger table:
-> [ 20.005344] (4:node@Geoff) Start | Succ 
-> [ 20.005344] (4:node@Geoff)   33  |   1 
-> [ 20.005344] (4:node@Geoff)   34  |  32 
-> [ 20.005344] (4:node@Geoff)   36  |  32 
-> [ 20.005344] (4:node@Geoff)   40  |  32 
-> [ 20.005344] (4:node@Geoff)   48  |  32 
-> [ 20.005344] (4:node@Geoff)    0  |  32 
-> [ 20.005344] (4:node@Geoff) Predecessor: -1
-> [ 26.812602] (5:node@TeX) My finger table:
-> [ 26.812602] (5:node@TeX) Start | Succ 
-> [ 26.812602] (5:node@TeX)   22  |   1 
-> [ 26.812602] (5:node@TeX)   23  |  21 
-> [ 26.812602] (5:node@TeX)   25  |  21 
-> [ 26.812602] (5:node@TeX)   29  |  21 
-> [ 26.812602] (5:node@TeX)   37  |  21 
-> [ 26.812602] (5:node@TeX)   53  |  21 
-> [ 26.812602] (5:node@TeX) Predecessor: -1
-> [ 30.925131] (6:node@Jean_Yves) My finger table:
-> [ 30.925131] (6:node@Jean_Yves) Start | Succ 
-> [ 30.925131] (6:node@Jean_Yves)   15  |   1 
-> [ 30.925131] (6:node@Jean_Yves)   16  |  14 
-> [ 30.925131] (6:node@Jean_Yves)   18  |  14 
-> [ 30.925131] (6:node@Jean_Yves)   22  |  14 
-> [ 30.925131] (6:node@Jean_Yves)   30  |  14 
-> [ 30.925131] (6:node@Jean_Yves)   46  |  14 
-> [ 30.925131] (6:node@Jean_Yves) Predecessor: -1
-> [ 36.048886] (7:node@Boivin) My finger table:
-> [ 36.048886] (7:node@Boivin) Start | Succ 
-> [ 36.048886] (7:node@Boivin)    9  |   1 
-> [ 36.048886] (7:node@Boivin)   10  |   8 
-> [ 36.048886] (7:node@Boivin)   12  |   8 
-> [ 36.048886] (7:node@Boivin)   16  |   8 
-> [ 36.048886] (7:node@Boivin)   24  |   8 
-> [ 36.048886] (7:node@Boivin)   40  |   8 
-> [ 36.048886] (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.274448] (8:node@Jacquelin) My finger table:
-> [ 81.274448] (8:node@Jacquelin) Start | Succ 
-> [ 81.274448] (8:node@Jacquelin)    2  |  42 
-> [ 81.274448] (8:node@Jacquelin)    3  |   1 
-> [ 81.274448] (8:node@Jacquelin)    5  |   1 
-> [ 81.274448] (8:node@Jacquelin)    9  |   1 
-> [ 81.274448] (8:node@Jacquelin)   17  |   1 
-> [ 81.274448] (8:node@Jacquelin)   33  |   1 
-> [ 81.274448] (8:node@Jacquelin) Predecessor: 48
-> [116.655207] (2:node@McGee) My finger table:
-> [116.655207] (2:node@McGee) Start | Succ 
-> [116.655207] (2:node@McGee)   43  |  48 
-> [116.655207] (2:node@McGee)   44  |  42 
-> [116.655207] (2:node@McGee)   46  |  42 
-> [116.655207] (2:node@McGee)   50  |  42 
-> [116.655207] (2:node@McGee)   58  |  42 
-> [116.655207] (2:node@McGee)   10  |  42 
-> [116.655207] (2:node@McGee) Predecessor: 1
-> [141.383343] (1:node@Gatien) My finger table:
-> [141.383343] (1:node@Gatien) Start | Succ 
-> [141.383343] (1:node@Gatien)   49  |   1 
-> [141.383343] (1:node@Gatien)   50  |  48 
-> [141.383343] (1:node@Gatien)   52  |  48 
-> [141.383343] (1:node@Gatien)   56  |  48 
-> [141.383343] (1:node@Gatien)    0  |  48 
-> [141.383343] (1:node@Gatien)   16  |  48 
-> [141.383343] (1:node@Gatien) Predecessor: 42
-> [193.730915] (2:node@McGee) My finger table:
-> [193.730915] (2:node@McGee) Start | Succ 
-> [193.730915] (2:node@McGee)   43  |  48 
-> [193.730915] (2:node@McGee)   44  |  42 
-> [193.730915] (2:node@McGee)   46  |  42 
-> [193.730915] (2:node@McGee)   50  |  42 
-> [193.730915] (2:node@McGee)   58  |  42 
-> [193.730915] (2:node@McGee)   10  |  42 
-> [193.730915] (2:node@McGee) Predecessor: 8
-> [242.028917] (1:node@Gatien) My finger table:
-> [242.028917] (1:node@Gatien) Start | Succ 
-> [242.028917] (1:node@Gatien)   49  |   1 
-> [242.028917] (1:node@Gatien)   50  |   1 
-> [242.028917] (1:node@Gatien)   52  |  48 
-> [242.028917] (1:node@Gatien)   56  |  48 
-> [242.028917] (1:node@Gatien)    0  |  48 
-> [242.028917] (1:node@Gatien)   16  |  48 
-> [242.028917] (1:node@Gatien) Predecessor: 42
-> [242.939681] (2:node@McGee) My finger table:
-> [242.939681] (2:node@McGee) Start | Succ 
-> [242.939681] (2:node@McGee)   43  |  48 
-> [242.939681] (2:node@McGee)   44  |  42 
-> [242.939681] (2:node@McGee)   46  |  42 
-> [242.939681] (2:node@McGee)   50  |  42 
-> [242.939681] (2:node@McGee)   58  |  42 
-> [242.939681] (2:node@McGee)   10  |  42 
-> [242.939681] (2:node@McGee) Predecessor: 38
-> [246.478513] (2:node@McGee) My finger table:
-> [246.478513] (2:node@McGee) Start | Succ 
-> [246.478513] (2:node@McGee)   43  |  48 
-> [246.478513] (2:node@McGee)   44  |  48 
-> [246.478513] (2:node@McGee)   46  |  42 
-> [246.478513] (2:node@McGee)   50  |  42 
-> [246.478513] (2:node@McGee)   58  |  42 
-> [246.478513] (2:node@McGee)   10  |  42 
-> [246.478513] (2:node@McGee) Predecessor: 38
-> [248.768529] (7:node@Boivin) My finger table:
-> [248.768529] (7:node@Boivin) Start | Succ 
-> [248.768529] (7:node@Boivin)    9  |  38 
-> [248.768529] (7:node@Boivin)   10  |  38 
-> [248.768529] (7:node@Boivin)   12  |   8 
-> [248.768529] (7:node@Boivin)   16  |   8 
-> [248.768529] (7:node@Boivin)   24  |   8 
-> [248.768529] (7:node@Boivin)   40  |   8 
-> [248.768529] (7:node@Boivin) Predecessor: -1
-> [255.578816] (4:node@Geoff) My finger table:
-> [255.578816] (4:node@Geoff) Start | Succ 
-> [255.578816] (4:node@Geoff)   33  |  42 
-> [255.578816] (4:node@Geoff)   34  |  42 
-> [255.578816] (4:node@Geoff)   36  |  32 
-> [255.578816] (4:node@Geoff)   40  |  32 
-> [255.578816] (4:node@Geoff)   48  |  32 
-> [255.578816] (4:node@Geoff)    0  |  32 
-> [255.578816] (4:node@Geoff) Predecessor: -1
-> [268.081409] (8:node@Jacquelin) My finger table:
-> [268.081409] (8:node@Jacquelin) Start | Succ 
-> [268.081409] (8:node@Jacquelin)    2  |   8 
-> [268.081409] (8:node@Jacquelin)    3  |   8 
-> [268.081409] (8:node@Jacquelin)    5  |   1 
-> [268.081409] (8:node@Jacquelin)    9  |   1 
-> [268.081409] (8:node@Jacquelin)   17  |   1 
-> [268.081409] (8:node@Jacquelin)   33  |   1 
-> [268.081409] (8:node@Jacquelin) Predecessor: 48
-> [269.130295] (7:node@Boivin) My finger table:
-> [269.130295] (7:node@Boivin) Start | Succ 
-> [269.130295] (7:node@Boivin)    9  |  38 
-> [269.130295] (7:node@Boivin)   10  |  38 
-> [269.130295] (7:node@Boivin)   12  |   8 
-> [269.130295] (7:node@Boivin)   16  |   8 
-> [269.130295] (7:node@Boivin)   24  |   8 
-> [269.130295] (7:node@Boivin)   40  |   8 
-> [269.130295] (7:node@Boivin) Predecessor: 1
-> [272.405922] (3:node@iRMX) My finger table:
-> [272.405922] (3:node@iRMX) Start | Succ 
-> [272.405922] (3:node@iRMX)   39  |  42 
-> [272.405922] (3:node@iRMX)   40  |  42 
-> [272.405922] (3:node@iRMX)   42  |  38 
-> [272.405922] (3:node@iRMX)   46  |  38 
-> [272.405922] (3:node@iRMX)   54  |  38 
-> [272.405922] (3:node@iRMX)    6  |  38 
-> [272.405922] (3:node@iRMX) Predecessor: -1
-> [284.571217] (5:node@TeX) My finger table:
-> [284.571217] (5:node@TeX) Start | Succ 
-> [284.571217] (5:node@TeX)   22  |  38 
-> [284.571217] (5:node@TeX)   23  |  38 
-> [284.571217] (5:node@TeX)   25  |  21 
-> [284.571217] (5:node@TeX)   29  |  21 
-> [284.571217] (5:node@TeX)   37  |  21 
-> [284.571217] (5:node@TeX)   53  |  21 
-> [284.571217] (5:node@TeX) Predecessor: -1
-> [289.289472] (3:node@iRMX) My finger table:
-> [289.289472] (3:node@iRMX) Start | Succ 
-> [289.289472] (3:node@iRMX)   39  |  42 
-> [289.289472] (3:node@iRMX)   40  |  42 
-> [289.289472] (3:node@iRMX)   42  |  38 
-> [289.289472] (3:node@iRMX)   46  |  38 
-> [289.289472] (3:node@iRMX)   54  |  38 
-> [289.289472] (3:node@iRMX)    6  |  38 
-> [289.289472] (3:node@iRMX) Predecessor: 21
-> [305.097152] (6:node@Jean_Yves) My finger table:
-> [305.097152] (6:node@Jean_Yves) Start | Succ 
-> [305.097152] (6:node@Jean_Yves)   15  |  21 
-> [305.097152] (6:node@Jean_Yves)   16  |  21 
-> [305.097152] (6:node@Jean_Yves)   18  |  14 
-> [305.097152] (6:node@Jean_Yves)   22  |  14 
-> [305.097152] (6:node@Jean_Yves)   30  |  14 
-> [305.097152] (6:node@Jean_Yves)   46  |  14 
-> [305.097152] (6:node@Jean_Yves) Predecessor: -1
-> [313.745119] (3:node@iRMX) My finger table:
-> [313.745119] (3:node@iRMX) Start | Succ 
-> [313.745119] (3:node@iRMX)   39  |  42 
-> [313.745119] (3:node@iRMX)   40  |  42 
-> [313.745119] (3:node@iRMX)   42  |  38 
-> [313.745119] (3:node@iRMX)   46  |  38 
-> [313.745119] (3:node@iRMX)   54  |  38 
-> [313.745119] (3:node@iRMX)    6  |  38 
-> [313.745119] (3:node@iRMX) Predecessor: 32
-> [338.952043] (5:node@TeX) My finger table:
-> [338.952043] (5:node@TeX) Start | Succ 
-> [338.952043] (5:node@TeX)   22  |  32 
-> [338.952043] (5:node@TeX)   23  |  38 
-> [338.952043] (5:node@TeX)   25  |  21 
-> [338.952043] (5:node@TeX)   29  |  21 
-> [338.952043] (5:node@TeX)   37  |  21 
-> [338.952043] (5:node@TeX)   53  |  21 
-> [338.952043] (5:node@TeX) Predecessor: 14
-> [359.463171] (4:node@Geoff) My finger table:
-> [359.463171] (4:node@Geoff) Start | Succ 
-> [359.463171] (4:node@Geoff)   33  |  38 
-> [359.463171] (4:node@Geoff)   34  |  42 
-> [359.463171] (4:node@Geoff)   36  |  32 
-> [359.463171] (4:node@Geoff)   40  |  32 
-> [359.463171] (4:node@Geoff)   48  |  32 
-> [359.463171] (4:node@Geoff)    0  |  32 
-> [359.463171] (4:node@Geoff) Predecessor: 21
-> [365.649541] (1:node@Gatien) My finger table:
-> [365.649541] (1:node@Gatien) Start | Succ 
-> [365.649541] (1:node@Gatien)   49  |   1 
-> [365.649541] (1:node@Gatien)   50  |   1 
-> [365.649541] (1:node@Gatien)   52  |   1 
-> [365.649541] (1:node@Gatien)   56  |  48 
-> [365.649541] (1:node@Gatien)    0  |  48 
-> [365.649541] (1:node@Gatien)   16  |  48 
-> [365.649541] (1:node@Gatien) Predecessor: 42
-> [367.870562] (2:node@McGee) My finger table:
-> [367.870562] (2:node@McGee) Start | Succ 
-> [367.870562] (2:node@McGee)   43  |  48 
-> [367.870562] (2:node@McGee)   44  |  48 
-> [367.870562] (2:node@McGee)   46  |  48 
-> [367.870562] (2:node@McGee)   50  |  42 
-> [367.870562] (2:node@McGee)   58  |  42 
-> [367.870562] (2:node@McGee)   10  |  42 
-> [367.870562] (2:node@McGee) Predecessor: 38
-> [371.550256] (7:node@Boivin) My finger table:
-> [371.550256] (7:node@Boivin) Start | Succ 
-> [371.550256] (7:node@Boivin)    9  |  21 
-> [371.550256] (7:node@Boivin)   10  |  38 
-> [371.550256] (7:node@Boivin)   12  |  21 
-> [371.550256] (7:node@Boivin)   16  |   8 
-> [371.550256] (7:node@Boivin)   24  |   8 
-> [371.550256] (7:node@Boivin)   40  |   8 
-> [371.550256] (7:node@Boivin) Predecessor: 1
-> [388.564180] (4:node@Geoff) My finger table:
-> [388.564180] (4:node@Geoff) Start | Succ 
-> [388.564180] (4:node@Geoff)   33  |  38 
-> [388.564180] (4:node@Geoff)   34  |  42 
-> [388.564180] (4:node@Geoff)   36  |  38 
-> [388.564180] (4:node@Geoff)   40  |  32 
-> [388.564180] (4:node@Geoff)   48  |  32 
-> [388.564180] (4:node@Geoff)    0  |  32 
-> [388.564180] (4:node@Geoff) Predecessor: 21
-> [389.021761] (8:node@Jacquelin) My finger table:
-> [389.021761] (8:node@Jacquelin) Start | Succ 
-> [389.021761] (8:node@Jacquelin)    2  |   8 
-> [389.021761] (8:node@Jacquelin)    3  |   8 
-> [389.021761] (8:node@Jacquelin)    5  |   8 
-> [389.021761] (8:node@Jacquelin)    9  |   1 
-> [389.021761] (8:node@Jacquelin)   17  |   1 
-> [389.021761] (8:node@Jacquelin)   33  |   1 
-> [389.021761] (8:node@Jacquelin) Predecessor: 48
-> [393.088792] (3:node@iRMX) My finger table:
-> [393.088792] (3:node@iRMX) Start | Succ 
-> [393.088792] (3:node@iRMX)   39  |  42 
-> [393.088792] (3:node@iRMX)   40  |  42 
-> [393.088792] (3:node@iRMX)   42  |  42 
-> [393.088792] (3:node@iRMX)   46  |  38 
-> [393.088792] (3:node@iRMX)   54  |  38 
-> [393.088792] (3:node@iRMX)    6  |  38 
-> [393.088792] (3:node@iRMX) Predecessor: 32
-> [412.961743] (5:node@TeX) My finger table:
-> [412.961743] (5:node@TeX) Start | Succ 
-> [412.961743] (5:node@TeX)   22  |  32 
-> [412.961743] (5:node@TeX)   23  |  38 
-> [412.961743] (5:node@TeX)   25  |  32 
-> [412.961743] (5:node@TeX)   29  |  21 
-> [412.961743] (5:node@TeX)   37  |  21 
-> [412.961743] (5:node@TeX)   53  |  21 
-> [412.961743] (5:node@TeX) Predecessor: 14
-> [434.596538] (6:node@Jean_Yves) My finger table:
-> [434.596538] (6:node@Jean_Yves) Start | Succ 
-> [434.596538] (6:node@Jean_Yves)   15  |  21 
-> [434.596538] (6:node@Jean_Yves)   16  |  21 
-> [434.596538] (6:node@Jean_Yves)   18  |  14 
-> [434.596538] (6:node@Jean_Yves)   22  |  14 
-> [434.596538] (6:node@Jean_Yves)   30  |  14 
-> [434.596538] (6:node@Jean_Yves)   46  |  14 
-> [434.596538] (6:node@Jean_Yves) Predecessor: 8
-> [443.806985] (6:node@Jean_Yves) My finger table:
-> [443.806985] (6:node@Jean_Yves) Start | Succ 
-> [443.806985] (6:node@Jean_Yves)   15  |  21 
-> [443.806985] (6:node@Jean_Yves)   16  |  21 
-> [443.806985] (6:node@Jean_Yves)   18  |  21 
-> [443.806985] (6:node@Jean_Yves)   22  |  14 
-> [443.806985] (6:node@Jean_Yves)   30  |  14 
-> [443.806985] (6:node@Jean_Yves)   46  |  14 
-> [443.806985] (6:node@Jean_Yves) Predecessor: 8
-> [488.763655] (1:node@Gatien) My finger table:
-> [488.763655] (1:node@Gatien) Start | Succ 
-> [488.763655] (1:node@Gatien)   49  |   1 
-> [488.763655] (1:node@Gatien)   50  |   1 
-> [488.763655] (1:node@Gatien)   52  |   1 
-> [488.763655] (1:node@Gatien)   56  |   1 
-> [488.763655] (1:node@Gatien)    0  |  48 
-> [488.763655] (1:node@Gatien)   16  |  48 
-> [488.763655] (1:node@Gatien) Predecessor: 42
-> [502.910503] (2:node@McGee) My finger table:
-> [502.910503] (2:node@McGee) Start | Succ 
-> [502.910503] (2:node@McGee)   43  |  48 
-> [502.910503] (2:node@McGee)   44  |  48 
-> [502.910503] (2:node@McGee)   46  |  48 
-> [502.910503] (2:node@McGee)   50  |   1 
-> [502.910503] (2:node@McGee)   58  |  42 
-> [502.910503] (2:node@McGee)   10  |  42 
-> [502.910503] (2:node@McGee) Predecessor: 38
-> [511.133139] (8:node@Jacquelin) My finger table:
-> [511.133139] (8:node@Jacquelin) Start | Succ 
-> [511.133139] (8:node@Jacquelin)    2  |   8 
-> [511.133139] (8:node@Jacquelin)    3  |   8 
-> [511.133139] (8:node@Jacquelin)    5  |   8 
-> [511.133139] (8:node@Jacquelin)    9  |  14 
-> [511.133139] (8:node@Jacquelin)   17  |   1 
-> [511.133139] (8:node@Jacquelin)   33  |   1 
-> [511.133139] (8:node@Jacquelin) Predecessor: 48
-> [528.169821] (7:node@Boivin) My finger table:
-> [528.169821] (7:node@Boivin) Start | Succ 
-> [528.169821] (7:node@Boivin)    9  |  14 
-> [528.169821] (7:node@Boivin)   10  |  38 
-> [528.169821] (7:node@Boivin)   12  |  21 
-> [528.169821] (7:node@Boivin)   16  |  21 
-> [528.169821] (7:node@Boivin)   24  |   8 
-> [528.169821] (7:node@Boivin)   40  |   8 
-> [528.169821] (7:node@Boivin) Predecessor: 1
-> [538.778249] (3:node@iRMX) My finger table:
-> [538.778249] (3:node@iRMX) Start | Succ 
-> [538.778249] (3:node@iRMX)   39  |  42 
-> [538.778249] (3:node@iRMX)   40  |  42 
-> [538.778249] (3:node@iRMX)   42  |  42 
-> [538.778249] (3:node@iRMX)   46  |  48 
-> [538.778249] (3:node@iRMX)   54  |  38 
-> [538.778249] (3:node@iRMX)    6  |  38 
-> [538.778249] (3:node@iRMX) Predecessor: 32
-> [561.853873] (5:node@TeX) My finger table:
-> [561.853873] (5:node@TeX) Start | Succ 
-> [561.853873] (5:node@TeX)   22  |  32 
-> [561.853873] (5:node@TeX)   23  |  38 
-> [561.853873] (5:node@TeX)   25  |  32 
-> [561.853873] (5:node@TeX)   29  |  32 
-> [561.853873] (5:node@TeX)   37  |  21 
-> [561.853873] (5:node@TeX)   53  |  21 
-> [561.853873] (5:node@TeX) Predecessor: 14
-> [564.892208] (4:node@Geoff) My finger table:
-> [564.892208] (4:node@Geoff) Start | Succ 
-> [564.892208] (4:node@Geoff)   33  |  38 
-> [564.892208] (4:node@Geoff)   34  |  42 
-> [564.892208] (4:node@Geoff)   36  |  38 
-> [564.892208] (4:node@Geoff)   40  |  42 
-> [564.892208] (4:node@Geoff)   48  |  32 
-> [564.892208] (4:node@Geoff)    0  |  32 
-> [564.892208] (4:node@Geoff) Predecessor: 21
-> [580.440544] (6:node@Jean_Yves) My finger table:
-> [580.440544] (6:node@Jean_Yves) Start | Succ 
-> [580.440544] (6:node@Jean_Yves)   15  |  21 
-> [580.440544] (6:node@Jean_Yves)   16  |  21 
-> [580.440544] (6:node@Jean_Yves)   18  |  21 
-> [580.440544] (6:node@Jean_Yves)   22  |  32 
-> [580.440544] (6:node@Jean_Yves)   30  |  14 
-> [580.440544] (6:node@Jean_Yves)   46  |  14 
-> [580.440544] (6:node@Jean_Yves) Predecessor: 8
-> [805.312658] (0:@) Messages created: 789
-> [805.312658] (0:@) Simulated time: 805.313
+> [  6.274348] (1:node@Gatien) My finger table:
+> [  6.274348] (1:node@Gatien) Start | Succ 
+> [  6.274348] (1:node@Gatien)   49  |   1 
+> [  6.274348] (1:node@Gatien)   50  |  48 
+> [  6.274348] (1:node@Gatien)   52  |  48 
+> [  6.274348] (1:node@Gatien)   56  |  48 
+> [  6.274348] (1:node@Gatien)    0  |  48 
+> [  6.274348] (1:node@Gatien)   16  |  48 
+> [  6.274348] (1:node@Gatien) Predecessor: -1
+> [ 10.888156] (2:node@McGee) My finger table:
+> [ 10.888156] (2:node@McGee) Start | Succ 
+> [ 10.888156] (2:node@McGee)   43  |   1 
+> [ 10.888156] (2:node@McGee)   44  |  42 
+> [ 10.888156] (2:node@McGee)   46  |  42 
+> [ 10.888156] (2:node@McGee)   50  |  42 
+> [ 10.888156] (2:node@McGee)   58  |  42 
+> [ 10.888156] (2:node@McGee)   10  |  42 
+> [ 10.888156] (2:node@McGee) Predecessor: -1
+> [ 18.043375] (3:node@iRMX) My finger table:
+> [ 18.043375] (3:node@iRMX) Start | Succ 
+> [ 18.043375] (3:node@iRMX)   39  |   1 
+> [ 18.043375] (3:node@iRMX)   40  |  38 
+> [ 18.043375] (3:node@iRMX)   42  |  38 
+> [ 18.043375] (3:node@iRMX)   46  |  38 
+> [ 18.043375] (3:node@iRMX)   54  |  38 
+> [ 18.043375] (3:node@iRMX)    6  |  38 
+> [ 18.043375] (3:node@iRMX) Predecessor: -1
+> [ 20.004944] (4:node@Geoff) My finger table:
+> [ 20.004944] (4:node@Geoff) Start | Succ 
+> [ 20.004944] (4:node@Geoff)   33  |   1 
+> [ 20.004944] (4:node@Geoff)   34  |  32 
+> [ 20.004944] (4:node@Geoff)   36  |  32 
+> [ 20.004944] (4:node@Geoff)   40  |  32 
+> [ 20.004944] (4:node@Geoff)   48  |  32 
+> [ 20.004944] (4:node@Geoff)    0  |  32 
+> [ 20.004944] (4:node@Geoff) Predecessor: -1
+> [ 26.812102] (5:node@TeX) My finger table:
+> [ 26.812102] (5:node@TeX) Start | Succ 
+> [ 26.812102] (5:node@TeX)   22  |   1 
+> [ 26.812102] (5:node@TeX)   23  |  21 
+> [ 26.812102] (5:node@TeX)   25  |  21 
+> [ 26.812102] (5:node@TeX)   29  |  21 
+> [ 26.812102] (5:node@TeX)   37  |  21 
+> [ 26.812102] (5:node@TeX)   53  |  21 
+> [ 26.812102] (5:node@TeX) Predecessor: -1
+> [ 30.924531] (6:node@Jean_Yves) My finger table:
+> [ 30.924531] (6:node@Jean_Yves) Start | Succ 
+> [ 30.924531] (6:node@Jean_Yves)   15  |   1 
+> [ 30.924531] (6:node@Jean_Yves)   16  |  14 
+> [ 30.924531] (6:node@Jean_Yves)   18  |  14 
+> [ 30.924531] (6:node@Jean_Yves)   22  |  14 
+> [ 30.924531] (6:node@Jean_Yves)   30  |  14 
+> [ 30.924531] (6:node@Jean_Yves)   46  |  14 
+> [ 30.924531] (6:node@Jean_Yves) Predecessor: -1
+> [ 36.048186] (7:node@Boivin) My finger table:
+> [ 36.048186] (7:node@Boivin) Start | Succ 
+> [ 36.048186] (7:node@Boivin)    9  |   1 
+> [ 36.048186] (7:node@Boivin)   10  |   8 
+> [ 36.048186] (7:node@Boivin)   12  |   8 
+> [ 36.048186] (7:node@Boivin)   16  |   8 
+> [ 36.048186] (7:node@Boivin)   24  |   8 
+> [ 36.048186] (7:node@Boivin)   40  |   8 
+> [ 36.048186] (7:node@Boivin) Predecessor: -1
+> [ 74.998500] (8:node@Jacquelin) My finger table:
+> [ 74.998500] (8:node@Jacquelin) Start | Succ 
+> [ 74.998500] (8:node@Jacquelin)    2  |   1 
+> [ 74.998500] (8:node@Jacquelin)    3  |   1 
+> [ 74.998500] (8:node@Jacquelin)    5  |   1 
+> [ 74.998500] (8:node@Jacquelin)    9  |   1 
+> [ 74.998500] (8:node@Jacquelin)   17  |   1 
+> [ 74.998500] (8:node@Jacquelin)   33  |   1 
+> [ 74.998500] (8:node@Jacquelin) Predecessor: 32
+> [ 75.886856] (8:node@Jacquelin) My finger table:
+> [ 75.886856] (8:node@Jacquelin) Start | Succ 
+> [ 75.886856] (8:node@Jacquelin)    2  |  32 
+> [ 75.886856] (8:node@Jacquelin)    3  |   1 
+> [ 75.886856] (8:node@Jacquelin)    5  |   1 
+> [ 75.886856] (8:node@Jacquelin)    9  |   1 
+> [ 75.886856] (8:node@Jacquelin)   17  |   1 
+> [ 75.886856] (8:node@Jacquelin)   33  |   1 
+> [ 75.886856] (8:node@Jacquelin) Predecessor: 42
+> [ 77.161304] (8:node@Jacquelin) My finger table:
+> [ 77.161304] (8:node@Jacquelin) Start | Succ 
+> [ 77.161304] (8:node@Jacquelin)    2  |  32 
+> [ 77.161304] (8:node@Jacquelin)    3  |   1 
+> [ 77.161304] (8:node@Jacquelin)    5  |   1 
+> [ 77.161304] (8:node@Jacquelin)    9  |   1 
+> [ 77.161304] (8:node@Jacquelin)   17  |   1 
+> [ 77.161304] (8:node@Jacquelin)   33  |   1 
+> [ 77.161304] (8:node@Jacquelin) Predecessor: 48
+> [102.428555] (4:node@Geoff) My finger table:
+> [102.428555] (4:node@Geoff) Start | Succ 
+> [102.428555] (4:node@Geoff)   33  |  48 
+> [102.428555] (4:node@Geoff)   34  |  32 
+> [102.428555] (4:node@Geoff)   36  |  32 
+> [102.428555] (4:node@Geoff)   40  |  32 
+> [102.428555] (4:node@Geoff)   48  |  32 
+> [102.428555] (4:node@Geoff)    0  |  32 
+> [102.428555] (4:node@Geoff) Predecessor: 1
+> [128.446154] (1:node@Gatien) My finger table:
+> [128.446154] (1:node@Gatien) Start | Succ 
+> [128.446154] (1:node@Gatien)   49  |   1 
+> [128.446154] (1:node@Gatien)   50  |  48 
+> [128.446154] (1:node@Gatien)   52  |  48 
+> [128.446154] (1:node@Gatien)   56  |  48 
+> [128.446154] (1:node@Gatien)    0  |  48 
+> [128.446154] (1:node@Gatien)   16  |  48 
+> [128.446154] (1:node@Gatien) Predecessor: 32
+> [138.445954] (1:node@Gatien) My finger table:
+> [138.445954] (1:node@Gatien) Start | Succ 
+> [138.445954] (1:node@Gatien)   49  |   1 
+> [138.445954] (1:node@Gatien)   50  |  48 
+> [138.445954] (1:node@Gatien)   52  |  48 
+> [138.445954] (1:node@Gatien)   56  |  48 
+> [138.445954] (1:node@Gatien)    0  |  48 
+> [138.445954] (1:node@Gatien)   16  |  48 
+> [138.445954] (1:node@Gatien) Predecessor: 42
+> [211.728421] (2:node@McGee) My finger table:
+> [211.728421] (2:node@McGee) Start | Succ 
+> [211.728421] (2:node@McGee)   43  |  48 
+> [211.728421] (2:node@McGee)   44  |  42 
+> [211.728421] (2:node@McGee)   46  |  42 
+> [211.728421] (2:node@McGee)   50  |  42 
+> [211.728421] (2:node@McGee)   58  |  42 
+> [211.728421] (2:node@McGee)   10  |  42 
+> [211.728421] (2:node@McGee) Predecessor: 38
+> [248.221993] (1:node@Gatien) My finger table:
+> [248.221993] (1:node@Gatien) Start | Succ 
+> [248.221993] (1:node@Gatien)   49  |   1 
+> [248.221993] (1:node@Gatien)   50  |   1 
+> [248.221993] (1:node@Gatien)   52  |  48 
+> [248.221993] (1:node@Gatien)   56  |  48 
+> [248.221993] (1:node@Gatien)    0  |  48 
+> [248.221993] (1:node@Gatien)   16  |  48 
+> [248.221993] (1:node@Gatien) Predecessor: 42
+> [251.135518] (7:node@Boivin) My finger table:
+> [251.135518] (7:node@Boivin) Start | Succ 
+> [251.135518] (7:node@Boivin)    9  |  38 
+> [251.135518] (7:node@Boivin)   10  |  38 
+> [251.135518] (7:node@Boivin)   12  |   8 
+> [251.135518] (7:node@Boivin)   16  |   8 
+> [251.135518] (7:node@Boivin)   24  |   8 
+> [251.135518] (7:node@Boivin)   40  |   8 
+> [251.135518] (7:node@Boivin) Predecessor: -1
+> [259.451693] (2:node@McGee) My finger table:
+> [259.451693] (2:node@McGee) Start | Succ 
+> [259.451693] (2:node@McGee)   43  |  48 
+> [259.451693] (2:node@McGee)   44  |  48 
+> [259.451693] (2:node@McGee)   46  |  42 
+> [259.451693] (2:node@McGee)   50  |  42 
+> [259.451693] (2:node@McGee)   58  |  42 
+> [259.451693] (2:node@McGee)   10  |  42 
+> [259.451693] (2:node@McGee) Predecessor: 38
+> [309.452319] (4:node@Geoff) My finger table:
+> [309.452319] (4:node@Geoff) Start | Succ 
+> [309.452319] (4:node@Geoff)   33  |  38 
+> [309.452319] (4:node@Geoff)   34  |  38 
+> [309.452319] (4:node@Geoff)   36  |  32 
+> [309.452319] (4:node@Geoff)   40  |  32 
+> [309.452319] (4:node@Geoff)   48  |  32 
+> [309.452319] (4:node@Geoff)    0  |  32 
+> [309.452319] (4:node@Geoff) Predecessor: 1
+> [309.457663] (8:node@Jacquelin) My finger table:
+> [309.457663] (8:node@Jacquelin) Start | Succ 
+> [309.457663] (8:node@Jacquelin)    2  |  32 
+> [309.457663] (8:node@Jacquelin)    3  |  32 
+> [309.457663] (8:node@Jacquelin)    5  |   1 
+> [309.457663] (8:node@Jacquelin)    9  |   1 
+> [309.457663] (8:node@Jacquelin)   17  |   1 
+> [309.457663] (8:node@Jacquelin)   33  |   1 
+> [309.457663] (8:node@Jacquelin) Predecessor: 48
+> [323.904249] (6:node@Jean_Yves) My finger table:
+> [323.904249] (6:node@Jean_Yves) Start | Succ 
+> [323.904249] (6:node@Jean_Yves)   15  |  38 
+> [323.904249] (6:node@Jean_Yves)   16  |  38 
+> [323.904249] (6:node@Jean_Yves)   18  |  14 
+> [323.904249] (6:node@Jean_Yves)   22  |  14 
+> [323.904249] (6:node@Jean_Yves)   30  |  14 
+> [323.904249] (6:node@Jean_Yves)   46  |  14 
+> [323.904249] (6:node@Jean_Yves) Predecessor: -1
+> [325.353251] (3:node@iRMX) My finger table:
+> [325.353251] (3:node@iRMX) Start | Succ 
+> [325.353251] (3:node@iRMX)   39  |  42 
+> [325.353251] (3:node@iRMX)   40  |  38 
+> [325.353251] (3:node@iRMX)   42  |  38 
+> [325.353251] (3:node@iRMX)   46  |  38 
+> [325.353251] (3:node@iRMX)   54  |  38 
+> [325.353251] (3:node@iRMX)    6  |  38 
+> [325.353251] (3:node@iRMX) Predecessor: 32
+> [330.576799] (3:node@iRMX) My finger table:
+> [330.576799] (3:node@iRMX) Start | Succ 
+> [330.576799] (3:node@iRMX)   39  |  42 
+> [330.576799] (3:node@iRMX)   40  |  42 
+> [330.576799] (3:node@iRMX)   42  |  38 
+> [330.576799] (3:node@iRMX)   46  |  38 
+> [330.576799] (3:node@iRMX)   54  |  38 
+> [330.576799] (3:node@iRMX)    6  |  38 
+> [330.576799] (3:node@iRMX) Predecessor: 32
+> [352.615320] (5:node@TeX) My finger table:
+> [352.615320] (5:node@TeX) Start | Succ 
+> [352.615320] (5:node@TeX)   22  |  32 
+> [352.615320] (5:node@TeX)   23  |  32 
+> [352.615320] (5:node@TeX)   25  |  21 
+> [352.615320] (5:node@TeX)   29  |  21 
+> [352.615320] (5:node@TeX)   37  |  21 
+> [352.615320] (5:node@TeX)   53  |  21 
+> [352.615320] (5:node@TeX) Predecessor: -1
+> [369.575244] (1:node@Gatien) My finger table:
+> [369.575244] (1:node@Gatien) Start | Succ 
+> [369.575244] (1:node@Gatien)   49  |   1 
+> [369.575244] (1:node@Gatien)   50  |   1 
+> [369.575244] (1:node@Gatien)   52  |   1 
+> [369.575244] (1:node@Gatien)   56  |  48 
+> [369.575244] (1:node@Gatien)    0  |  48 
+> [369.575244] (1:node@Gatien)   16  |  48 
+> [369.575244] (1:node@Gatien) Predecessor: 42
+> [382.882723] (2:node@McGee) My finger table:
+> [382.882723] (2:node@McGee) Start | Succ 
+> [382.882723] (2:node@McGee)   43  |  48 
+> [382.882723] (2:node@McGee)   44  |  48 
+> [382.882723] (2:node@McGee)   46  |  48 
+> [382.882723] (2:node@McGee)   50  |  42 
+> [382.882723] (2:node@McGee)   58  |  42 
+> [382.882723] (2:node@McGee)   10  |  42 
+> [382.882723] (2:node@McGee) Predecessor: 38
+> [384.345510] (4:node@Geoff) My finger table:
+> [384.345510] (4:node@Geoff) Start | Succ 
+> [384.345510] (4:node@Geoff)   33  |  38 
+> [384.345510] (4:node@Geoff)   34  |  38 
+> [384.345510] (4:node@Geoff)   36  |  32 
+> [384.345510] (4:node@Geoff)   40  |  32 
+> [384.345510] (4:node@Geoff)   48  |  32 
+> [384.345510] (4:node@Geoff)    0  |  32 
+> [384.345510] (4:node@Geoff) Predecessor: 21
+> [420.326446] (7:node@Boivin) My finger table:
+> [420.326446] (7:node@Boivin) Start | Succ 
+> [420.326446] (7:node@Boivin)    9  |  21 
+> [420.326446] (7:node@Boivin)   10  |  38 
+> [420.326446] (7:node@Boivin)   12  |  21 
+> [420.326446] (7:node@Boivin)   16  |   8 
+> [420.326446] (7:node@Boivin)   24  |   8 
+> [420.326446] (7:node@Boivin)   40  |   8 
+> [420.326446] (7:node@Boivin) Predecessor: -1
+> [440.893903] (5:node@TeX) My finger table:
+> [440.893903] (5:node@TeX) Start | Succ 
+> [440.893903] (5:node@TeX)   22  |  32 
+> [440.893903] (5:node@TeX)   23  |  32 
+> [440.893903] (5:node@TeX)   25  |  21 
+> [440.893903] (5:node@TeX)   29  |  21 
+> [440.893903] (5:node@TeX)   37  |  21 
+> [440.893903] (5:node@TeX)   53  |  21 
+> [440.893903] (5:node@TeX) Predecessor: 14
+> [479.759018] (3:node@iRMX) My finger table:
+> [479.759018] (3:node@iRMX) Start | Succ 
+> [479.759018] (3:node@iRMX)   39  |  42 
+> [479.759018] (3:node@iRMX)   40  |  42 
+> [479.759018] (3:node@iRMX)   42  |  42 
+> [479.759018] (3:node@iRMX)   46  |  38 
+> [479.759018] (3:node@iRMX)   54  |  38 
+> [479.759018] (3:node@iRMX)    6  |  38 
+> [479.759018] (3:node@iRMX) Predecessor: 32
+> [482.033272] (4:node@Geoff) My finger table:
+> [482.033272] (4:node@Geoff) Start | Succ 
+> [482.033272] (4:node@Geoff)   33  |  38 
+> [482.033272] (4:node@Geoff)   34  |  38 
+> [482.033272] (4:node@Geoff)   36  |  38 
+> [482.033272] (4:node@Geoff)   40  |  32 
+> [482.033272] (4:node@Geoff)   48  |  32 
+> [482.033272] (4:node@Geoff)    0  |  32 
+> [482.033272] (4:node@Geoff) Predecessor: 21
+> [490.659190] (1:node@Gatien) My finger table:
+> [490.659190] (1:node@Gatien) Start | Succ 
+> [490.659190] (1:node@Gatien)   49  |   1 
+> [490.659190] (1:node@Gatien)   50  |   1 
+> [490.659190] (1:node@Gatien)   52  |   1 
+> [490.659190] (1:node@Gatien)   56  |   1 
+> [490.659190] (1:node@Gatien)    0  |  48 
+> [490.659190] (1:node@Gatien)   16  |  48 
+> [490.659190] (1:node@Gatien) Predecessor: 42
+> [498.176314] (3:node@iRMX) My finger table:
+> [498.176314] (3:node@iRMX) Start | Succ 
+> [498.176314] (3:node@iRMX)   39  |  42 
+> [498.176314] (3:node@iRMX)   40  |  42 
+> [498.176314] (3:node@iRMX)   42  |  42 
+> [498.176314] (3:node@iRMX)   46  |  38 
+> [498.176314] (3:node@iRMX)   54  |  38 
+> [498.176314] (3:node@iRMX)    6  |  38 
+> [498.176314] (3:node@iRMX) Predecessor: 32
+> [498.611193] (6:node@Jean_Yves) My finger table:
+> [498.611193] (6:node@Jean_Yves) Start | Succ 
+> [498.611193] (6:node@Jean_Yves)   15  |  21 
+> [498.611193] (6:node@Jean_Yves)   16  |  38 
+> [498.611193] (6:node@Jean_Yves)   18  |  21 
+> [498.611193] (6:node@Jean_Yves)   22  |  14 
+> [498.611193] (6:node@Jean_Yves)   30  |  14 
+> [498.611193] (6:node@Jean_Yves)   46  |  14 
+> [498.611193] (6:node@Jean_Yves) Predecessor: -1
+> [500.558742] (8:node@Jacquelin) My finger table:
+> [500.558742] (8:node@Jacquelin) Start | Succ 
+> [500.558742] (8:node@Jacquelin)    2  |  14 
+> [500.558742] (8:node@Jacquelin)    3  |  32 
+> [500.558742] (8:node@Jacquelin)    5  |  14 
+> [500.558742] (8:node@Jacquelin)    9  |   1 
+> [500.558742] (8:node@Jacquelin)   17  |   1 
+> [500.558742] (8:node@Jacquelin)   33  |   1 
+> [500.558742] (8:node@Jacquelin) Predecessor: 48
+> [505.760908] (2:node@McGee) My finger table:
+> [505.760908] (2:node@McGee) Start | Succ 
+> [505.760908] (2:node@McGee)   43  |  48 
+> [505.760908] (2:node@McGee)   44  |  48 
+> [505.760908] (2:node@McGee)   46  |  48 
+> [505.760908] (2:node@McGee)   50  |   1 
+> [505.760908] (2:node@McGee)   58  |  42 
+> [505.760908] (2:node@McGee)   10  |  42 
+> [505.760908] (2:node@McGee) Predecessor: 38
+> [509.829088] (5:node@TeX) My finger table:
+> [509.829088] (5:node@TeX) Start | Succ 
+> [509.829088] (5:node@TeX)   22  |  32 
+> [509.829088] (5:node@TeX)   23  |  32 
+> [509.829088] (5:node@TeX)   25  |  32 
+> [509.829088] (5:node@TeX)   29  |  21 
+> [509.829088] (5:node@TeX)   37  |  21 
+> [509.829088] (5:node@TeX)   53  |  21 
+> [509.829088] (5:node@TeX) Predecessor: 14
+> [533.786389] (6:node@Jean_Yves) My finger table:
+> [533.786389] (6:node@Jean_Yves) Start | Succ 
+> [533.786389] (6:node@Jean_Yves)   15  |  21 
+> [533.786389] (6:node@Jean_Yves)   16  |  38 
+> [533.786389] (6:node@Jean_Yves)   18  |  21 
+> [533.786389] (6:node@Jean_Yves)   22  |  14 
+> [533.786389] (6:node@Jean_Yves)   30  |  14 
+> [533.786389] (6:node@Jean_Yves)   46  |  14 
+> [533.786389] (6:node@Jean_Yves) Predecessor: 8
+> [549.075353] (7:node@Boivin) My finger table:
+> [549.075353] (7:node@Boivin) Start | Succ 
+> [549.075353] (7:node@Boivin)    9  |  14 
+> [549.075353] (7:node@Boivin)   10  |  38 
+> [549.075353] (7:node@Boivin)   12  |  21 
+> [549.075353] (7:node@Boivin)   16  |  21 
+> [549.075353] (7:node@Boivin)   24  |   8 
+> [549.075353] (7:node@Boivin)   40  |   8 
+> [549.075353] (7:node@Boivin) Predecessor: -1
+> [753.389688] (0:@) Messages created: 605
+> [753.389688] (0:@) Simulated time: 753.39
 
 ! output sort
 $ $SG_TEST_EXENV ${bindir:=.}/chord$EXEEXT ${srcdir:=.}/../../platforms/cluster.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
@@ -567,2408 +513,2327 @@ $ $SG_TEST_EXENV ${bindir:=.}/chord$EXEEXT ${srcdir:=.}/../../platforms/cluster.
 > [   5.000000] (8:node@c-7.me)  14199064  | 10004760 
 > [   5.000000] (8:node@c-7.me)  1616152  | 10004760 
 > [   5.000000] (8:node@c-7.me) Predecessor: -1
-> [   6.000000] (2:node@c-1.me) My finger table:
-> [   6.000000] (2:node@c-1.me) Start | Succ 
-> [   6.000000] (2:node@c-1.me)  366681  |  42 
-> [   6.000000] (2:node@c-1.me)  366682  | 366680 
-> [   6.000000] (2:node@c-1.me)  366684  | 366680 
-> [   6.000000] (2:node@c-1.me)  366688  | 366680 
-> [   6.000000] (2:node@c-1.me)  366696  | 366680 
-> [   6.000000] (2:node@c-1.me)  366712  | 366680 
-> [   6.000000] (2:node@c-1.me)  366744  | 366680 
-> [   6.000000] (2:node@c-1.me)  366808  | 366680 
-> [   6.000000] (2:node@c-1.me)  366936  | 366680 
-> [   6.000000] (2:node@c-1.me)  367192  | 366680 
-> [   6.000000] (2:node@c-1.me)  367704  | 366680 
-> [   6.000000] (2:node@c-1.me)  368728  | 366680 
-> [   6.000000] (2:node@c-1.me)  370776  | 366680 
-> [   6.000000] (2:node@c-1.me)  374872  | 366680 
-> [   6.000000] (2:node@c-1.me)  383064  | 366680 
-> [   6.000000] (2:node@c-1.me)  399448  | 366680 
-> [   6.000000] (2:node@c-1.me)  432216  | 366680 
-> [   6.000000] (2:node@c-1.me)  497752  | 366680 
-> [   6.000000] (2:node@c-1.me)  628824  | 366680 
-> [   6.000000] (2:node@c-1.me)  890968  | 366680 
-> [   6.000000] (2:node@c-1.me)  1415256  | 366680 
-> [   6.000000] (2:node@c-1.me)  2463832  | 366680 
-> [   6.000000] (2:node@c-1.me)  4560984  | 366680 
-> [   6.000000] (2:node@c-1.me)  8755288  | 366680 
-> [   6.000000] (2:node@c-1.me) Predecessor: -1
-> [   8.000000] (7:node@c-6.me) My finger table:
-> [   8.000000] (7:node@c-6.me) Start | Succ 
-> [   8.000000] (7:node@c-6.me)  16728097  | 1319738 
-> [   8.000000] (7:node@c-6.me)  16728098  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728100  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [   8.000000] (7:node@c-6.me)  16416  | 16728096 
-> [   8.000000] (7:node@c-6.me)  81952  | 16728096 
-> [   8.000000] (7:node@c-6.me)  213024  | 16728096 
-> [   8.000000] (7:node@c-6.me)  475168  | 16728096 
-> [   8.000000] (7:node@c-6.me)  999456  | 16728096 
-> [   8.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [   8.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [   8.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [   8.000000] (7:node@c-6.me) Predecessor: -1
-> [   9.000000] (10:node@c-9.me) My finger table:
-> [   9.000000] (10:node@c-9.me) Start | Succ 
-> [   9.000000] (10:node@c-9.me)  2015254  | 1319738 
-> [   9.000000] (10:node@c-9.me)  2015255  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015257  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015261  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015269  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [   9.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [   9.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [   9.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [   9.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [   9.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [   9.000000] (10:node@c-9.me) Predecessor: -1
-> [  11.000000] (4:node@c-3.me) My finger table:
-> [  11.000000] (4:node@c-3.me) Start | Succ 
-> [  11.000000] (4:node@c-3.me)  1319739  |  42 
-> [  11.000000] (4:node@c-3.me)  1319740  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319742  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [  11.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [  11.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [  11.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [  11.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [  11.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [  11.000000] (4:node@c-3.me) Predecessor: -1
-> [  16.000000] (9:node@c-8.me) My finger table:
-> [  16.000000] (9:node@c-8.me) Start | Succ 
-> [  16.000000] (9:node@c-8.me)  6518809  |  42 
-> [  16.000000] (9:node@c-8.me)  6518810  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518812  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [  16.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [  16.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [  16.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [  16.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [  16.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [  16.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [  16.000000] (9:node@c-8.me) Predecessor: -1
-> [  26.000000] (4:node@c-3.me) My finger table:
-> [  26.000000] (4:node@c-3.me) Start | Succ 
-> [  26.000000] (4:node@c-3.me)  1319739  |  42 
-> [  26.000000] (4:node@c-3.me)  1319740  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319742  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [  26.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [  26.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [  26.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [  26.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [  26.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [  26.000000] (4:node@c-3.me) Predecessor: 16728096
-> [  31.000000] (2:node@c-1.me) My finger table:
-> [  31.000000] (2:node@c-1.me) Start | Succ 
-> [  31.000000] (2:node@c-1.me)  366681  |  42 
-> [  31.000000] (2:node@c-1.me)  366682  | 366680 
-> [  31.000000] (2:node@c-1.me)  366684  | 366680 
-> [  31.000000] (2:node@c-1.me)  366688  | 366680 
-> [  31.000000] (2:node@c-1.me)  366696  | 366680 
-> [  31.000000] (2:node@c-1.me)  366712  | 366680 
-> [  31.000000] (2:node@c-1.me)  366744  | 366680 
-> [  31.000000] (2:node@c-1.me)  366808  | 366680 
-> [  31.000000] (2:node@c-1.me)  366936  | 366680 
-> [  31.000000] (2:node@c-1.me)  367192  | 366680 
-> [  31.000000] (2:node@c-1.me)  367704  | 366680 
-> [  31.000000] (2:node@c-1.me)  368728  | 366680 
-> [  31.000000] (2:node@c-1.me)  370776  | 366680 
-> [  31.000000] (2:node@c-1.me)  374872  | 366680 
-> [  31.000000] (2:node@c-1.me)  383064  | 366680 
-> [  31.000000] (2:node@c-1.me)  399448  | 366680 
-> [  31.000000] (2:node@c-1.me)  432216  | 366680 
-> [  31.000000] (2:node@c-1.me)  497752  | 366680 
-> [  31.000000] (2:node@c-1.me)  628824  | 366680 
-> [  31.000000] (2:node@c-1.me)  890968  | 366680 
-> [  31.000000] (2:node@c-1.me)  1415256  | 366680 
-> [  31.000000] (2:node@c-1.me)  2463832  | 366680 
-> [  31.000000] (2:node@c-1.me)  4560984  | 366680 
-> [  31.000000] (2:node@c-1.me)  8755288  | 366680 
-> [  31.000000] (2:node@c-1.me) Predecessor: 16509405
-> [  32.000000] (5:node@c-4.me) My finger table:
-> [  32.000000] (5:node@c-4.me) Start | Succ 
-> [  32.000000] (5:node@c-4.me)  16509406  | 366680 
-> [  32.000000] (5:node@c-4.me)  16509407  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509409  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509413  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509421  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509437  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [  32.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [  32.000000] (5:node@c-4.me)  256477  | 16509405 
-> [  32.000000] (5:node@c-4.me)  780765  | 16509405 
-> [  32.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [  32.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [  32.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [  32.000000] (5:node@c-4.me) Predecessor: 10004760
-> [  38.000000] (3:node@c-2.me) My finger table:
-> [  38.000000] (3:node@c-2.me) Start | Succ 
-> [  38.000000] (3:node@c-2.me)  533745  | 16509405 
-> [  38.000000] (3:node@c-2.me)  533746  | 533744 
-> [  38.000000] (3:node@c-2.me)  533748  | 533744 
-> [  38.000000] (3:node@c-2.me)  533752  | 533744 
-> [  38.000000] (3:node@c-2.me)  533760  | 533744 
-> [  38.000000] (3:node@c-2.me)  533776  | 533744 
-> [  38.000000] (3:node@c-2.me)  533808  | 533744 
-> [  38.000000] (3:node@c-2.me)  533872  | 533744 
-> [  38.000000] (3:node@c-2.me)  534000  | 533744 
-> [  38.000000] (3:node@c-2.me)  534256  | 533744 
-> [  38.000000] (3:node@c-2.me)  534768  | 533744 
-> [  38.000000] (3:node@c-2.me)  535792  | 533744 
-> [  38.000000] (3:node@c-2.me)  537840  | 533744 
-> [  38.000000] (3:node@c-2.me)  541936  | 533744 
-> [  38.000000] (3:node@c-2.me)  550128  | 533744 
-> [  38.000000] (3:node@c-2.me)  566512  | 533744 
-> [  38.000000] (3:node@c-2.me)  599280  | 533744 
-> [  38.000000] (3:node@c-2.me)  664816  | 533744 
-> [  38.000000] (3:node@c-2.me)  795888  | 533744 
-> [  38.000000] (3:node@c-2.me)  1058032  | 533744 
-> [  38.000000] (3:node@c-2.me)  1582320  | 533744 
-> [  38.000000] (3:node@c-2.me)  2630896  | 533744 
-> [  38.000000] (3:node@c-2.me)  4728048  | 533744 
-> [  38.000000] (3:node@c-2.me)  8922352  | 533744 
-> [  38.000000] (3:node@c-2.me) Predecessor: 10874876
-> [  50.000000] (1:node@c-0.me) My finger table:
-> [  50.000000] (1:node@c-0.me) Start | Succ 
-> [  50.000000] (1:node@c-0.me)   43  |  42 
-> [  50.000000] (1:node@c-0.me)   44  |  42 
-> [  50.000000] (1:node@c-0.me)   46  |  42 
-> [  50.000000] (1:node@c-0.me)   50  |  42 
-> [  50.000000] (1:node@c-0.me)   58  |  42 
-> [  50.000000] (1:node@c-0.me)   74  |  42 
-> [  50.000000] (1:node@c-0.me)  106  |  42 
-> [  50.000000] (1:node@c-0.me)  170  |  42 
-> [  50.000000] (1:node@c-0.me)  298  |  42 
-> [  50.000000] (1:node@c-0.me)  554  |  42 
-> [  50.000000] (1:node@c-0.me)  1066  |  42 
-> [  50.000000] (1:node@c-0.me)  2090  |  42 
-> [  50.000000] (1:node@c-0.me)  4138  |  42 
-> [  50.000000] (1:node@c-0.me)  8234  |  42 
-> [  50.000000] (1:node@c-0.me)  16426  |  42 
-> [  50.000000] (1:node@c-0.me)  32810  |  42 
-> [  50.000000] (1:node@c-0.me)  65578  |  42 
-> [  50.000000] (1:node@c-0.me)  131114  |  42 
-> [  50.000000] (1:node@c-0.me)  262186  |  42 
-> [  50.000000] (1:node@c-0.me)  524330  |  42 
-> [  50.000000] (1:node@c-0.me)  1048618  |  42 
-> [  50.000000] (1:node@c-0.me)  2097194  |  42 
-> [  50.000000] (1:node@c-0.me)  4194346  |  42 
-> [  50.000000] (1:node@c-0.me)  8388650  |  42 
-> [  50.000000] (1:node@c-0.me) Predecessor: 366680
-> [  60.000000] (1:node@c-0.me) My finger table:
-> [  60.000000] (1:node@c-0.me) Start | Succ 
-> [  60.000000] (1:node@c-0.me)   43  |  42 
-> [  60.000000] (1:node@c-0.me)   44  |  42 
-> [  60.000000] (1:node@c-0.me)   46  |  42 
-> [  60.000000] (1:node@c-0.me)   50  |  42 
-> [  60.000000] (1:node@c-0.me)   58  |  42 
-> [  60.000000] (1:node@c-0.me)   74  |  42 
-> [  60.000000] (1:node@c-0.me)  106  |  42 
-> [  60.000000] (1:node@c-0.me)  170  |  42 
-> [  60.000000] (1:node@c-0.me)  298  |  42 
-> [  60.000000] (1:node@c-0.me)  554  |  42 
-> [  60.000000] (1:node@c-0.me)  1066  |  42 
-> [  60.000000] (1:node@c-0.me)  2090  |  42 
-> [  60.000000] (1:node@c-0.me)  4138  |  42 
-> [  60.000000] (1:node@c-0.me)  8234  |  42 
-> [  60.000000] (1:node@c-0.me)  16426  |  42 
-> [  60.000000] (1:node@c-0.me)  32810  |  42 
-> [  60.000000] (1:node@c-0.me)  65578  |  42 
-> [  60.000000] (1:node@c-0.me)  131114  |  42 
-> [  60.000000] (1:node@c-0.me)  262186  |  42 
-> [  60.000000] (1:node@c-0.me)  524330  |  42 
-> [  60.000000] (1:node@c-0.me)  1048618  |  42 
-> [  60.000000] (1:node@c-0.me)  2097194  |  42 
-> [  60.000000] (1:node@c-0.me)  4194346  |  42 
-> [  60.000000] (1:node@c-0.me)  8388650  |  42 
-> [  60.000000] (1:node@c-0.me) Predecessor: 1319738
-> [  70.000000] (1:node@c-0.me) My finger table:
-> [  70.000000] (1:node@c-0.me) Start | Succ 
-> [  70.000000] (1:node@c-0.me)   43  | 1319738 
-> [  70.000000] (1:node@c-0.me)   44  |  42 
-> [  70.000000] (1:node@c-0.me)   46  |  42 
-> [  70.000000] (1:node@c-0.me)   50  |  42 
-> [  70.000000] (1:node@c-0.me)   58  |  42 
-> [  70.000000] (1:node@c-0.me)   74  |  42 
-> [  70.000000] (1:node@c-0.me)  106  |  42 
-> [  70.000000] (1:node@c-0.me)  170  |  42 
-> [  70.000000] (1:node@c-0.me)  298  |  42 
-> [  70.000000] (1:node@c-0.me)  554  |  42 
-> [  70.000000] (1:node@c-0.me)  1066  |  42 
-> [  70.000000] (1:node@c-0.me)  2090  |  42 
-> [  70.000000] (1:node@c-0.me)  4138  |  42 
-> [  70.000000] (1:node@c-0.me)  8234  |  42 
-> [  70.000000] (1:node@c-0.me)  16426  |  42 
-> [  70.000000] (1:node@c-0.me)  32810  |  42 
-> [  70.000000] (1:node@c-0.me)  65578  |  42 
-> [  70.000000] (1:node@c-0.me)  131114  |  42 
-> [  70.000000] (1:node@c-0.me)  262186  |  42 
-> [  70.000000] (1:node@c-0.me)  524330  |  42 
-> [  70.000000] (1:node@c-0.me)  1048618  |  42 
-> [  70.000000] (1:node@c-0.me)  2097194  |  42 
-> [  70.000000] (1:node@c-0.me)  4194346  |  42 
-> [  70.000000] (1:node@c-0.me)  8388650  |  42 
-> [  70.000000] (1:node@c-0.me) Predecessor: 6518808
-> [  85.000000] (4:node@c-3.me) My finger table:
-> [  85.000000] (4:node@c-3.me) Start | Succ 
-> [  85.000000] (4:node@c-3.me)  1319739  | 6518808 
-> [  85.000000] (4:node@c-3.me)  1319740  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319742  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [  85.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [  85.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [  85.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [  85.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [  85.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [  85.000000] (4:node@c-3.me) Predecessor: 42
-> [  86.000000] (8:node@c-7.me) My finger table:
-> [  86.000000] (8:node@c-7.me) Start | Succ 
-> [  86.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [  86.000000] (8:node@c-7.me)  10004762  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004764  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004768  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004776  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [  86.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [  86.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [  86.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [  86.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [  86.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [  86.000000] (8:node@c-7.me) Predecessor: 533744
-> [  90.000000] (7:node@c-6.me) My finger table:
-> [  90.000000] (7:node@c-6.me) Start | Succ 
-> [  90.000000] (7:node@c-6.me)  16728097  | 1319738 
-> [  90.000000] (7:node@c-6.me)  16728098  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728100  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [  90.000000] (7:node@c-6.me)  16416  | 16728096 
-> [  90.000000] (7:node@c-6.me)  81952  | 16728096 
-> [  90.000000] (7:node@c-6.me)  213024  | 16728096 
-> [  90.000000] (7:node@c-6.me)  475168  | 16728096 
-> [  90.000000] (7:node@c-6.me)  999456  | 16728096 
-> [  90.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [  90.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [  90.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [  90.000000] (7:node@c-6.me) Predecessor: 2015253
-> [ 109.000000] (9:node@c-8.me) My finger table:
-> [ 109.000000] (9:node@c-8.me) Start | Succ 
-> [ 109.000000] (9:node@c-8.me)  6518809  |  42 
-> [ 109.000000] (9:node@c-8.me)  6518810  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518812  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 109.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 109.000000] (9:node@c-8.me) Predecessor: 366680
-> [ 110.000000] (9:node@c-8.me) My finger table:
-> [ 110.000000] (9:node@c-8.me) Start | Succ 
-> [ 110.000000] (9:node@c-8.me)  6518809  |  42 
-> [ 110.000000] (9:node@c-8.me)  6518810  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518812  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 110.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 110.000000] (9:node@c-8.me) Predecessor: 1319738
-> [ 174.000000] (1:node@c-0.me) My finger table:
-> [ 174.000000] (1:node@c-0.me) Start | Succ 
-> [ 174.000000] (1:node@c-0.me)   43  | 1319738 
-> [ 174.000000] (1:node@c-0.me)   44  |  42 
-> [ 174.000000] (1:node@c-0.me)   46  |  42 
-> [ 174.000000] (1:node@c-0.me)   50  |  42 
-> [ 174.000000] (1:node@c-0.me)   58  |  42 
-> [ 174.000000] (1:node@c-0.me)   74  |  42 
-> [ 174.000000] (1:node@c-0.me)  106  |  42 
-> [ 174.000000] (1:node@c-0.me)  170  |  42 
-> [ 174.000000] (1:node@c-0.me)  298  |  42 
-> [ 174.000000] (1:node@c-0.me)  554  |  42 
-> [ 174.000000] (1:node@c-0.me)  1066  |  42 
-> [ 174.000000] (1:node@c-0.me)  2090  |  42 
-> [ 174.000000] (1:node@c-0.me)  4138  |  42 
-> [ 174.000000] (1:node@c-0.me)  8234  |  42 
-> [ 174.000000] (1:node@c-0.me)  16426  |  42 
-> [ 174.000000] (1:node@c-0.me)  32810  |  42 
-> [ 174.000000] (1:node@c-0.me)  65578  |  42 
-> [ 174.000000] (1:node@c-0.me)  131114  |  42 
-> [ 174.000000] (1:node@c-0.me)  262186  |  42 
-> [ 174.000000] (1:node@c-0.me)  524330  |  42 
-> [ 174.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 174.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 174.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 174.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 174.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 245.000000] (8:node@c-7.me) My finger table:
-> [ 245.000000] (8:node@c-7.me) Start | Succ 
-> [ 245.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 245.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 245.000000] (8:node@c-7.me)  10004764  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10004768  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10004776  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 245.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 245.000000] (8:node@c-7.me) Predecessor: 533744
-> [ 246.000000] (3:node@c-2.me) My finger table:
-> [ 246.000000] (3:node@c-2.me) Start | Succ 
-> [ 246.000000] (3:node@c-2.me)  533745  | 10004760 
-> [ 246.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 246.000000] (3:node@c-2.me)  533748  | 533744 
-> [ 246.000000] (3:node@c-2.me)  533752  | 533744 
-> [ 246.000000] (3:node@c-2.me)  533760  | 533744 
-> [ 246.000000] (3:node@c-2.me)  533776  | 533744 
-> [ 246.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 246.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 246.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 246.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 246.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 246.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 246.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 246.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 246.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 246.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 246.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 246.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 246.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 246.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 246.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 246.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 246.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 246.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 246.000000] (3:node@c-2.me) Predecessor: 10874876
-> [ 246.000000] (5:node@c-4.me) My finger table:
-> [ 246.000000] (5:node@c-4.me) Start | Succ 
-> [ 246.000000] (5:node@c-4.me)  16509406  | 366680 
-> [ 246.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 246.000000] (5:node@c-4.me)  16509409  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509413  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509421  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509437  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 246.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 246.000000] (5:node@c-4.me) Predecessor: 10004760
-> [ 247.000000] (6:node@c-5.me) My finger table:
-> [ 247.000000] (6:node@c-5.me) Start | Succ 
-> [ 247.000000] (6:node@c-5.me)  10874877  | 533744 
-> [ 247.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 247.000000] (6:node@c-5.me)  10874880  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10874884  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10874892  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10874908  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10874940  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 247.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 247.000000] (6:node@c-5.me) Predecessor: -1
-> [ 247.000000] (7:node@c-6.me) My finger table:
-> [ 247.000000] (7:node@c-6.me) Start | Succ 
-> [ 247.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 247.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 247.000000] (7:node@c-6.me)  16728100  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 247.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 247.000000] (7:node@c-6.me) Predecessor: 2015253
-> [ 253.000000] (1:node@c-0.me) My finger table:
-> [ 253.000000] (1:node@c-0.me) Start | Succ 
-> [ 253.000000] (1:node@c-0.me)   43  | 1319738 
-> [ 253.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 253.000000] (1:node@c-0.me)   46  |  42 
-> [ 253.000000] (1:node@c-0.me)   50  |  42 
-> [ 253.000000] (1:node@c-0.me)   58  |  42 
-> [ 253.000000] (1:node@c-0.me)   74  |  42 
-> [ 253.000000] (1:node@c-0.me)  106  |  42 
-> [ 253.000000] (1:node@c-0.me)  170  |  42 
-> [ 253.000000] (1:node@c-0.me)  298  |  42 
-> [ 253.000000] (1:node@c-0.me)  554  |  42 
-> [ 253.000000] (1:node@c-0.me)  1066  |  42 
-> [ 253.000000] (1:node@c-0.me)  2090  |  42 
-> [ 253.000000] (1:node@c-0.me)  4138  |  42 
-> [ 253.000000] (1:node@c-0.me)  8234  |  42 
-> [ 253.000000] (1:node@c-0.me)  16426  |  42 
-> [ 253.000000] (1:node@c-0.me)  32810  |  42 
-> [ 253.000000] (1:node@c-0.me)  65578  |  42 
-> [ 253.000000] (1:node@c-0.me)  131114  |  42 
-> [ 253.000000] (1:node@c-0.me)  262186  |  42 
-> [ 253.000000] (1:node@c-0.me)  524330  |  42 
-> [ 253.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 253.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 253.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 253.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 253.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 255.000000] (2:node@c-1.me) My finger table:
-> [ 255.000000] (2:node@c-1.me) Start | Succ 
-> [ 255.000000] (2:node@c-1.me)  366681  | 1319738 
-> [ 255.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 255.000000] (2:node@c-1.me)  366684  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366688  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366696  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366712  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 255.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 255.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 255.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 255.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 255.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 255.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 255.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 255.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 255.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 255.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 255.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 255.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 255.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 255.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 255.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 255.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 255.000000] (2:node@c-1.me) Predecessor: 16509405
-> [ 260.000000] (4:node@c-3.me) My finger table:
-> [ 260.000000] (4:node@c-3.me) Start | Succ 
-> [ 260.000000] (4:node@c-3.me)  1319739  | 6518808 
-> [ 260.000000] (4:node@c-3.me)  1319740  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319742  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 260.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 260.000000] (4:node@c-3.me) Predecessor: 366680
-> [ 292.000000] (7:node@c-6.me) My finger table:
-> [ 292.000000] (7:node@c-6.me) Start | Succ 
-> [ 292.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 292.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 292.000000] (7:node@c-6.me)  16728100  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 292.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 292.000000] (7:node@c-6.me) Predecessor: 6518808
-> [ 300.000000] (9:node@c-8.me) My finger table:
-> [ 300.000000] (9:node@c-8.me) Start | Succ 
-> [ 300.000000] (9:node@c-8.me)  6518809  | 16728096 
-> [ 300.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 300.000000] (9:node@c-8.me)  6518812  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 300.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 300.000000] (9:node@c-8.me) Predecessor: 1319738
-> [ 301.000000] (10:node@c-9.me) My finger table:
-> [ 301.000000] (10:node@c-9.me) Start | Succ 
-> [ 301.000000] (10:node@c-9.me)  2015254  | 16728096 
-> [ 301.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 301.000000] (10:node@c-9.me)  2015257  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015261  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015269  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 301.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 301.000000] (10:node@c-9.me) Predecessor: -1
-> [ 302.000000] (2:node@c-1.me) My finger table:
-> [ 302.000000] (2:node@c-1.me) Start | Succ 
-> [ 302.000000] (2:node@c-1.me)  366681  | 1319738 
-> [ 302.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 302.000000] (2:node@c-1.me)  366684  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366688  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366696  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366712  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 302.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 302.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 302.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 302.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 302.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 302.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 302.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 302.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 302.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 302.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 302.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 302.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 302.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 302.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 302.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 302.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 302.000000] (2:node@c-1.me) Predecessor: 42
-> [ 306.000000] (4:node@c-3.me) My finger table:
-> [ 306.000000] (4:node@c-3.me) Start | Succ 
-> [ 306.000000] (4:node@c-3.me)  1319739  | 6518808 
-> [ 306.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 306.000000] (4:node@c-3.me)  1319742  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 306.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 306.000000] (4:node@c-3.me) Predecessor: 366680
-> [ 339.000000] (9:node@c-8.me) My finger table:
-> [ 339.000000] (9:node@c-8.me) Start | Succ 
-> [ 339.000000] (9:node@c-8.me)  6518809  | 16728096 
-> [ 339.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 339.000000] (9:node@c-8.me)  6518812  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 339.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 339.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 367.000000] (6:node@c-5.me) My finger table:
-> [ 367.000000] (6:node@c-5.me) Start | Succ 
-> [ 367.000000] (6:node@c-5.me)  10874877  | 533744 
-> [ 367.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 367.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 367.000000] (6:node@c-5.me)  10874884  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10874892  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10874908  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10874940  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 367.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 367.000000] (6:node@c-5.me) Predecessor: -1
-> [ 368.000000] (3:node@c-2.me) My finger table:
-> [ 368.000000] (3:node@c-2.me) Start | Succ 
-> [ 368.000000] (3:node@c-2.me)  533745  | 10004760 
-> [ 368.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 368.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 368.000000] (3:node@c-2.me)  533752  | 533744 
-> [ 368.000000] (3:node@c-2.me)  533760  | 533744 
-> [ 368.000000] (3:node@c-2.me)  533776  | 533744 
-> [ 368.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 368.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 368.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 368.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 368.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 368.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 368.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 368.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 368.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 368.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 368.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 368.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 368.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 368.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 368.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 368.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 368.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 368.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 368.000000] (3:node@c-2.me) Predecessor: 10874876
-> [ 368.000000] (5:node@c-4.me) My finger table:
-> [ 368.000000] (5:node@c-4.me) Start | Succ 
-> [ 368.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 368.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 368.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 368.000000] (5:node@c-4.me)  16509413  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509421  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509437  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 368.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 368.000000] (5:node@c-4.me) Predecessor: 10004760
-> [ 370.000000] (8:node@c-7.me) My finger table:
-> [ 370.000000] (8:node@c-7.me) Start | Succ 
-> [ 370.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 370.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 370.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 370.000000] (8:node@c-7.me)  10004768  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10004776  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 370.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 370.000000] (8:node@c-7.me) Predecessor: 533744
-> [ 373.000000] (7:node@c-6.me) My finger table:
-> [ 373.000000] (7:node@c-6.me) Start | Succ 
-> [ 373.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 373.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 373.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 373.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 373.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 373.000000] (7:node@c-6.me) Predecessor: 6518808
-> [ 375.000000] (2:node@c-1.me) My finger table:
-> [ 375.000000] (2:node@c-1.me) Start | Succ 
-> [ 375.000000] (2:node@c-1.me)  366681  | 1319738 
-> [ 375.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 375.000000] (2:node@c-1.me)  366684  | 1319738 
-> [ 375.000000] (2:node@c-1.me)  366688  | 366680 
-> [ 375.000000] (2:node@c-1.me)  366696  | 366680 
-> [ 375.000000] (2:node@c-1.me)  366712  | 366680 
-> [ 375.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 375.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 375.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 375.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 375.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 375.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 375.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 375.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 375.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 375.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 375.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 375.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 375.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 375.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 375.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 375.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 375.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 375.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 375.000000] (2:node@c-1.me) Predecessor: 42
-> [ 382.000000] (1:node@c-0.me) My finger table:
-> [ 382.000000] (1:node@c-0.me) Start | Succ 
-> [ 382.000000] (1:node@c-0.me)   43  | 366680 
-> [ 382.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 382.000000] (1:node@c-0.me)   46  | 366680 
-> [ 382.000000] (1:node@c-0.me)   50  |  42 
-> [ 382.000000] (1:node@c-0.me)   58  |  42 
-> [ 382.000000] (1:node@c-0.me)   74  |  42 
-> [ 382.000000] (1:node@c-0.me)  106  |  42 
-> [ 382.000000] (1:node@c-0.me)  170  |  42 
-> [ 382.000000] (1:node@c-0.me)  298  |  42 
-> [ 382.000000] (1:node@c-0.me)  554  |  42 
-> [ 382.000000] (1:node@c-0.me)  1066  |  42 
-> [ 382.000000] (1:node@c-0.me)  2090  |  42 
-> [ 382.000000] (1:node@c-0.me)  4138  |  42 
-> [ 382.000000] (1:node@c-0.me)  8234  |  42 
-> [ 382.000000] (1:node@c-0.me)  16426  |  42 
-> [ 382.000000] (1:node@c-0.me)  32810  |  42 
-> [ 382.000000] (1:node@c-0.me)  65578  |  42 
-> [ 382.000000] (1:node@c-0.me)  131114  |  42 
-> [ 382.000000] (1:node@c-0.me)  262186  |  42 
-> [ 382.000000] (1:node@c-0.me)  524330  |  42 
-> [ 382.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 382.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 382.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 382.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 382.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 383.000000] (7:node@c-6.me) My finger table:
-> [ 383.000000] (7:node@c-6.me) Start | Succ 
-> [ 383.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 383.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 383.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 383.000000] (7:node@c-6.me)  16728104  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 383.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 383.000000] (7:node@c-6.me) Predecessor: 16509405
-> [ 385.000000] (10:node@c-9.me) My finger table:
-> [ 385.000000] (10:node@c-9.me) Start | Succ 
-> [ 385.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 385.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 385.000000] (10:node@c-9.me)  2015257  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015261  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015269  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 385.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 385.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 427.000000] (9:node@c-8.me) My finger table:
-> [ 427.000000] (9:node@c-8.me) Start | Succ 
-> [ 427.000000] (9:node@c-8.me)  6518809  | 10004760 
-> [ 427.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 427.000000] (9:node@c-8.me)  6518812  | 10004760 
-> [ 427.000000] (9:node@c-8.me)  6518816  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 427.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 427.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 432.000000] (10:node@c-9.me) My finger table:
-> [ 432.000000] (10:node@c-9.me) Start | Succ 
-> [ 432.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 432.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 432.000000] (10:node@c-9.me)  2015257  | 6518808 
-> [ 432.000000] (10:node@c-9.me)  2015261  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015269  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 432.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 432.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 484.000000] (4:node@c-3.me) My finger table:
-> [ 484.000000] (4:node@c-3.me) Start | Succ 
-> [ 484.000000] (4:node@c-3.me)  1319739  | 2015253 
-> [ 484.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 484.000000] (4:node@c-3.me)  1319742  | 2015253 
-> [ 484.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 484.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 484.000000] (4:node@c-3.me) Predecessor: 366680
-> [ 487.000000] (6:node@c-5.me) My finger table:
-> [ 487.000000] (6:node@c-5.me) Start | Succ 
-> [ 487.000000] (6:node@c-5.me)  10874877  | 533744 
-> [ 487.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 487.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 487.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 487.000000] (6:node@c-5.me)  10874892  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10874908  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10874940  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 487.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 487.000000] (6:node@c-5.me) Predecessor: -1
-> [ 490.000000] (8:node@c-7.me) My finger table:
-> [ 490.000000] (8:node@c-7.me) Start | Succ 
-> [ 490.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 490.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 490.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 490.000000] (8:node@c-7.me)  10004768  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10004776  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 490.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 490.000000] (8:node@c-7.me) Predecessor: 6518808
-> [ 491.000000] (8:node@c-7.me) My finger table:
-> [ 491.000000] (8:node@c-7.me) Start | Succ 
-> [ 491.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 491.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 491.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 491.000000] (8:node@c-7.me)  10004768  | 16509405 
-> [ 491.000000] (8:node@c-7.me)  10004776  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 491.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 491.000000] (8:node@c-7.me) Predecessor: 6518808
-> [ 496.000000] (7:node@c-6.me) My finger table:
-> [ 496.000000] (7:node@c-6.me) Start | Succ 
-> [ 496.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 496.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 496.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 496.000000] (7:node@c-6.me)  16728104  |  42 
-> [ 496.000000] (7:node@c-6.me)  16728112  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 496.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 496.000000] (7:node@c-6.me) Predecessor: 16509405
-> [ 497.000000] (3:node@c-2.me) My finger table:
-> [ 497.000000] (3:node@c-2.me) Start | Succ 
-> [ 497.000000] (3:node@c-2.me)  533745  | 6518808 
-> [ 497.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 497.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 497.000000] (3:node@c-2.me)  533752  | 6518808 
-> [ 497.000000] (3:node@c-2.me)  533760  | 533744 
-> [ 497.000000] (3:node@c-2.me)  533776  | 533744 
-> [ 497.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 497.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 497.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 497.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 497.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 497.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 497.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 497.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 497.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 497.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 497.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 497.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 497.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 497.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 497.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 497.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 497.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 497.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 497.000000] (3:node@c-2.me) Predecessor: 10874876
-> [ 502.000000] (1:node@c-0.me) My finger table:
-> [ 502.000000] (1:node@c-0.me) Start | Succ 
-> [ 502.000000] (1:node@c-0.me)   43  | 366680 
-> [ 502.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 502.000000] (1:node@c-0.me)   46  | 366680 
-> [ 502.000000] (1:node@c-0.me)   50  | 366680 
-> [ 502.000000] (1:node@c-0.me)   58  |  42 
-> [ 502.000000] (1:node@c-0.me)   74  |  42 
-> [ 502.000000] (1:node@c-0.me)  106  |  42 
-> [ 502.000000] (1:node@c-0.me)  170  |  42 
-> [ 502.000000] (1:node@c-0.me)  298  |  42 
-> [ 502.000000] (1:node@c-0.me)  554  |  42 
-> [ 502.000000] (1:node@c-0.me)  1066  |  42 
-> [ 502.000000] (1:node@c-0.me)  2090  |  42 
-> [ 502.000000] (1:node@c-0.me)  4138  |  42 
-> [ 502.000000] (1:node@c-0.me)  8234  |  42 
-> [ 502.000000] (1:node@c-0.me)  16426  |  42 
-> [ 502.000000] (1:node@c-0.me)  32810  |  42 
-> [ 502.000000] (1:node@c-0.me)  65578  |  42 
-> [ 502.000000] (1:node@c-0.me)  131114  |  42 
-> [ 502.000000] (1:node@c-0.me)  262186  |  42 
-> [ 502.000000] (1:node@c-0.me)  524330  |  42 
-> [ 502.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 502.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 502.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 502.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 502.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 505.000000] (2:node@c-1.me) My finger table:
-> [ 505.000000] (2:node@c-1.me) Start | Succ 
-> [ 505.000000] (2:node@c-1.me)  366681  | 1319738 
-> [ 505.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 505.000000] (2:node@c-1.me)  366684  | 1319738 
-> [ 505.000000] (2:node@c-1.me)  366688  | 1319738 
-> [ 505.000000] (2:node@c-1.me)  366696  | 366680 
-> [ 505.000000] (2:node@c-1.me)  366712  | 366680 
-> [ 505.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 505.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 505.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 505.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 505.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 505.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 505.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 505.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 505.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 505.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 505.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 505.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 505.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 505.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 505.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 505.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 505.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 505.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 505.000000] (2:node@c-1.me) Predecessor: 42
-> [ 513.000000] (5:node@c-4.me) My finger table:
-> [ 513.000000] (5:node@c-4.me) Start | Succ 
-> [ 513.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 513.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 513.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 513.000000] (5:node@c-4.me)  16509413  | 16728096 
-> [ 513.000000] (5:node@c-4.me)  16509421  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16509437  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 513.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 513.000000] (5:node@c-4.me) Predecessor: 10004760
-> [ 558.000000] (9:node@c-8.me) My finger table:
-> [ 558.000000] (9:node@c-8.me) Start | Succ 
-> [ 558.000000] (9:node@c-8.me)  6518809  | 10004760 
-> [ 558.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 558.000000] (9:node@c-8.me)  6518812  | 10004760 
-> [ 558.000000] (9:node@c-8.me)  6518816  | 10004760 
-> [ 558.000000] (9:node@c-8.me)  6518824  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 558.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 558.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 573.000000] (10:node@c-9.me) My finger table:
-> [ 573.000000] (10:node@c-9.me) Start | Succ 
-> [ 573.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 573.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 573.000000] (10:node@c-9.me)  2015257  | 6518808 
-> [ 573.000000] (10:node@c-9.me)  2015261  | 6518808 
-> [ 573.000000] (10:node@c-9.me)  2015269  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 573.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 573.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 600.000000] (4:node@c-3.me) My finger table:
-> [ 600.000000] (4:node@c-3.me) Start | Succ 
-> [ 600.000000] (4:node@c-3.me)  1319739  | 2015253 
-> [ 600.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 600.000000] (4:node@c-3.me)  1319742  | 2015253 
-> [ 600.000000] (4:node@c-3.me)  1319746  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 600.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 600.000000] (4:node@c-3.me) Predecessor: 533744
-> [ 610.000000] (6:node@c-5.me) My finger table:
-> [ 610.000000] (6:node@c-5.me) Start | Succ 
-> [ 610.000000] (6:node@c-5.me)  10874877  | 533744 
-> [ 610.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 610.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 610.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 610.000000] (6:node@c-5.me)  10874892  | 533744 
-> [ 610.000000] (6:node@c-5.me)  10874908  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10874940  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 610.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 610.000000] (6:node@c-5.me) Predecessor: -1
-> [ 656.000000] (5:node@c-4.me) My finger table:
-> [ 656.000000] (5:node@c-4.me) Start | Succ 
-> [ 656.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 656.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 656.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 656.000000] (5:node@c-4.me)  16509413  | 16728096 
-> [ 656.000000] (5:node@c-4.me)  16509421  | 16728096 
-> [ 656.000000] (5:node@c-4.me)  16509437  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 656.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 656.000000] (5:node@c-4.me) Predecessor: 10004760
-> [ 657.000000] (7:node@c-6.me) My finger table:
-> [ 657.000000] (7:node@c-6.me) Start | Succ 
-> [ 657.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 657.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 657.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 657.000000] (7:node@c-6.me)  16728104  |  42 
-> [ 657.000000] (7:node@c-6.me)  16728112  |  42 
-> [ 657.000000] (7:node@c-6.me)  16728128  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 657.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 657.000000] (7:node@c-6.me) Predecessor: 16509405
-> [ 663.000000] (4:node@c-3.me) My finger table:
-> [ 663.000000] (4:node@c-3.me) Start | Succ 
-> [ 663.000000] (4:node@c-3.me)  1319739  | 2015253 
-> [ 663.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 663.000000] (4:node@c-3.me)  1319742  | 2015253 
-> [ 663.000000] (4:node@c-3.me)  1319746  | 2015253 
-> [ 663.000000] (4:node@c-3.me)  1319754  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 663.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 663.000000] (4:node@c-3.me) Predecessor: 533744
-> [ 665.000000] (1:node@c-0.me) My finger table:
-> [ 665.000000] (1:node@c-0.me) Start | Succ 
-> [ 665.000000] (1:node@c-0.me)   43  | 366680 
-> [ 665.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 665.000000] (1:node@c-0.me)   46  | 366680 
-> [ 665.000000] (1:node@c-0.me)   50  | 366680 
-> [ 665.000000] (1:node@c-0.me)   58  | 366680 
-> [ 665.000000] (1:node@c-0.me)   74  |  42 
-> [ 665.000000] (1:node@c-0.me)  106  |  42 
-> [ 665.000000] (1:node@c-0.me)  170  |  42 
-> [ 665.000000] (1:node@c-0.me)  298  |  42 
-> [ 665.000000] (1:node@c-0.me)  554  |  42 
-> [ 665.000000] (1:node@c-0.me)  1066  |  42 
-> [ 665.000000] (1:node@c-0.me)  2090  |  42 
-> [ 665.000000] (1:node@c-0.me)  4138  |  42 
-> [ 665.000000] (1:node@c-0.me)  8234  |  42 
-> [ 665.000000] (1:node@c-0.me)  16426  |  42 
-> [ 665.000000] (1:node@c-0.me)  32810  |  42 
-> [ 665.000000] (1:node@c-0.me)  65578  |  42 
-> [ 665.000000] (1:node@c-0.me)  131114  |  42 
-> [ 665.000000] (1:node@c-0.me)  262186  |  42 
-> [ 665.000000] (1:node@c-0.me)  524330  |  42 
-> [ 665.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 665.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 665.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 665.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 665.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 669.000000] (8:node@c-7.me) My finger table:
-> [ 669.000000] (8:node@c-7.me) Start | Succ 
-> [ 669.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 669.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 669.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 669.000000] (8:node@c-7.me)  10004768  | 16509405 
-> [ 669.000000] (8:node@c-7.me)  10004776  | 16509405 
-> [ 669.000000] (8:node@c-7.me)  10004792  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 669.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 669.000000] (8:node@c-7.me) Predecessor: 6518808
-> [ 671.000000] (3:node@c-2.me) My finger table:
-> [ 671.000000] (3:node@c-2.me) Start | Succ 
-> [ 671.000000] (3:node@c-2.me)  533745  | 1319738 
-> [ 671.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 671.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 671.000000] (3:node@c-2.me)  533752  | 6518808 
-> [ 671.000000] (3:node@c-2.me)  533760  | 1319738 
-> [ 671.000000] (3:node@c-2.me)  533776  | 533744 
-> [ 671.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 671.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 671.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 671.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 671.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 671.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 671.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 671.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 671.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 671.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 671.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 671.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 671.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 671.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 671.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 671.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 671.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 671.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 671.000000] (3:node@c-2.me) Predecessor: 10874876
-> [ 678.000000] (9:node@c-8.me) My finger table:
-> [ 678.000000] (9:node@c-8.me) Start | Succ 
-> [ 678.000000] (9:node@c-8.me)  6518809  | 10004760 
-> [ 678.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 678.000000] (9:node@c-8.me)  6518812  | 10004760 
-> [ 678.000000] (9:node@c-8.me)  6518816  | 10004760 
-> [ 678.000000] (9:node@c-8.me)  6518824  | 10004760 
-> [ 678.000000] (9:node@c-8.me)  6518840  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 678.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 678.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 683.000000] (2:node@c-1.me) My finger table:
-> [ 683.000000] (2:node@c-1.me) Start | Succ 
-> [ 683.000000] (2:node@c-1.me)  366681  | 533744 
-> [ 683.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 683.000000] (2:node@c-1.me)  366684  | 1319738 
-> [ 683.000000] (2:node@c-1.me)  366688  | 1319738 
-> [ 683.000000] (2:node@c-1.me)  366696  | 533744 
-> [ 683.000000] (2:node@c-1.me)  366712  | 366680 
-> [ 683.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 683.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 683.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 683.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 683.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 683.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 683.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 683.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 683.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 683.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 683.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 683.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 683.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 683.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 683.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 683.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 683.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 683.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 683.000000] (2:node@c-1.me) Predecessor: 42
-> [ 684.000000] (3:node@c-2.me) My finger table:
-> [ 684.000000] (3:node@c-2.me) Start | Succ 
-> [ 684.000000] (3:node@c-2.me)  533745  | 1319738 
-> [ 684.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 684.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 684.000000] (3:node@c-2.me)  533752  | 6518808 
-> [ 684.000000] (3:node@c-2.me)  533760  | 1319738 
-> [ 684.000000] (3:node@c-2.me)  533776  | 533744 
-> [ 684.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 684.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 684.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 684.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 684.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 684.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 684.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 684.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 684.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 684.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 684.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 684.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 684.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 684.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 684.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 684.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 684.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 684.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 684.000000] (3:node@c-2.me) Predecessor: 366680
-> [ 721.000000] (10:node@c-9.me) My finger table:
-> [ 721.000000] (10:node@c-9.me) Start | Succ 
-> [ 721.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 721.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 721.000000] (10:node@c-9.me)  2015257  | 6518808 
-> [ 721.000000] (10:node@c-9.me)  2015261  | 6518808 
-> [ 721.000000] (10:node@c-9.me)  2015269  | 6518808 
-> [ 721.000000] (10:node@c-9.me)  2015285  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 721.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 721.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 744.000000] (6:node@c-5.me) My finger table:
-> [ 744.000000] (6:node@c-5.me) Start | Succ 
-> [ 744.000000] (6:node@c-5.me)  10874877  | 16728096 
-> [ 744.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 744.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 744.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 744.000000] (6:node@c-5.me)  10874892  | 533744 
-> [ 744.000000] (6:node@c-5.me)  10874908  | 16728096 
-> [ 744.000000] (6:node@c-5.me)  10874940  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 744.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 744.000000] (6:node@c-5.me) Predecessor: -1
-> [ 777.000000] (7:node@c-6.me) My finger table:
-> [ 777.000000] (7:node@c-6.me) Start | Succ 
-> [ 777.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728104  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728112  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728128  |  42 
-> [ 777.000000] (7:node@c-6.me)  16728160  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 777.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 777.000000] (7:node@c-6.me) Predecessor: 16509405
-> [ 786.000000] (5:node@c-4.me) My finger table:
-> [ 786.000000] (5:node@c-4.me) Start | Succ 
-> [ 786.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 786.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 786.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 786.000000] (5:node@c-4.me)  16509413  | 16728096 
-> [ 786.000000] (5:node@c-4.me)  16509421  | 16728096 
-> [ 786.000000] (5:node@c-4.me)  16509437  | 16728096 
-> [ 786.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 786.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 786.000000] (5:node@c-4.me) Predecessor: 10004760
-> [ 787.000000] (4:node@c-3.me) My finger table:
-> [ 787.000000] (4:node@c-3.me) Start | Succ 
-> [ 787.000000] (4:node@c-3.me)  1319739  | 2015253 
-> [ 787.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 787.000000] (4:node@c-3.me)  1319742  | 2015253 
-> [ 787.000000] (4:node@c-3.me)  1319746  | 2015253 
-> [ 787.000000] (4:node@c-3.me)  1319754  | 2015253 
-> [ 787.000000] (4:node@c-3.me)  1319770  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 787.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 787.000000] (4:node@c-3.me) Predecessor: 533744
-> [ 788.000000] (1:node@c-0.me) My finger table:
-> [ 788.000000] (1:node@c-0.me) Start | Succ 
-> [ 788.000000] (1:node@c-0.me)   43  | 366680 
-> [ 788.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 788.000000] (1:node@c-0.me)   46  | 366680 
-> [ 788.000000] (1:node@c-0.me)   50  | 366680 
-> [ 788.000000] (1:node@c-0.me)   58  | 366680 
-> [ 788.000000] (1:node@c-0.me)   74  | 366680 
-> [ 788.000000] (1:node@c-0.me)  106  |  42 
-> [ 788.000000] (1:node@c-0.me)  170  |  42 
-> [ 788.000000] (1:node@c-0.me)  298  |  42 
-> [ 788.000000] (1:node@c-0.me)  554  |  42 
-> [ 788.000000] (1:node@c-0.me)  1066  |  42 
-> [ 788.000000] (1:node@c-0.me)  2090  |  42 
-> [ 788.000000] (1:node@c-0.me)  4138  |  42 
-> [ 788.000000] (1:node@c-0.me)  8234  |  42 
-> [ 788.000000] (1:node@c-0.me)  16426  |  42 
-> [ 788.000000] (1:node@c-0.me)  32810  |  42 
-> [ 788.000000] (1:node@c-0.me)  65578  |  42 
-> [ 788.000000] (1:node@c-0.me)  131114  |  42 
-> [ 788.000000] (1:node@c-0.me)  262186  |  42 
-> [ 788.000000] (1:node@c-0.me)  524330  |  42 
-> [ 788.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 788.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 788.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 788.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 788.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 793.000000] (3:node@c-2.me) My finger table:
-> [ 793.000000] (3:node@c-2.me) Start | Succ 
-> [ 793.000000] (3:node@c-2.me)  533745  | 1319738 
-> [ 793.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 793.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 793.000000] (3:node@c-2.me)  533752  | 6518808 
-> [ 793.000000] (3:node@c-2.me)  533760  | 1319738 
-> [ 793.000000] (3:node@c-2.me)  533776  | 1319738 
-> [ 793.000000] (3:node@c-2.me)  533808  | 533744 
-> [ 793.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 793.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 793.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 793.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 793.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 793.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 793.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 793.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 793.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 793.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 793.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 793.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 793.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 793.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 793.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 793.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 793.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 793.000000] (3:node@c-2.me) Predecessor: 366680
-> [ 797.000000] (5:node@c-4.me) My finger table:
-> [ 797.000000] (5:node@c-4.me) Start | Succ 
-> [ 797.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 797.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 797.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 797.000000] (5:node@c-4.me)  16509413  | 16728096 
-> [ 797.000000] (5:node@c-4.me)  16509421  | 16728096 
-> [ 797.000000] (5:node@c-4.me)  16509437  | 16728096 
-> [ 797.000000] (5:node@c-4.me)  16509469  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 797.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 797.000000] (5:node@c-4.me) Predecessor: 10874876
-> [ 798.000000] (8:node@c-7.me) My finger table:
-> [ 798.000000] (8:node@c-7.me) Start | Succ 
-> [ 798.000000] (8:node@c-7.me)  10004761  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004768  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004776  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004792  | 16509405 
-> [ 798.000000] (8:node@c-7.me)  10004824  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 798.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 798.000000] (8:node@c-7.me) Predecessor: 6518808
-> [ 801.000000] (9:node@c-8.me) My finger table:
-> [ 801.000000] (9:node@c-8.me) Start | Succ 
-> [ 801.000000] (9:node@c-8.me)  6518809  | 10004760 
-> [ 801.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 801.000000] (9:node@c-8.me)  6518812  | 10004760 
-> [ 801.000000] (9:node@c-8.me)  6518816  | 10004760 
-> [ 801.000000] (9:node@c-8.me)  6518824  | 10004760 
-> [ 801.000000] (9:node@c-8.me)  6518840  | 10004760 
-> [ 801.000000] (9:node@c-8.me)  6518872  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 801.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 801.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 804.000000] (2:node@c-1.me) My finger table:
-> [ 804.000000] (2:node@c-1.me) Start | Succ 
-> [ 804.000000] (2:node@c-1.me)  366681  | 533744 
-> [ 804.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 804.000000] (2:node@c-1.me)  366684  | 1319738 
-> [ 804.000000] (2:node@c-1.me)  366688  | 1319738 
-> [ 804.000000] (2:node@c-1.me)  366696  | 533744 
-> [ 804.000000] (2:node@c-1.me)  366712  | 533744 
-> [ 804.000000] (2:node@c-1.me)  366744  | 366680 
-> [ 804.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 804.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 804.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 804.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 804.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 804.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 804.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 804.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 804.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 804.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 804.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 804.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 804.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 804.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 804.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 804.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 804.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 804.000000] (2:node@c-1.me) Predecessor: 42
-> [ 843.000000] (10:node@c-9.me) My finger table:
-> [ 843.000000] (10:node@c-9.me) Start | Succ 
-> [ 843.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 843.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 843.000000] (10:node@c-9.me)  2015257  | 6518808 
-> [ 843.000000] (10:node@c-9.me)  2015261  | 6518808 
-> [ 843.000000] (10:node@c-9.me)  2015269  | 6518808 
-> [ 843.000000] (10:node@c-9.me)  2015285  | 6518808 
-> [ 843.000000] (10:node@c-9.me)  2015317  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 843.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 843.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 865.000000] (6:node@c-5.me) My finger table:
-> [ 865.000000] (6:node@c-5.me) Start | Succ 
-> [ 865.000000] (6:node@c-5.me)  10874877  | 16509405 
-> [ 865.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 865.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 865.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 865.000000] (6:node@c-5.me)  10874892  | 533744 
-> [ 865.000000] (6:node@c-5.me)  10874908  | 16728096 
-> [ 865.000000] (6:node@c-5.me)  10874940  | 16509405 
-> [ 865.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 865.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 865.000000] (6:node@c-5.me) Predecessor: -1
-> [ 870.000000] (6:node@c-5.me) My finger table:
-> [ 870.000000] (6:node@c-5.me) Start | Succ 
-> [ 870.000000] (6:node@c-5.me)  10874877  | 16509405 
-> [ 870.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 870.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 870.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 870.000000] (6:node@c-5.me)  10874892  | 533744 
-> [ 870.000000] (6:node@c-5.me)  10874908  | 16728096 
-> [ 870.000000] (6:node@c-5.me)  10874940  | 16509405 
-> [ 870.000000] (6:node@c-5.me)  10875004  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 870.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 870.000000] (6:node@c-5.me) Predecessor: 10004760
-> [ 910.000000] (5:node@c-4.me) My finger table:
-> [ 910.000000] (5:node@c-4.me) Start | Succ 
-> [ 910.000000] (5:node@c-4.me)  16509406  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509407  | 366680 
-> [ 910.000000] (5:node@c-4.me)  16509409  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509413  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509421  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509437  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509469  | 16728096 
-> [ 910.000000] (5:node@c-4.me)  16509533  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16509661  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16509917  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16510429  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16511453  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16513501  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16517597  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16525789  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16542173  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16574941  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16640477  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  16771549  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  256477  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  780765  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  1829341  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  3926493  | 16509405 
-> [ 910.000000] (5:node@c-4.me)  8120797  | 16509405 
-> [ 910.000000] (5:node@c-4.me) Predecessor: 10874876
-> [ 912.000000] (1:node@c-0.me) My finger table:
-> [ 912.000000] (1:node@c-0.me) Start | Succ 
-> [ 912.000000] (1:node@c-0.me)   43  | 366680 
-> [ 912.000000] (1:node@c-0.me)   44  | 1319738 
-> [ 912.000000] (1:node@c-0.me)   46  | 366680 
-> [ 912.000000] (1:node@c-0.me)   50  | 366680 
-> [ 912.000000] (1:node@c-0.me)   58  | 366680 
-> [ 912.000000] (1:node@c-0.me)   74  | 366680 
-> [ 912.000000] (1:node@c-0.me)  106  | 366680 
-> [ 912.000000] (1:node@c-0.me)  170  |  42 
-> [ 912.000000] (1:node@c-0.me)  298  |  42 
-> [ 912.000000] (1:node@c-0.me)  554  |  42 
-> [ 912.000000] (1:node@c-0.me)  1066  |  42 
-> [ 912.000000] (1:node@c-0.me)  2090  |  42 
-> [ 912.000000] (1:node@c-0.me)  4138  |  42 
-> [ 912.000000] (1:node@c-0.me)  8234  |  42 
-> [ 912.000000] (1:node@c-0.me)  16426  |  42 
-> [ 912.000000] (1:node@c-0.me)  32810  |  42 
-> [ 912.000000] (1:node@c-0.me)  65578  |  42 
-> [ 912.000000] (1:node@c-0.me)  131114  |  42 
-> [ 912.000000] (1:node@c-0.me)  262186  |  42 
-> [ 912.000000] (1:node@c-0.me)  524330  |  42 
-> [ 912.000000] (1:node@c-0.me)  1048618  |  42 
-> [ 912.000000] (1:node@c-0.me)  2097194  |  42 
-> [ 912.000000] (1:node@c-0.me)  4194346  |  42 
-> [ 912.000000] (1:node@c-0.me)  8388650  |  42 
-> [ 912.000000] (1:node@c-0.me) Predecessor: 16728096
-> [ 913.000000] (3:node@c-2.me) My finger table:
-> [ 913.000000] (3:node@c-2.me) Start | Succ 
-> [ 913.000000] (3:node@c-2.me)  533745  | 1319738 
-> [ 913.000000] (3:node@c-2.me)  533746  | 10004760 
-> [ 913.000000] (3:node@c-2.me)  533748  | 10004760 
-> [ 913.000000] (3:node@c-2.me)  533752  | 6518808 
-> [ 913.000000] (3:node@c-2.me)  533760  | 1319738 
-> [ 913.000000] (3:node@c-2.me)  533776  | 1319738 
-> [ 913.000000] (3:node@c-2.me)  533808  | 1319738 
-> [ 913.000000] (3:node@c-2.me)  533872  | 533744 
-> [ 913.000000] (3:node@c-2.me)  534000  | 533744 
-> [ 913.000000] (3:node@c-2.me)  534256  | 533744 
-> [ 913.000000] (3:node@c-2.me)  534768  | 533744 
-> [ 913.000000] (3:node@c-2.me)  535792  | 533744 
-> [ 913.000000] (3:node@c-2.me)  537840  | 533744 
-> [ 913.000000] (3:node@c-2.me)  541936  | 533744 
-> [ 913.000000] (3:node@c-2.me)  550128  | 533744 
-> [ 913.000000] (3:node@c-2.me)  566512  | 533744 
-> [ 913.000000] (3:node@c-2.me)  599280  | 533744 
-> [ 913.000000] (3:node@c-2.me)  664816  | 533744 
-> [ 913.000000] (3:node@c-2.me)  795888  | 533744 
-> [ 913.000000] (3:node@c-2.me)  1058032  | 533744 
-> [ 913.000000] (3:node@c-2.me)  1582320  | 533744 
-> [ 913.000000] (3:node@c-2.me)  2630896  | 533744 
-> [ 913.000000] (3:node@c-2.me)  4728048  | 533744 
-> [ 913.000000] (3:node@c-2.me)  8922352  | 533744 
-> [ 913.000000] (3:node@c-2.me) Predecessor: 366680
-> [ 921.000000] (8:node@c-7.me) My finger table:
-> [ 921.000000] (8:node@c-7.me) Start | Succ 
-> [ 921.000000] (8:node@c-7.me)  10004761  | 10874876 
-> [ 921.000000] (8:node@c-7.me)  10004762  | 16509405 
-> [ 921.000000] (8:node@c-7.me)  10004764  | 16509405 
-> [ 921.000000] (8:node@c-7.me)  10004768  | 16509405 
-> [ 921.000000] (8:node@c-7.me)  10004776  | 16509405 
-> [ 921.000000] (8:node@c-7.me)  10004792  | 16509405 
-> [ 921.000000] (8:node@c-7.me)  10004824  | 10874876 
-> [ 921.000000] (8:node@c-7.me)  10004888  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10005016  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10005272  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10005784  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10006808  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10008856  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10012952  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10021144  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10037528  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10070296  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10135832  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10266904  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  10529048  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  11053336  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  12101912  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  14199064  | 10004760 
-> [ 921.000000] (8:node@c-7.me)  1616152  | 10004760 
-> [ 921.000000] (8:node@c-7.me) Predecessor: 6518808
-> [ 964.000000] (2:node@c-1.me) My finger table:
-> [ 964.000000] (2:node@c-1.me) Start | Succ 
-> [ 964.000000] (2:node@c-1.me)  366681  | 533744 
-> [ 964.000000] (2:node@c-1.me)  366682  | 1319738 
-> [ 964.000000] (2:node@c-1.me)  366684  | 1319738 
-> [ 964.000000] (2:node@c-1.me)  366688  | 1319738 
-> [ 964.000000] (2:node@c-1.me)  366696  | 533744 
-> [ 964.000000] (2:node@c-1.me)  366712  | 533744 
-> [ 964.000000] (2:node@c-1.me)  366744  | 533744 
-> [ 964.000000] (2:node@c-1.me)  366808  | 366680 
-> [ 964.000000] (2:node@c-1.me)  366936  | 366680 
-> [ 964.000000] (2:node@c-1.me)  367192  | 366680 
-> [ 964.000000] (2:node@c-1.me)  367704  | 366680 
-> [ 964.000000] (2:node@c-1.me)  368728  | 366680 
-> [ 964.000000] (2:node@c-1.me)  370776  | 366680 
-> [ 964.000000] (2:node@c-1.me)  374872  | 366680 
-> [ 964.000000] (2:node@c-1.me)  383064  | 366680 
-> [ 964.000000] (2:node@c-1.me)  399448  | 366680 
-> [ 964.000000] (2:node@c-1.me)  432216  | 366680 
-> [ 964.000000] (2:node@c-1.me)  497752  | 366680 
-> [ 964.000000] (2:node@c-1.me)  628824  | 366680 
-> [ 964.000000] (2:node@c-1.me)  890968  | 366680 
-> [ 964.000000] (2:node@c-1.me)  1415256  | 366680 
-> [ 964.000000] (2:node@c-1.me)  2463832  | 366680 
-> [ 964.000000] (2:node@c-1.me)  4560984  | 366680 
-> [ 964.000000] (2:node@c-1.me)  8755288  | 366680 
-> [ 964.000000] (2:node@c-1.me) Predecessor: 42
-> [ 966.000000] (4:node@c-3.me) My finger table:
-> [ 966.000000] (4:node@c-3.me) Start | Succ 
-> [ 966.000000] (4:node@c-3.me)  1319739  | 2015253 
-> [ 966.000000] (4:node@c-3.me)  1319740  | 6518808 
-> [ 966.000000] (4:node@c-3.me)  1319742  | 2015253 
-> [ 966.000000] (4:node@c-3.me)  1319746  | 2015253 
-> [ 966.000000] (4:node@c-3.me)  1319754  | 2015253 
-> [ 966.000000] (4:node@c-3.me)  1319770  | 2015253 
-> [ 966.000000] (4:node@c-3.me)  1319802  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1319866  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1319994  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1320250  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1320762  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1321786  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1323834  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1327930  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1336122  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1352506  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1385274  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1450810  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1581882  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  1844026  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  2368314  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  3416890  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  5514042  | 1319738 
-> [ 966.000000] (4:node@c-3.me)  9708346  | 1319738 
-> [ 966.000000] (4:node@c-3.me) Predecessor: 533744
-> [ 966.000000] (7:node@c-6.me) My finger table:
-> [ 966.000000] (7:node@c-6.me) Start | Succ 
-> [ 966.000000] (7:node@c-6.me)  16728097  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728098  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728100  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728104  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728112  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728128  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728160  |  42 
-> [ 966.000000] (7:node@c-6.me)  16728224  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16728352  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16728608  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16729120  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16730144  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16732192  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16736288  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16744480  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16760864  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  16416  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  81952  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  213024  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  475168  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  999456  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  2048032  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  4145184  | 16728096 
-> [ 966.000000] (7:node@c-6.me)  8339488  | 16728096 
-> [ 966.000000] (7:node@c-6.me) Predecessor: 16509405
-> [ 973.000000] (9:node@c-8.me) My finger table:
-> [ 973.000000] (9:node@c-8.me) Start | Succ 
-> [ 973.000000] (9:node@c-8.me)  6518809  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518810  | 16728096 
-> [ 973.000000] (9:node@c-8.me)  6518812  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518816  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518824  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518840  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518872  | 10004760 
-> [ 973.000000] (9:node@c-8.me)  6518936  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6519064  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6519320  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6519832  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6520856  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6522904  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6527000  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6535192  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6551576  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6584344  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6649880  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  6780952  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  7043096  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  7567384  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  8615960  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  10713112  | 6518808 
-> [ 973.000000] (9:node@c-8.me)  14907416  | 6518808 
-> [ 973.000000] (9:node@c-8.me) Predecessor: 2015253
-> [ 979.000000] (10:node@c-9.me) My finger table:
-> [ 979.000000] (10:node@c-9.me) Start | Succ 
-> [ 979.000000] (10:node@c-9.me)  2015254  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015255  | 16728096 
-> [ 979.000000] (10:node@c-9.me)  2015257  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015261  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015269  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015285  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015317  | 6518808 
-> [ 979.000000] (10:node@c-9.me)  2015381  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2015509  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2015765  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2016277  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2017301  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2019349  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2023445  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2031637  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2048021  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2080789  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2146325  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2277397  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  2539541  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  3063829  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  4112405  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  6209557  | 2015253 
-> [ 979.000000] (10:node@c-9.me)  10403861  | 2015253 
-> [ 979.000000] (10:node@c-9.me) Predecessor: 1319738
-> [ 987.000000] (6:node@c-5.me) My finger table:
-> [ 987.000000] (6:node@c-5.me) Start | Succ 
-> [ 987.000000] (6:node@c-5.me)  10874877  | 16509405 
-> [ 987.000000] (6:node@c-5.me)  10874878  | 533744 
-> [ 987.000000] (6:node@c-5.me)  10874880  | 533744 
-> [ 987.000000] (6:node@c-5.me)  10874884  | 533744 
-> [ 987.000000] (6:node@c-5.me)  10874892  | 533744 
-> [ 987.000000] (6:node@c-5.me)  10874908  | 16728096 
-> [ 987.000000] (6:node@c-5.me)  10874940  | 16509405 
-> [ 987.000000] (6:node@c-5.me)  10875004  | 16509405 
-> [ 987.000000] (6:node@c-5.me)  10875132  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10875388  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10875900  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10876924  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10878972  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10883068  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10891260  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10907644  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  10940412  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  11005948  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  11137020  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  11399164  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  11923452  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  12972028  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  15069180  | 10874876 
-> [ 987.000000] (6:node@c-5.me)  2486268  | 10874876 
-> [ 987.000000] (6:node@c-5.me) Predecessor: 10004760
-> [1196.000000] (0:@) Messages created: 1827
-> [1196.000000] (0:@) Simulated time: 1196
+> [   5.999900] (2:node@c-1.me) My finger table:
+> [   5.999900] (2:node@c-1.me) Start | Succ 
+> [   5.999900] (2:node@c-1.me)  366681  |  42 
+> [   5.999900] (2:node@c-1.me)  366682  | 366680 
+> [   5.999900] (2:node@c-1.me)  366684  | 366680 
+> [   5.999900] (2:node@c-1.me)  366688  | 366680 
+> [   5.999900] (2:node@c-1.me)  366696  | 366680 
+> [   5.999900] (2:node@c-1.me)  366712  | 366680 
+> [   5.999900] (2:node@c-1.me)  366744  | 366680 
+> [   5.999900] (2:node@c-1.me)  366808  | 366680 
+> [   5.999900] (2:node@c-1.me)  366936  | 366680 
+> [   5.999900] (2:node@c-1.me)  367192  | 366680 
+> [   5.999900] (2:node@c-1.me)  367704  | 366680 
+> [   5.999900] (2:node@c-1.me)  368728  | 366680 
+> [   5.999900] (2:node@c-1.me)  370776  | 366680 
+> [   5.999900] (2:node@c-1.me)  374872  | 366680 
+> [   5.999900] (2:node@c-1.me)  383064  | 366680 
+> [   5.999900] (2:node@c-1.me)  399448  | 366680 
+> [   5.999900] (2:node@c-1.me)  432216  | 366680 
+> [   5.999900] (2:node@c-1.me)  497752  | 366680 
+> [   5.999900] (2:node@c-1.me)  628824  | 366680 
+> [   5.999900] (2:node@c-1.me)  890968  | 366680 
+> [   5.999900] (2:node@c-1.me)  1415256  | 366680 
+> [   5.999900] (2:node@c-1.me)  2463832  | 366680 
+> [   5.999900] (2:node@c-1.me)  4560984  | 366680 
+> [   5.999900] (2:node@c-1.me)  8755288  | 366680 
+> [   5.999900] (2:node@c-1.me) Predecessor: -1
+> [   7.999900] (7:node@c-6.me) My finger table:
+> [   7.999900] (7:node@c-6.me) Start | Succ 
+> [   7.999900] (7:node@c-6.me)  16728097  | 1319738 
+> [   7.999900] (7:node@c-6.me)  16728098  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728100  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728104  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728112  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728128  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728160  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728224  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728352  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16728608  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16729120  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16730144  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16732192  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16736288  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16744480  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16760864  | 16728096 
+> [   7.999900] (7:node@c-6.me)  16416  | 16728096 
+> [   7.999900] (7:node@c-6.me)  81952  | 16728096 
+> [   7.999900] (7:node@c-6.me)  213024  | 16728096 
+> [   7.999900] (7:node@c-6.me)  475168  | 16728096 
+> [   7.999900] (7:node@c-6.me)  999456  | 16728096 
+> [   7.999900] (7:node@c-6.me)  2048032  | 16728096 
+> [   7.999900] (7:node@c-6.me)  4145184  | 16728096 
+> [   7.999900] (7:node@c-6.me)  8339488  | 16728096 
+> [   7.999900] (7:node@c-6.me) Predecessor: -1
+> [   8.999900] (10:node@c-9.me) My finger table:
+> [   8.999900] (10:node@c-9.me) Start | Succ 
+> [   8.999900] (10:node@c-9.me)  2015254  | 1319738 
+> [   8.999900] (10:node@c-9.me)  2015255  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015257  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015261  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015269  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015285  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015317  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015381  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015509  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2015765  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2016277  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2017301  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2019349  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2023445  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2031637  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2048021  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2080789  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2146325  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2277397  | 2015253 
+> [   8.999900] (10:node@c-9.me)  2539541  | 2015253 
+> [   8.999900] (10:node@c-9.me)  3063829  | 2015253 
+> [   8.999900] (10:node@c-9.me)  4112405  | 2015253 
+> [   8.999900] (10:node@c-9.me)  6209557  | 2015253 
+> [   8.999900] (10:node@c-9.me)  10403861  | 2015253 
+> [   8.999900] (10:node@c-9.me) Predecessor: -1
+> [  10.999800] (4:node@c-3.me) My finger table:
+> [  10.999800] (4:node@c-3.me) Start | Succ 
+> [  10.999800] (4:node@c-3.me)  1319739  |  42 
+> [  10.999800] (4:node@c-3.me)  1319740  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319742  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319746  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319754  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319770  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319802  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319866  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1319994  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1320250  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1320762  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1321786  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1323834  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1327930  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1336122  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1352506  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1385274  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1450810  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1581882  | 1319738 
+> [  10.999800] (4:node@c-3.me)  1844026  | 1319738 
+> [  10.999800] (4:node@c-3.me)  2368314  | 1319738 
+> [  10.999800] (4:node@c-3.me)  3416890  | 1319738 
+> [  10.999800] (4:node@c-3.me)  5514042  | 1319738 
+> [  10.999800] (4:node@c-3.me)  9708346  | 1319738 
+> [  10.999800] (4:node@c-3.me) Predecessor: -1
+> [  15.999700] (9:node@c-8.me) My finger table:
+> [  15.999700] (9:node@c-8.me) Start | Succ 
+> [  15.999700] (9:node@c-8.me)  6518809  |  42 
+> [  15.999700] (9:node@c-8.me)  6518810  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518812  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518816  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518824  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518840  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518872  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6518936  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6519064  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6519320  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6519832  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6520856  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6522904  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6527000  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6535192  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6551576  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6584344  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6649880  | 6518808 
+> [  15.999700] (9:node@c-8.me)  6780952  | 6518808 
+> [  15.999700] (9:node@c-8.me)  7043096  | 6518808 
+> [  15.999700] (9:node@c-8.me)  7567384  | 6518808 
+> [  15.999700] (9:node@c-8.me)  8615960  | 6518808 
+> [  15.999700] (9:node@c-8.me)  10713112  | 6518808 
+> [  15.999700] (9:node@c-8.me)  14907416  | 6518808 
+> [  15.999700] (9:node@c-8.me) Predecessor: -1
+> [  26.999600] (3:node@c-2.me) My finger table:
+> [  26.999600] (3:node@c-2.me) Start | Succ 
+> [  26.999600] (3:node@c-2.me)  533745  | 366680 
+> [  26.999600] (3:node@c-2.me)  533746  | 533744 
+> [  26.999600] (3:node@c-2.me)  533748  | 533744 
+> [  26.999600] (3:node@c-2.me)  533752  | 533744 
+> [  26.999600] (3:node@c-2.me)  533760  | 533744 
+> [  26.999600] (3:node@c-2.me)  533776  | 533744 
+> [  26.999600] (3:node@c-2.me)  533808  | 533744 
+> [  26.999600] (3:node@c-2.me)  533872  | 533744 
+> [  26.999600] (3:node@c-2.me)  534000  | 533744 
+> [  26.999600] (3:node@c-2.me)  534256  | 533744 
+> [  26.999600] (3:node@c-2.me)  534768  | 533744 
+> [  26.999600] (3:node@c-2.me)  535792  | 533744 
+> [  26.999600] (3:node@c-2.me)  537840  | 533744 
+> [  26.999600] (3:node@c-2.me)  541936  | 533744 
+> [  26.999600] (3:node@c-2.me)  550128  | 533744 
+> [  26.999600] (3:node@c-2.me)  566512  | 533744 
+> [  26.999600] (3:node@c-2.me)  599280  | 533744 
+> [  26.999600] (3:node@c-2.me)  664816  | 533744 
+> [  26.999600] (3:node@c-2.me)  795888  | 533744 
+> [  26.999600] (3:node@c-2.me)  1058032  | 533744 
+> [  26.999600] (3:node@c-2.me)  1582320  | 533744 
+> [  26.999600] (3:node@c-2.me)  2630896  | 533744 
+> [  26.999600] (3:node@c-2.me)  4728048  | 533744 
+> [  26.999600] (3:node@c-2.me)  8922352  | 533744 
+> [  26.999600] (3:node@c-2.me) Predecessor: 10874876
+> [  31.999400] (5:node@c-4.me) My finger table:
+> [  31.999400] (5:node@c-4.me) Start | Succ 
+> [  31.999400] (5:node@c-4.me)  16509406  | 366680 
+> [  31.999400] (5:node@c-4.me)  16509407  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509409  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509413  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509421  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509437  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509469  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509533  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509661  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16509917  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16510429  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16511453  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16513501  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16517597  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16525789  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16542173  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16574941  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16640477  | 16509405 
+> [  31.999400] (5:node@c-4.me)  16771549  | 16509405 
+> [  31.999400] (5:node@c-4.me)  256477  | 16509405 
+> [  31.999400] (5:node@c-4.me)  780765  | 16509405 
+> [  31.999400] (5:node@c-4.me)  1829341  | 16509405 
+> [  31.999400] (5:node@c-4.me)  3926493  | 16509405 
+> [  31.999400] (5:node@c-4.me)  8120797  | 16509405 
+> [  31.999400] (5:node@c-4.me) Predecessor: 10004760
+> [  32.999400] (2:node@c-1.me) My finger table:
+> [  32.999400] (2:node@c-1.me) Start | Succ 
+> [  32.999400] (2:node@c-1.me)  366681  |  42 
+> [  32.999400] (2:node@c-1.me)  366682  | 366680 
+> [  32.999400] (2:node@c-1.me)  366684  | 366680 
+> [  32.999400] (2:node@c-1.me)  366688  | 366680 
+> [  32.999400] (2:node@c-1.me)  366696  | 366680 
+> [  32.999400] (2:node@c-1.me)  366712  | 366680 
+> [  32.999400] (2:node@c-1.me)  366744  | 366680 
+> [  32.999400] (2:node@c-1.me)  366808  | 366680 
+> [  32.999400] (2:node@c-1.me)  366936  | 366680 
+> [  32.999400] (2:node@c-1.me)  367192  | 366680 
+> [  32.999400] (2:node@c-1.me)  367704  | 366680 
+> [  32.999400] (2:node@c-1.me)  368728  | 366680 
+> [  32.999400] (2:node@c-1.me)  370776  | 366680 
+> [  32.999400] (2:node@c-1.me)  374872  | 366680 
+> [  32.999400] (2:node@c-1.me)  383064  | 366680 
+> [  32.999400] (2:node@c-1.me)  399448  | 366680 
+> [  32.999400] (2:node@c-1.me)  432216  | 366680 
+> [  32.999400] (2:node@c-1.me)  497752  | 366680 
+> [  32.999400] (2:node@c-1.me)  628824  | 366680 
+> [  32.999400] (2:node@c-1.me)  890968  | 366680 
+> [  32.999400] (2:node@c-1.me)  1415256  | 366680 
+> [  32.999400] (2:node@c-1.me)  2463832  | 366680 
+> [  32.999400] (2:node@c-1.me)  4560984  | 366680 
+> [  32.999400] (2:node@c-1.me)  8755288  | 366680 
+> [  32.999400] (2:node@c-1.me) Predecessor: 533744
+> [  33.999400] (2:node@c-1.me) My finger table:
+> [  33.999400] (2:node@c-1.me) Start | Succ 
+> [  33.999400] (2:node@c-1.me)  366681  |  42 
+> [  33.999400] (2:node@c-1.me)  366682  | 366680 
+> [  33.999400] (2:node@c-1.me)  366684  | 366680 
+> [  33.999400] (2:node@c-1.me)  366688  | 366680 
+> [  33.999400] (2:node@c-1.me)  366696  | 366680 
+> [  33.999400] (2:node@c-1.me)  366712  | 366680 
+> [  33.999400] (2:node@c-1.me)  366744  | 366680 
+> [  33.999400] (2:node@c-1.me)  366808  | 366680 
+> [  33.999400] (2:node@c-1.me)  366936  | 366680 
+> [  33.999400] (2:node@c-1.me)  367192  | 366680 
+> [  33.999400] (2:node@c-1.me)  367704  | 366680 
+> [  33.999400] (2:node@c-1.me)  368728  | 366680 
+> [  33.999400] (2:node@c-1.me)  370776  | 366680 
+> [  33.999400] (2:node@c-1.me)  374872  | 366680 
+> [  33.999400] (2:node@c-1.me)  383064  | 366680 
+> [  33.999400] (2:node@c-1.me)  399448  | 366680 
+> [  33.999400] (2:node@c-1.me)  432216  | 366680 
+> [  33.999400] (2:node@c-1.me)  497752  | 366680 
+> [  33.999400] (2:node@c-1.me)  628824  | 366680 
+> [  33.999400] (2:node@c-1.me)  890968  | 366680 
+> [  33.999400] (2:node@c-1.me)  1415256  | 366680 
+> [  33.999400] (2:node@c-1.me)  2463832  | 366680 
+> [  33.999400] (2:node@c-1.me)  4560984  | 366680 
+> [  33.999400] (2:node@c-1.me)  8755288  | 366680 
+> [  33.999400] (2:node@c-1.me) Predecessor: 16509405
+> [  35.999300] (4:node@c-3.me) My finger table:
+> [  35.999300] (4:node@c-3.me) Start | Succ 
+> [  35.999300] (4:node@c-3.me)  1319739  |  42 
+> [  35.999300] (4:node@c-3.me)  1319740  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319742  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319746  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319754  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319770  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319802  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319866  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1319994  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1320250  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1320762  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1321786  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1323834  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1327930  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1336122  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1352506  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1385274  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1450810  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1581882  | 1319738 
+> [  35.999300] (4:node@c-3.me)  1844026  | 1319738 
+> [  35.999300] (4:node@c-3.me)  2368314  | 1319738 
+> [  35.999300] (4:node@c-3.me)  3416890  | 1319738 
+> [  35.999300] (4:node@c-3.me)  5514042  | 1319738 
+> [  35.999300] (4:node@c-3.me)  9708346  | 1319738 
+> [  35.999300] (4:node@c-3.me) Predecessor: 16728096
+> [  49.999000] (1:node@c-0.me) My finger table:
+> [  49.999000] (1:node@c-0.me) Start | Succ 
+> [  49.999000] (1:node@c-0.me)   43  |  42 
+> [  49.999000] (1:node@c-0.me)   44  |  42 
+> [  49.999000] (1:node@c-0.me)   46  |  42 
+> [  49.999000] (1:node@c-0.me)   50  |  42 
+> [  49.999000] (1:node@c-0.me)   58  |  42 
+> [  49.999000] (1:node@c-0.me)   74  |  42 
+> [  49.999000] (1:node@c-0.me)  106  |  42 
+> [  49.999000] (1:node@c-0.me)  170  |  42 
+> [  49.999000] (1:node@c-0.me)  298  |  42 
+> [  49.999000] (1:node@c-0.me)  554  |  42 
+> [  49.999000] (1:node@c-0.me)  1066  |  42 
+> [  49.999000] (1:node@c-0.me)  2090  |  42 
+> [  49.999000] (1:node@c-0.me)  4138  |  42 
+> [  49.999000] (1:node@c-0.me)  8234  |  42 
+> [  49.999000] (1:node@c-0.me)  16426  |  42 
+> [  49.999000] (1:node@c-0.me)  32810  |  42 
+> [  49.999000] (1:node@c-0.me)  65578  |  42 
+> [  49.999000] (1:node@c-0.me)  131114  |  42 
+> [  49.999000] (1:node@c-0.me)  262186  |  42 
+> [  49.999000] (1:node@c-0.me)  524330  |  42 
+> [  49.999000] (1:node@c-0.me)  1048618  |  42 
+> [  49.999000] (1:node@c-0.me)  2097194  |  42 
+> [  49.999000] (1:node@c-0.me)  4194346  |  42 
+> [  49.999000] (1:node@c-0.me)  8388650  |  42 
+> [  49.999000] (1:node@c-0.me) Predecessor: 366680
+> [  59.998800] (1:node@c-0.me) My finger table:
+> [  59.998800] (1:node@c-0.me) Start | Succ 
+> [  59.998800] (1:node@c-0.me)   43  | 366680 
+> [  59.998800] (1:node@c-0.me)   44  |  42 
+> [  59.998800] (1:node@c-0.me)   46  |  42 
+> [  59.998800] (1:node@c-0.me)   50  |  42 
+> [  59.998800] (1:node@c-0.me)   58  |  42 
+> [  59.998800] (1:node@c-0.me)   74  |  42 
+> [  59.998800] (1:node@c-0.me)  106  |  42 
+> [  59.998800] (1:node@c-0.me)  170  |  42 
+> [  59.998800] (1:node@c-0.me)  298  |  42 
+> [  59.998800] (1:node@c-0.me)  554  |  42 
+> [  59.998800] (1:node@c-0.me)  1066  |  42 
+> [  59.998800] (1:node@c-0.me)  2090  |  42 
+> [  59.998800] (1:node@c-0.me)  4138  |  42 
+> [  59.998800] (1:node@c-0.me)  8234  |  42 
+> [  59.998800] (1:node@c-0.me)  16426  |  42 
+> [  59.998800] (1:node@c-0.me)  32810  |  42 
+> [  59.998800] (1:node@c-0.me)  65578  |  42 
+> [  59.998800] (1:node@c-0.me)  131114  |  42 
+> [  59.998800] (1:node@c-0.me)  262186  |  42 
+> [  59.998800] (1:node@c-0.me)  524330  |  42 
+> [  59.998800] (1:node@c-0.me)  1048618  |  42 
+> [  59.998800] (1:node@c-0.me)  2097194  |  42 
+> [  59.998800] (1:node@c-0.me)  4194346  |  42 
+> [  59.998800] (1:node@c-0.me)  8388650  |  42 
+> [  59.998800] (1:node@c-0.me) Predecessor: 1319738
+> [  69.998600] (1:node@c-0.me) My finger table:
+> [  69.998600] (1:node@c-0.me) Start | Succ 
+> [  69.998600] (1:node@c-0.me)   43  | 366680 
+> [  69.998600] (1:node@c-0.me)   44  |  42 
+> [  69.998600] (1:node@c-0.me)   46  |  42 
+> [  69.998600] (1:node@c-0.me)   50  |  42 
+> [  69.998600] (1:node@c-0.me)   58  |  42 
+> [  69.998600] (1:node@c-0.me)   74  |  42 
+> [  69.998600] (1:node@c-0.me)  106  |  42 
+> [  69.998600] (1:node@c-0.me)  170  |  42 
+> [  69.998600] (1:node@c-0.me)  298  |  42 
+> [  69.998600] (1:node@c-0.me)  554  |  42 
+> [  69.998600] (1:node@c-0.me)  1066  |  42 
+> [  69.998600] (1:node@c-0.me)  2090  |  42 
+> [  69.998600] (1:node@c-0.me)  4138  |  42 
+> [  69.998600] (1:node@c-0.me)  8234  |  42 
+> [  69.998600] (1:node@c-0.me)  16426  |  42 
+> [  69.998600] (1:node@c-0.me)  32810  |  42 
+> [  69.998600] (1:node@c-0.me)  65578  |  42 
+> [  69.998600] (1:node@c-0.me)  131114  |  42 
+> [  69.998600] (1:node@c-0.me)  262186  |  42 
+> [  69.998600] (1:node@c-0.me)  524330  |  42 
+> [  69.998600] (1:node@c-0.me)  1048618  |  42 
+> [  69.998600] (1:node@c-0.me)  2097194  |  42 
+> [  69.998600] (1:node@c-0.me)  4194346  |  42 
+> [  69.998600] (1:node@c-0.me)  8388650  |  42 
+> [  69.998600] (1:node@c-0.me) Predecessor: 6518808
+> [  81.998500] (2:node@c-1.me) My finger table:
+> [  81.998500] (2:node@c-1.me) Start | Succ 
+> [  81.998500] (2:node@c-1.me)  366681  | 6518808 
+> [  81.998500] (2:node@c-1.me)  366682  | 366680 
+> [  81.998500] (2:node@c-1.me)  366684  | 366680 
+> [  81.998500] (2:node@c-1.me)  366688  | 366680 
+> [  81.998500] (2:node@c-1.me)  366696  | 366680 
+> [  81.998500] (2:node@c-1.me)  366712  | 366680 
+> [  81.998500] (2:node@c-1.me)  366744  | 366680 
+> [  81.998500] (2:node@c-1.me)  366808  | 366680 
+> [  81.998500] (2:node@c-1.me)  366936  | 366680 
+> [  81.998500] (2:node@c-1.me)  367192  | 366680 
+> [  81.998500] (2:node@c-1.me)  367704  | 366680 
+> [  81.998500] (2:node@c-1.me)  368728  | 366680 
+> [  81.998500] (2:node@c-1.me)  370776  | 366680 
+> [  81.998500] (2:node@c-1.me)  374872  | 366680 
+> [  81.998500] (2:node@c-1.me)  383064  | 366680 
+> [  81.998500] (2:node@c-1.me)  399448  | 366680 
+> [  81.998500] (2:node@c-1.me)  432216  | 366680 
+> [  81.998500] (2:node@c-1.me)  497752  | 366680 
+> [  81.998500] (2:node@c-1.me)  628824  | 366680 
+> [  81.998500] (2:node@c-1.me)  890968  | 366680 
+> [  81.998500] (2:node@c-1.me)  1415256  | 366680 
+> [  81.998500] (2:node@c-1.me)  2463832  | 366680 
+> [  81.998500] (2:node@c-1.me)  4560984  | 366680 
+> [  81.998500] (2:node@c-1.me)  8755288  | 366680 
+> [  81.998500] (2:node@c-1.me) Predecessor: 42
+> [  98.998100] (7:node@c-6.me) My finger table:
+> [  98.998100] (7:node@c-6.me) Start | Succ 
+> [  98.998100] (7:node@c-6.me)  16728097  | 1319738 
+> [  98.998100] (7:node@c-6.me)  16728098  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728100  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728104  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728112  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728128  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728160  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728224  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728352  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16728608  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16729120  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16730144  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16732192  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16736288  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16744480  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16760864  | 16728096 
+> [  98.998100] (7:node@c-6.me)  16416  | 16728096 
+> [  98.998100] (7:node@c-6.me)  81952  | 16728096 
+> [  98.998100] (7:node@c-6.me)  213024  | 16728096 
+> [  98.998100] (7:node@c-6.me)  475168  | 16728096 
+> [  98.998100] (7:node@c-6.me)  999456  | 16728096 
+> [  98.998100] (7:node@c-6.me)  2048032  | 16728096 
+> [  98.998100] (7:node@c-6.me)  4145184  | 16728096 
+> [  98.998100] (7:node@c-6.me)  8339488  | 16728096 
+> [  98.998100] (7:node@c-6.me) Predecessor: 2015253
+> [ 110.998000] (9:node@c-8.me) My finger table:
+> [ 110.998000] (9:node@c-8.me) Start | Succ 
+> [ 110.998000] (9:node@c-8.me)  6518809  |  42 
+> [ 110.998000] (9:node@c-8.me)  6518810  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518812  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518816  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518824  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518840  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518872  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6518936  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6519064  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6519320  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6519832  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6520856  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6522904  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6527000  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6535192  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6551576  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6584344  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6649880  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  6780952  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  7043096  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  7567384  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  8615960  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  10713112  | 6518808 
+> [ 110.998000] (9:node@c-8.me)  14907416  | 6518808 
+> [ 110.998000] (9:node@c-8.me) Predecessor: 366680
+> [ 111.998000] (9:node@c-8.me) My finger table:
+> [ 111.998000] (9:node@c-8.me) Start | Succ 
+> [ 111.998000] (9:node@c-8.me)  6518809  |  42 
+> [ 111.998000] (9:node@c-8.me)  6518810  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518812  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518816  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518824  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518840  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518872  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6518936  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6519064  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6519320  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6519832  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6520856  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6522904  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6527000  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6535192  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6551576  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6584344  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6649880  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  6780952  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  7043096  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  7567384  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  8615960  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  10713112  | 6518808 
+> [ 111.998000] (9:node@c-8.me)  14907416  | 6518808 
+> [ 111.998000] (9:node@c-8.me) Predecessor: 1319738
+> [ 127.997700] (8:node@c-7.me) My finger table:
+> [ 127.997700] (8:node@c-7.me) Start | Succ 
+> [ 127.997700] (8:node@c-7.me)  10004761  | 16509405 
+> [ 127.997700] (8:node@c-7.me)  10004762  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004764  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004768  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004776  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004792  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004824  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10004888  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10005016  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10005272  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10005784  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10006808  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10008856  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10012952  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10021144  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10037528  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10070296  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10135832  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10266904  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  10529048  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  11053336  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  12101912  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  14199064  | 10004760 
+> [ 127.997700] (8:node@c-7.me)  1616152  | 10004760 
+> [ 127.997700] (8:node@c-7.me) Predecessor: 533744
+> [ 137.997600] (1:node@c-0.me) My finger table:
+> [ 137.997600] (1:node@c-0.me) Start | Succ 
+> [ 137.997600] (1:node@c-0.me)   43  | 366680 
+> [ 137.997600] (1:node@c-0.me)   44  |  42 
+> [ 137.997600] (1:node@c-0.me)   46  |  42 
+> [ 137.997600] (1:node@c-0.me)   50  |  42 
+> [ 137.997600] (1:node@c-0.me)   58  |  42 
+> [ 137.997600] (1:node@c-0.me)   74  |  42 
+> [ 137.997600] (1:node@c-0.me)  106  |  42 
+> [ 137.997600] (1:node@c-0.me)  170  |  42 
+> [ 137.997600] (1:node@c-0.me)  298  |  42 
+> [ 137.997600] (1:node@c-0.me)  554  |  42 
+> [ 137.997600] (1:node@c-0.me)  1066  |  42 
+> [ 137.997600] (1:node@c-0.me)  2090  |  42 
+> [ 137.997600] (1:node@c-0.me)  4138  |  42 
+> [ 137.997600] (1:node@c-0.me)  8234  |  42 
+> [ 137.997600] (1:node@c-0.me)  16426  |  42 
+> [ 137.997600] (1:node@c-0.me)  32810  |  42 
+> [ 137.997600] (1:node@c-0.me)  65578  |  42 
+> [ 137.997600] (1:node@c-0.me)  131114  |  42 
+> [ 137.997600] (1:node@c-0.me)  262186  |  42 
+> [ 137.997600] (1:node@c-0.me)  524330  |  42 
+> [ 137.997600] (1:node@c-0.me)  1048618  |  42 
+> [ 137.997600] (1:node@c-0.me)  2097194  |  42 
+> [ 137.997600] (1:node@c-0.me)  4194346  |  42 
+> [ 137.997600] (1:node@c-0.me)  8388650  |  42 
+> [ 137.997600] (1:node@c-0.me) Predecessor: 16509405
+> [ 165.997100] (4:node@c-3.me) My finger table:
+> [ 165.997100] (4:node@c-3.me) Start | Succ 
+> [ 165.997100] (4:node@c-3.me)  1319739  | 6518808 
+> [ 165.997100] (4:node@c-3.me)  1319740  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319742  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319746  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319754  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319770  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319802  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319866  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1319994  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1320250  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1320762  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1321786  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1323834  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1327930  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1336122  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1352506  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1385274  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1450810  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1581882  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  1844026  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  2368314  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  3416890  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  5514042  | 1319738 
+> [ 165.997100] (4:node@c-3.me)  9708346  | 1319738 
+> [ 165.997100] (4:node@c-3.me) Predecessor: 366680
+> [ 209.996500] (8:node@c-7.me) My finger table:
+> [ 209.996500] (8:node@c-7.me) Start | Succ 
+> [ 209.996500] (8:node@c-7.me)  10004761  | 16509405 
+> [ 209.996500] (8:node@c-7.me)  10004762  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004764  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004768  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004776  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004792  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004824  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10004888  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10005016  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10005272  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10005784  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10006808  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10008856  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10012952  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10021144  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10037528  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10070296  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10135832  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10266904  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  10529048  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  11053336  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  12101912  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  14199064  | 10004760 
+> [ 209.996500] (8:node@c-7.me)  1616152  | 10004760 
+> [ 209.996500] (8:node@c-7.me) Predecessor: 6518808
+> [ 247.995800] (6:node@c-5.me) My finger table:
+> [ 247.995800] (6:node@c-5.me) Start | Succ 
+> [ 247.995800] (6:node@c-5.me)  10874877  | 533744 
+> [ 247.995800] (6:node@c-5.me)  10874878  | 533744 
+> [ 247.995800] (6:node@c-5.me)  10874880  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10874884  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10874892  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10874908  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10874940  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10875004  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10875132  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10875388  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10875900  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10876924  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10878972  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10883068  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10891260  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10907644  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  10940412  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  11005948  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  11137020  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  11399164  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  11923452  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  12972028  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  15069180  | 10874876 
+> [ 247.995800] (6:node@c-5.me)  2486268  | 10874876 
+> [ 247.995800] (6:node@c-5.me) Predecessor: -1
+> [ 249.995700] (7:node@c-6.me) My finger table:
+> [ 249.995700] (7:node@c-6.me) Start | Succ 
+> [ 249.995700] (7:node@c-6.me)  16728097  |  42 
+> [ 249.995700] (7:node@c-6.me)  16728098  |  42 
+> [ 249.995700] (7:node@c-6.me)  16728100  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728104  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728112  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728128  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728160  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728224  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728352  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16728608  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16729120  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16730144  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16732192  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16736288  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16744480  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16760864  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  16416  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  81952  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  213024  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  475168  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  999456  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  2048032  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  4145184  | 16728096 
+> [ 249.995700] (7:node@c-6.me)  8339488  | 16728096 
+> [ 249.995700] (7:node@c-6.me) Predecessor: 2015253
+> [ 251.995700] (8:node@c-7.me) My finger table:
+> [ 251.995700] (8:node@c-7.me) Start | Succ 
+> [ 251.995700] (8:node@c-7.me)  10004761  | 16509405 
+> [ 251.995700] (8:node@c-7.me)  10004762  | 16509405 
+> [ 251.995700] (8:node@c-7.me)  10004764  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10004768  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10004776  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10004792  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10004824  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10004888  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10005016  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10005272  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10005784  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10006808  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10008856  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10012952  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10021144  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10037528  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10070296  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10135832  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10266904  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  10529048  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  11053336  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  12101912  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  14199064  | 10004760 
+> [ 251.995700] (8:node@c-7.me)  1616152  | 10004760 
+> [ 251.995700] (8:node@c-7.me) Predecessor: 6518808
+> [ 252.995700] (2:node@c-1.me) My finger table:
+> [ 252.995700] (2:node@c-1.me) Start | Succ 
+> [ 252.995700] (2:node@c-1.me)  366681  | 1319738 
+> [ 252.995700] (2:node@c-1.me)  366682  | 1319738 
+> [ 252.995700] (2:node@c-1.me)  366684  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366688  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366696  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366712  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366744  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366808  | 366680 
+> [ 252.995700] (2:node@c-1.me)  366936  | 366680 
+> [ 252.995700] (2:node@c-1.me)  367192  | 366680 
+> [ 252.995700] (2:node@c-1.me)  367704  | 366680 
+> [ 252.995700] (2:node@c-1.me)  368728  | 366680 
+> [ 252.995700] (2:node@c-1.me)  370776  | 366680 
+> [ 252.995700] (2:node@c-1.me)  374872  | 366680 
+> [ 252.995700] (2:node@c-1.me)  383064  | 366680 
+> [ 252.995700] (2:node@c-1.me)  399448  | 366680 
+> [ 252.995700] (2:node@c-1.me)  432216  | 366680 
+> [ 252.995700] (2:node@c-1.me)  497752  | 366680 
+> [ 252.995700] (2:node@c-1.me)  628824  | 366680 
+> [ 252.995700] (2:node@c-1.me)  890968  | 366680 
+> [ 252.995700] (2:node@c-1.me)  1415256  | 366680 
+> [ 252.995700] (2:node@c-1.me)  2463832  | 366680 
+> [ 252.995700] (2:node@c-1.me)  4560984  | 366680 
+> [ 252.995700] (2:node@c-1.me)  8755288  | 366680 
+> [ 252.995700] (2:node@c-1.me) Predecessor: 42
+> [ 254.995700] (1:node@c-0.me) My finger table:
+> [ 254.995700] (1:node@c-0.me) Start | Succ 
+> [ 254.995700] (1:node@c-0.me)   43  | 366680 
+> [ 254.995700] (1:node@c-0.me)   44  |  42 
+> [ 254.995700] (1:node@c-0.me)   46  |  42 
+> [ 254.995700] (1:node@c-0.me)   50  |  42 
+> [ 254.995700] (1:node@c-0.me)   58  |  42 
+> [ 254.995700] (1:node@c-0.me)   74  |  42 
+> [ 254.995700] (1:node@c-0.me)  106  |  42 
+> [ 254.995700] (1:node@c-0.me)  170  |  42 
+> [ 254.995700] (1:node@c-0.me)  298  |  42 
+> [ 254.995700] (1:node@c-0.me)  554  |  42 
+> [ 254.995700] (1:node@c-0.me)  1066  |  42 
+> [ 254.995700] (1:node@c-0.me)  2090  |  42 
+> [ 254.995700] (1:node@c-0.me)  4138  |  42 
+> [ 254.995700] (1:node@c-0.me)  8234  |  42 
+> [ 254.995700] (1:node@c-0.me)  16426  |  42 
+> [ 254.995700] (1:node@c-0.me)  32810  |  42 
+> [ 254.995700] (1:node@c-0.me)  65578  |  42 
+> [ 254.995700] (1:node@c-0.me)  131114  |  42 
+> [ 254.995700] (1:node@c-0.me)  262186  |  42 
+> [ 254.995700] (1:node@c-0.me)  524330  |  42 
+> [ 254.995700] (1:node@c-0.me)  1048618  |  42 
+> [ 254.995700] (1:node@c-0.me)  2097194  |  42 
+> [ 254.995700] (1:node@c-0.me)  4194346  |  42 
+> [ 254.995700] (1:node@c-0.me)  8388650  |  42 
+> [ 254.995700] (1:node@c-0.me) Predecessor: 16728096
+> [ 254.995700] (4:node@c-3.me) My finger table:
+> [ 254.995700] (4:node@c-3.me) Start | Succ 
+> [ 254.995700] (4:node@c-3.me)  1319739  | 6518808 
+> [ 254.995700] (4:node@c-3.me)  1319740  | 6518808 
+> [ 254.995700] (4:node@c-3.me)  1319742  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319746  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319754  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319770  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319802  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319866  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1319994  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1320250  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1320762  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1321786  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1323834  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1327930  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1336122  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1352506  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1385274  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1450810  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1581882  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  1844026  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  2368314  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  3416890  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  5514042  | 1319738 
+> [ 254.995700] (4:node@c-3.me)  9708346  | 1319738 
+> [ 254.995700] (4:node@c-3.me) Predecessor: 366680
+> [ 255.995700] (1:node@c-0.me) My finger table:
+> [ 255.995700] (1:node@c-0.me) Start | Succ 
+> [ 255.995700] (1:node@c-0.me)   43  | 366680 
+> [ 255.995700] (1:node@c-0.me)   44  | 366680 
+> [ 255.995700] (1:node@c-0.me)   46  |  42 
+> [ 255.995700] (1:node@c-0.me)   50  |  42 
+> [ 255.995700] (1:node@c-0.me)   58  |  42 
+> [ 255.995700] (1:node@c-0.me)   74  |  42 
+> [ 255.995700] (1:node@c-0.me)  106  |  42 
+> [ 255.995700] (1:node@c-0.me)  170  |  42 
+> [ 255.995700] (1:node@c-0.me)  298  |  42 
+> [ 255.995700] (1:node@c-0.me)  554  |  42 
+> [ 255.995700] (1:node@c-0.me)  1066  |  42 
+> [ 255.995700] (1:node@c-0.me)  2090  |  42 
+> [ 255.995700] (1:node@c-0.me)  4138  |  42 
+> [ 255.995700] (1:node@c-0.me)  8234  |  42 
+> [ 255.995700] (1:node@c-0.me)  16426  |  42 
+> [ 255.995700] (1:node@c-0.me)  32810  |  42 
+> [ 255.995700] (1:node@c-0.me)  65578  |  42 
+> [ 255.995700] (1:node@c-0.me)  131114  |  42 
+> [ 255.995700] (1:node@c-0.me)  262186  |  42 
+> [ 255.995700] (1:node@c-0.me)  524330  |  42 
+> [ 255.995700] (1:node@c-0.me)  1048618  |  42 
+> [ 255.995700] (1:node@c-0.me)  2097194  |  42 
+> [ 255.995700] (1:node@c-0.me)  4194346  |  42 
+> [ 255.995700] (1:node@c-0.me)  8388650  |  42 
+> [ 255.995700] (1:node@c-0.me) Predecessor: 16728096
+> [ 255.995700] (5:node@c-4.me) My finger table:
+> [ 255.995700] (5:node@c-4.me) Start | Succ 
+> [ 255.995700] (5:node@c-4.me)  16509406  |  42 
+> [ 255.995700] (5:node@c-4.me)  16509407  |  42 
+> [ 255.995700] (5:node@c-4.me)  16509409  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509413  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509421  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509437  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509469  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509533  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509661  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16509917  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16510429  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16511453  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16513501  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16517597  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16525789  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16542173  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16574941  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16640477  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  16771549  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  256477  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  780765  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  1829341  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  3926493  | 16509405 
+> [ 255.995700] (5:node@c-4.me)  8120797  | 16509405 
+> [ 255.995700] (5:node@c-4.me) Predecessor: 10004760
+> [ 257.995700] (10:node@c-9.me) My finger table:
+> [ 257.995700] (10:node@c-9.me) Start | Succ 
+> [ 257.995700] (10:node@c-9.me)  2015254  | 16728096 
+> [ 257.995700] (10:node@c-9.me)  2015255  | 16728096 
+> [ 257.995700] (10:node@c-9.me)  2015257  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015261  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015269  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015285  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015317  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015381  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015509  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2015765  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2016277  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2017301  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2019349  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2023445  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2031637  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2048021  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2080789  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2146325  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2277397  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  2539541  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  3063829  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  4112405  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  6209557  | 2015253 
+> [ 257.995700] (10:node@c-9.me)  10403861  | 2015253 
+> [ 257.995700] (10:node@c-9.me) Predecessor: -1
+> [ 263.995700] (3:node@c-2.me) My finger table:
+> [ 263.995700] (3:node@c-2.me) Start | Succ 
+> [ 263.995700] (3:node@c-2.me)  533745  | 1319738 
+> [ 263.995700] (3:node@c-2.me)  533746  | 1319738 
+> [ 263.995700] (3:node@c-2.me)  533748  | 533744 
+> [ 263.995700] (3:node@c-2.me)  533752  | 533744 
+> [ 263.995700] (3:node@c-2.me)  533760  | 533744 
+> [ 263.995700] (3:node@c-2.me)  533776  | 533744 
+> [ 263.995700] (3:node@c-2.me)  533808  | 533744 
+> [ 263.995700] (3:node@c-2.me)  533872  | 533744 
+> [ 263.995700] (3:node@c-2.me)  534000  | 533744 
+> [ 263.995700] (3:node@c-2.me)  534256  | 533744 
+> [ 263.995700] (3:node@c-2.me)  534768  | 533744 
+> [ 263.995700] (3:node@c-2.me)  535792  | 533744 
+> [ 263.995700] (3:node@c-2.me)  537840  | 533744 
+> [ 263.995700] (3:node@c-2.me)  541936  | 533744 
+> [ 263.995700] (3:node@c-2.me)  550128  | 533744 
+> [ 263.995700] (3:node@c-2.me)  566512  | 533744 
+> [ 263.995700] (3:node@c-2.me)  599280  | 533744 
+> [ 263.995700] (3:node@c-2.me)  664816  | 533744 
+> [ 263.995700] (3:node@c-2.me)  795888  | 533744 
+> [ 263.995700] (3:node@c-2.me)  1058032  | 533744 
+> [ 263.995700] (3:node@c-2.me)  1582320  | 533744 
+> [ 263.995700] (3:node@c-2.me)  2630896  | 533744 
+> [ 263.995700] (3:node@c-2.me)  4728048  | 533744 
+> [ 263.995700] (3:node@c-2.me)  8922352  | 533744 
+> [ 263.995700] (3:node@c-2.me) Predecessor: 10874876
+> [ 264.995500] (9:node@c-8.me) My finger table:
+> [ 264.995500] (9:node@c-8.me) Start | Succ 
+> [ 264.995500] (9:node@c-8.me)  6518809  | 10004760 
+> [ 264.995500] (9:node@c-8.me)  6518810  | 10004760 
+> [ 264.995500] (9:node@c-8.me)  6518812  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6518816  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6518824  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6518840  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6518872  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6518936  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6519064  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6519320  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6519832  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6520856  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6522904  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6527000  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6535192  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6551576  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6584344  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6649880  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  6780952  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  7043096  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  7567384  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  8615960  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  10713112  | 6518808 
+> [ 264.995500] (9:node@c-8.me)  14907416  | 6518808 
+> [ 264.995500] (9:node@c-8.me) Predecessor: 1319738
+> [ 310.994900] (4:node@c-3.me) My finger table:
+> [ 310.994900] (4:node@c-3.me) Start | Succ 
+> [ 310.994900] (4:node@c-3.me)  1319739  | 6518808 
+> [ 310.994900] (4:node@c-3.me)  1319740  | 6518808 
+> [ 310.994900] (4:node@c-3.me)  1319742  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319746  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319754  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319770  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319802  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319866  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1319994  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1320250  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1320762  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1321786  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1323834  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1327930  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1336122  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1352506  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1385274  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1450810  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1581882  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  1844026  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  2368314  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  3416890  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  5514042  | 1319738 
+> [ 310.994900] (4:node@c-3.me)  9708346  | 1319738 
+> [ 310.994900] (4:node@c-3.me) Predecessor: 533744
+> [ 335.994500] (7:node@c-6.me) My finger table:
+> [ 335.994500] (7:node@c-6.me) Start | Succ 
+> [ 335.994500] (7:node@c-6.me)  16728097  |  42 
+> [ 335.994500] (7:node@c-6.me)  16728098  |  42 
+> [ 335.994500] (7:node@c-6.me)  16728100  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728104  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728112  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728128  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728160  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728224  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728352  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16728608  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16729120  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16730144  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16732192  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16736288  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16744480  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16760864  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  16416  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  81952  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  213024  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  475168  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  999456  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  2048032  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  4145184  | 16728096 
+> [ 335.994500] (7:node@c-6.me)  8339488  | 16728096 
+> [ 335.994500] (7:node@c-6.me) Predecessor: 16509405
+> [ 366.994000] (3:node@c-2.me) My finger table:
+> [ 366.994000] (3:node@c-2.me) Start | Succ 
+> [ 366.994000] (3:node@c-2.me)  533745  | 1319738 
+> [ 366.994000] (3:node@c-2.me)  533746  | 1319738 
+> [ 366.994000] (3:node@c-2.me)  533748  | 533744 
+> [ 366.994000] (3:node@c-2.me)  533752  | 533744 
+> [ 366.994000] (3:node@c-2.me)  533760  | 533744 
+> [ 366.994000] (3:node@c-2.me)  533776  | 533744 
+> [ 366.994000] (3:node@c-2.me)  533808  | 533744 
+> [ 366.994000] (3:node@c-2.me)  533872  | 533744 
+> [ 366.994000] (3:node@c-2.me)  534000  | 533744 
+> [ 366.994000] (3:node@c-2.me)  534256  | 533744 
+> [ 366.994000] (3:node@c-2.me)  534768  | 533744 
+> [ 366.994000] (3:node@c-2.me)  535792  | 533744 
+> [ 366.994000] (3:node@c-2.me)  537840  | 533744 
+> [ 366.994000] (3:node@c-2.me)  541936  | 533744 
+> [ 366.994000] (3:node@c-2.me)  550128  | 533744 
+> [ 366.994000] (3:node@c-2.me)  566512  | 533744 
+> [ 366.994000] (3:node@c-2.me)  599280  | 533744 
+> [ 366.994000] (3:node@c-2.me)  664816  | 533744 
+> [ 366.994000] (3:node@c-2.me)  795888  | 533744 
+> [ 366.994000] (3:node@c-2.me)  1058032  | 533744 
+> [ 366.994000] (3:node@c-2.me)  1582320  | 533744 
+> [ 366.994000] (3:node@c-2.me)  2630896  | 533744 
+> [ 366.994000] (3:node@c-2.me)  4728048  | 533744 
+> [ 366.994000] (3:node@c-2.me)  8922352  | 533744 
+> [ 366.994000] (3:node@c-2.me) Predecessor: 366680
+> [ 370.993500] (6:node@c-5.me) My finger table:
+> [ 370.993500] (6:node@c-5.me) Start | Succ 
+> [ 370.993500] (6:node@c-5.me)  10874877  | 533744 
+> [ 370.993500] (6:node@c-5.me)  10874878  | 533744 
+> [ 370.993500] (6:node@c-5.me)  10874880  | 533744 
+> [ 370.993500] (6:node@c-5.me)  10874884  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10874892  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10874908  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10874940  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10875004  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10875132  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10875388  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10875900  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10876924  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10878972  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10883068  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10891260  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10907644  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  10940412  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  11005948  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  11137020  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  11399164  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  11923452  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  12972028  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  15069180  | 10874876 
+> [ 370.993500] (6:node@c-5.me)  2486268  | 10874876 
+> [ 370.993500] (6:node@c-5.me) Predecessor: -1
+> [ 375.993800] (2:node@c-1.me) My finger table:
+> [ 375.993800] (2:node@c-1.me) Start | Succ 
+> [ 375.993800] (2:node@c-1.me)  366681  | 533744 
+> [ 375.993800] (2:node@c-1.me)  366682  | 1319738 
+> [ 375.993800] (2:node@c-1.me)  366684  | 533744 
+> [ 375.993800] (2:node@c-1.me)  366688  | 366680 
+> [ 375.993800] (2:node@c-1.me)  366696  | 366680 
+> [ 375.993800] (2:node@c-1.me)  366712  | 366680 
+> [ 375.993800] (2:node@c-1.me)  366744  | 366680 
+> [ 375.993800] (2:node@c-1.me)  366808  | 366680 
+> [ 375.993800] (2:node@c-1.me)  366936  | 366680 
+> [ 375.993800] (2:node@c-1.me)  367192  | 366680 
+> [ 375.993800] (2:node@c-1.me)  367704  | 366680 
+> [ 375.993800] (2:node@c-1.me)  368728  | 366680 
+> [ 375.993800] (2:node@c-1.me)  370776  | 366680 
+> [ 375.993800] (2:node@c-1.me)  374872  | 366680 
+> [ 375.993800] (2:node@c-1.me)  383064  | 366680 
+> [ 375.993800] (2:node@c-1.me)  399448  | 366680 
+> [ 375.993800] (2:node@c-1.me)  432216  | 366680 
+> [ 375.993800] (2:node@c-1.me)  497752  | 366680 
+> [ 375.993800] (2:node@c-1.me)  628824  | 366680 
+> [ 375.993800] (2:node@c-1.me)  890968  | 366680 
+> [ 375.993800] (2:node@c-1.me)  1415256  | 366680 
+> [ 375.993800] (2:node@c-1.me)  2463832  | 366680 
+> [ 375.993800] (2:node@c-1.me)  4560984  | 366680 
+> [ 375.993800] (2:node@c-1.me)  8755288  | 366680 
+> [ 375.993800] (2:node@c-1.me) Predecessor: 42
+> [ 376.993800] (1:node@c-0.me) My finger table:
+> [ 376.993800] (1:node@c-0.me) Start | Succ 
+> [ 376.993800] (1:node@c-0.me)   43  | 366680 
+> [ 376.993800] (1:node@c-0.me)   44  | 366680 
+> [ 376.993800] (1:node@c-0.me)   46  | 366680 
+> [ 376.993800] (1:node@c-0.me)   50  |  42 
+> [ 376.993800] (1:node@c-0.me)   58  |  42 
+> [ 376.993800] (1:node@c-0.me)   74  |  42 
+> [ 376.993800] (1:node@c-0.me)  106  |  42 
+> [ 376.993800] (1:node@c-0.me)  170  |  42 
+> [ 376.993800] (1:node@c-0.me)  298  |  42 
+> [ 376.993800] (1:node@c-0.me)  554  |  42 
+> [ 376.993800] (1:node@c-0.me)  1066  |  42 
+> [ 376.993800] (1:node@c-0.me)  2090  |  42 
+> [ 376.993800] (1:node@c-0.me)  4138  |  42 
+> [ 376.993800] (1:node@c-0.me)  8234  |  42 
+> [ 376.993800] (1:node@c-0.me)  16426  |  42 
+> [ 376.993800] (1:node@c-0.me)  32810  |  42 
+> [ 376.993800] (1:node@c-0.me)  65578  |  42 
+> [ 376.993800] (1:node@c-0.me)  131114  |  42 
+> [ 376.993800] (1:node@c-0.me)  262186  |  42 
+> [ 376.993800] (1:node@c-0.me)  524330  |  42 
+> [ 376.993800] (1:node@c-0.me)  1048618  |  42 
+> [ 376.993800] (1:node@c-0.me)  2097194  |  42 
+> [ 376.993800] (1:node@c-0.me)  4194346  |  42 
+> [ 376.993800] (1:node@c-0.me)  8388650  |  42 
+> [ 376.993800] (1:node@c-0.me) Predecessor: 16728096
+> [ 376.993800] (4:node@c-3.me) My finger table:
+> [ 376.993800] (4:node@c-3.me) Start | Succ 
+> [ 376.993800] (4:node@c-3.me)  1319739  | 6518808 
+> [ 376.993800] (4:node@c-3.me)  1319740  | 6518808 
+> [ 376.993800] (4:node@c-3.me)  1319742  | 6518808 
+> [ 376.993800] (4:node@c-3.me)  1319746  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1319754  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1319770  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1319802  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1319866  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1319994  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1320250  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1320762  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1321786  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1323834  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1327930  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1336122  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1352506  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1385274  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1450810  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1581882  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  1844026  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  2368314  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  3416890  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  5514042  | 1319738 
+> [ 376.993800] (4:node@c-3.me)  9708346  | 1319738 
+> [ 376.993800] (4:node@c-3.me) Predecessor: 533744
+> [ 378.993800] (10:node@c-9.me) My finger table:
+> [ 378.993800] (10:node@c-9.me) Start | Succ 
+> [ 378.993800] (10:node@c-9.me)  2015254  | 10004760 
+> [ 378.993800] (10:node@c-9.me)  2015255  | 16728096 
+> [ 378.993800] (10:node@c-9.me)  2015257  | 10004760 
+> [ 378.993800] (10:node@c-9.me)  2015261  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015269  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015285  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015317  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015381  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015509  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2015765  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2016277  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2017301  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2019349  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2023445  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2031637  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2048021  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2080789  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2146325  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2277397  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  2539541  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  3063829  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  4112405  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  6209557  | 2015253 
+> [ 378.993800] (10:node@c-9.me)  10403861  | 2015253 
+> [ 378.993800] (10:node@c-9.me) Predecessor: -1
+> [ 378.993800] (5:node@c-4.me) My finger table:
+> [ 378.993800] (5:node@c-4.me) Start | Succ 
+> [ 378.993800] (5:node@c-4.me)  16509406  | 16728096 
+> [ 378.993800] (5:node@c-4.me)  16509407  |  42 
+> [ 378.993800] (5:node@c-4.me)  16509409  | 16728096 
+> [ 378.993800] (5:node@c-4.me)  16509413  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509421  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509437  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509469  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509533  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509661  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16509917  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16510429  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16511453  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16513501  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16517597  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16525789  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16542173  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16574941  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16640477  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  16771549  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  256477  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  780765  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  1829341  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  3926493  | 16509405 
+> [ 378.993800] (5:node@c-4.me)  8120797  | 16509405 
+> [ 378.993800] (5:node@c-4.me) Predecessor: 10004760
+> [ 379.993800] (8:node@c-7.me) My finger table:
+> [ 379.993800] (8:node@c-7.me) Start | Succ 
+> [ 379.993800] (8:node@c-7.me)  10004761  | 16509405 
+> [ 379.993800] (8:node@c-7.me)  10004762  | 16509405 
+> [ 379.993800] (8:node@c-7.me)  10004764  | 16509405 
+> [ 379.993800] (8:node@c-7.me)  10004768  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10004776  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10004792  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10004824  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10004888  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10005016  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10005272  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10005784  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10006808  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10008856  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10012952  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10021144  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10037528  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10070296  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10135832  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10266904  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  10529048  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  11053336  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  12101912  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  14199064  | 10004760 
+> [ 379.993800] (8:node@c-7.me)  1616152  | 10004760 
+> [ 379.993800] (8:node@c-7.me) Predecessor: 6518808
+> [ 385.993700] (3:node@c-2.me) My finger table:
+> [ 385.993700] (3:node@c-2.me) Start | Succ 
+> [ 385.993700] (3:node@c-2.me)  533745  | 1319738 
+> [ 385.993700] (3:node@c-2.me)  533746  | 1319738 
+> [ 385.993700] (3:node@c-2.me)  533748  | 1319738 
+> [ 385.993700] (3:node@c-2.me)  533752  | 533744 
+> [ 385.993700] (3:node@c-2.me)  533760  | 533744 
+> [ 385.993700] (3:node@c-2.me)  533776  | 533744 
+> [ 385.993700] (3:node@c-2.me)  533808  | 533744 
+> [ 385.993700] (3:node@c-2.me)  533872  | 533744 
+> [ 385.993700] (3:node@c-2.me)  534000  | 533744 
+> [ 385.993700] (3:node@c-2.me)  534256  | 533744 
+> [ 385.993700] (3:node@c-2.me)  534768  | 533744 
+> [ 385.993700] (3:node@c-2.me)  535792  | 533744 
+> [ 385.993700] (3:node@c-2.me)  537840  | 533744 
+> [ 385.993700] (3:node@c-2.me)  541936  | 533744 
+> [ 385.993700] (3:node@c-2.me)  550128  | 533744 
+> [ 385.993700] (3:node@c-2.me)  566512  | 533744 
+> [ 385.993700] (3:node@c-2.me)  599280  | 533744 
+> [ 385.993700] (3:node@c-2.me)  664816  | 533744 
+> [ 385.993700] (3:node@c-2.me)  795888  | 533744 
+> [ 385.993700] (3:node@c-2.me)  1058032  | 533744 
+> [ 385.993700] (3:node@c-2.me)  1582320  | 533744 
+> [ 385.993700] (3:node@c-2.me)  2630896  | 533744 
+> [ 385.993700] (3:node@c-2.me)  4728048  | 533744 
+> [ 385.993700] (3:node@c-2.me)  8922352  | 533744 
+> [ 385.993700] (3:node@c-2.me) Predecessor: 366680
+> [ 387.993700] (7:node@c-6.me) My finger table:
+> [ 387.993700] (7:node@c-6.me) Start | Succ 
+> [ 387.993700] (7:node@c-6.me)  16728097  |  42 
+> [ 387.993700] (7:node@c-6.me)  16728098  |  42 
+> [ 387.993700] (7:node@c-6.me)  16728100  |  42 
+> [ 387.993700] (7:node@c-6.me)  16728104  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728112  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728128  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728160  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728224  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728352  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16728608  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16729120  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16730144  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16732192  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16736288  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16744480  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16760864  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  16416  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  81952  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  213024  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  475168  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  999456  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  2048032  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  4145184  | 16728096 
+> [ 387.993700] (7:node@c-6.me)  8339488  | 16728096 
+> [ 387.993700] (7:node@c-6.me) Predecessor: 16509405
+> [ 389.993600] (9:node@c-8.me) My finger table:
+> [ 389.993600] (9:node@c-8.me) Start | Succ 
+> [ 389.993600] (9:node@c-8.me)  6518809  | 10004760 
+> [ 389.993600] (9:node@c-8.me)  6518810  | 10004760 
+> [ 389.993600] (9:node@c-8.me)  6518812  | 10004760 
+> [ 389.993600] (9:node@c-8.me)  6518816  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6518824  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6518840  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6518872  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6518936  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6519064  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6519320  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6519832  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6520856  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6522904  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6527000  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6535192  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6551576  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6584344  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6649880  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  6780952  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  7043096  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  7567384  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  8615960  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  10713112  | 6518808 
+> [ 389.993600] (9:node@c-8.me)  14907416  | 6518808 
+> [ 389.993600] (9:node@c-8.me) Predecessor: 1319738
+> [ 435.993000] (9:node@c-8.me) My finger table:
+> [ 435.993000] (9:node@c-8.me) Start | Succ 
+> [ 435.993000] (9:node@c-8.me)  6518809  | 10004760 
+> [ 435.993000] (9:node@c-8.me)  6518810  | 10004760 
+> [ 435.993000] (9:node@c-8.me)  6518812  | 10004760 
+> [ 435.993000] (9:node@c-8.me)  6518816  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6518824  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6518840  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6518872  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6518936  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6519064  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6519320  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6519832  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6520856  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6522904  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6527000  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6535192  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6551576  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6584344  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6649880  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  6780952  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  7043096  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  7567384  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  8615960  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  10713112  | 6518808 
+> [ 435.993000] (9:node@c-8.me)  14907416  | 6518808 
+> [ 435.993000] (9:node@c-8.me) Predecessor: 2015253
+> [ 492.992000] (6:node@c-5.me) My finger table:
+> [ 492.992000] (6:node@c-5.me) Start | Succ 
+> [ 492.992000] (6:node@c-5.me)  10874877  | 16509405 
+> [ 492.992000] (6:node@c-5.me)  10874878  | 533744 
+> [ 492.992000] (6:node@c-5.me)  10874880  | 533744 
+> [ 492.992000] (6:node@c-5.me)  10874884  | 16509405 
+> [ 492.992000] (6:node@c-5.me)  10874892  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10874908  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10874940  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10875004  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10875132  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10875388  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10875900  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10876924  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10878972  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10883068  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10891260  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10907644  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  10940412  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  11005948  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  11137020  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  11399164  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  11923452  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  12972028  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  15069180  | 10874876 
+> [ 492.992000] (6:node@c-5.me)  2486268  | 10874876 
+> [ 492.992000] (6:node@c-5.me) Predecessor: -1
+> [ 500.991800] (1:node@c-0.me) My finger table:
+> [ 500.991800] (1:node@c-0.me) Start | Succ 
+> [ 500.991800] (1:node@c-0.me)   43  | 366680 
+> [ 500.991800] (1:node@c-0.me)   44  | 366680 
+> [ 500.991800] (1:node@c-0.me)   46  | 366680 
+> [ 500.991800] (1:node@c-0.me)   50  | 366680 
+> [ 500.991800] (1:node@c-0.me)   58  |  42 
+> [ 500.991800] (1:node@c-0.me)   74  |  42 
+> [ 500.991800] (1:node@c-0.me)  106  |  42 
+> [ 500.991800] (1:node@c-0.me)  170  |  42 
+> [ 500.991800] (1:node@c-0.me)  298  |  42 
+> [ 500.991800] (1:node@c-0.me)  554  |  42 
+> [ 500.991800] (1:node@c-0.me)  1066  |  42 
+> [ 500.991800] (1:node@c-0.me)  2090  |  42 
+> [ 500.991800] (1:node@c-0.me)  4138  |  42 
+> [ 500.991800] (1:node@c-0.me)  8234  |  42 
+> [ 500.991800] (1:node@c-0.me)  16426  |  42 
+> [ 500.991800] (1:node@c-0.me)  32810  |  42 
+> [ 500.991800] (1:node@c-0.me)  65578  |  42 
+> [ 500.991800] (1:node@c-0.me)  131114  |  42 
+> [ 500.991800] (1:node@c-0.me)  262186  |  42 
+> [ 500.991800] (1:node@c-0.me)  524330  |  42 
+> [ 500.991800] (1:node@c-0.me)  1048618  |  42 
+> [ 500.991800] (1:node@c-0.me)  2097194  |  42 
+> [ 500.991800] (1:node@c-0.me)  4194346  |  42 
+> [ 500.991800] (1:node@c-0.me)  8388650  |  42 
+> [ 500.991800] (1:node@c-0.me) Predecessor: 16728096
+> [ 504.991900] (5:node@c-4.me) My finger table:
+> [ 504.991900] (5:node@c-4.me) Start | Succ 
+> [ 504.991900] (5:node@c-4.me)  16509406  | 16728096 
+> [ 504.991900] (5:node@c-4.me)  16509407  |  42 
+> [ 504.991900] (5:node@c-4.me)  16509409  | 16728096 
+> [ 504.991900] (5:node@c-4.me)  16509413  | 16728096 
+> [ 504.991900] (5:node@c-4.me)  16509421  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16509437  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16509469  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16509533  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16509661  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16509917  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16510429  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16511453  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16513501  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16517597  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16525789  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16542173  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16574941  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16640477  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  16771549  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  256477  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  780765  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  1829341  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  3926493  | 16509405 
+> [ 504.991900] (5:node@c-4.me)  8120797  | 16509405 
+> [ 504.991900] (5:node@c-4.me) Predecessor: 10004760
+> [ 508.991700] (4:node@c-3.me) My finger table:
+> [ 508.991700] (4:node@c-3.me) Start | Succ 
+> [ 508.991700] (4:node@c-3.me)  1319739  | 2015253 
+> [ 508.991700] (4:node@c-3.me)  1319740  | 6518808 
+> [ 508.991700] (4:node@c-3.me)  1319742  | 6518808 
+> [ 508.991700] (4:node@c-3.me)  1319746  | 2015253 
+> [ 508.991700] (4:node@c-3.me)  1319754  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1319770  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1319802  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1319866  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1319994  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1320250  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1320762  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1321786  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1323834  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1327930  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1336122  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1352506  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1385274  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1450810  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1581882  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  1844026  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  2368314  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  3416890  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  5514042  | 1319738 
+> [ 508.991700] (4:node@c-3.me)  9708346  | 1319738 
+> [ 508.991700] (4:node@c-3.me) Predecessor: 533744
+> [ 509.991700] (10:node@c-9.me) My finger table:
+> [ 509.991700] (10:node@c-9.me) Start | Succ 
+> [ 509.991700] (10:node@c-9.me)  2015254  | 6518808 
+> [ 509.991700] (10:node@c-9.me)  2015255  | 16728096 
+> [ 509.991700] (10:node@c-9.me)  2015257  | 10004760 
+> [ 509.991700] (10:node@c-9.me)  2015261  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015269  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015285  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015317  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015381  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015509  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2015765  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2016277  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2017301  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2019349  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2023445  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2031637  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2048021  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2080789  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2146325  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2277397  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  2539541  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  3063829  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  4112405  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  6209557  | 2015253 
+> [ 509.991700] (10:node@c-9.me)  10403861  | 2015253 
+> [ 509.991700] (10:node@c-9.me) Predecessor: 1319738
+> [ 513.991600] (2:node@c-1.me) My finger table:
+> [ 513.991600] (2:node@c-1.me) Start | Succ 
+> [ 513.991600] (2:node@c-1.me)  366681  | 533744 
+> [ 513.991600] (2:node@c-1.me)  366682  | 1319738 
+> [ 513.991600] (2:node@c-1.me)  366684  | 533744 
+> [ 513.991600] (2:node@c-1.me)  366688  | 533744 
+> [ 513.991600] (2:node@c-1.me)  366696  | 366680 
+> [ 513.991600] (2:node@c-1.me)  366712  | 366680 
+> [ 513.991600] (2:node@c-1.me)  366744  | 366680 
+> [ 513.991600] (2:node@c-1.me)  366808  | 366680 
+> [ 513.991600] (2:node@c-1.me)  366936  | 366680 
+> [ 513.991600] (2:node@c-1.me)  367192  | 366680 
+> [ 513.991600] (2:node@c-1.me)  367704  | 366680 
+> [ 513.991600] (2:node@c-1.me)  368728  | 366680 
+> [ 513.991600] (2:node@c-1.me)  370776  | 366680 
+> [ 513.991600] (2:node@c-1.me)  374872  | 366680 
+> [ 513.991600] (2:node@c-1.me)  383064  | 366680 
+> [ 513.991600] (2:node@c-1.me)  399448  | 366680 
+> [ 513.991600] (2:node@c-1.me)  432216  | 366680 
+> [ 513.991600] (2:node@c-1.me)  497752  | 366680 
+> [ 513.991600] (2:node@c-1.me)  628824  | 366680 
+> [ 513.991600] (2:node@c-1.me)  890968  | 366680 
+> [ 513.991600] (2:node@c-1.me)  1415256  | 366680 
+> [ 513.991600] (2:node@c-1.me)  2463832  | 366680 
+> [ 513.991600] (2:node@c-1.me)  4560984  | 366680 
+> [ 513.991600] (2:node@c-1.me)  8755288  | 366680 
+> [ 513.991600] (2:node@c-1.me) Predecessor: 42
+> [ 516.991600] (10:node@c-9.me) My finger table:
+> [ 516.991600] (10:node@c-9.me) Start | Succ 
+> [ 516.991600] (10:node@c-9.me)  2015254  | 6518808 
+> [ 516.991600] (10:node@c-9.me)  2015255  | 16728096 
+> [ 516.991600] (10:node@c-9.me)  2015257  | 10004760 
+> [ 516.991600] (10:node@c-9.me)  2015261  | 6518808 
+> [ 516.991600] (10:node@c-9.me)  2015269  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2015285  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2015317  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2015381  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2015509  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2015765  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2016277  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2017301  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2019349  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2023445  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2031637  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2048021  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2080789  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2146325  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2277397  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  2539541  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  3063829  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  4112405  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  6209557  | 2015253 
+> [ 516.991600] (10:node@c-9.me)  10403861  | 2015253 
+> [ 516.991600] (10:node@c-9.me) Predecessor: 1319738
+> [ 516.991600] (3:node@c-2.me) My finger table:
+> [ 516.991600] (3:node@c-2.me) Start | Succ 
+> [ 516.991600] (3:node@c-2.me)  533745  | 1319738 
+> [ 516.991600] (3:node@c-2.me)  533746  | 1319738 
+> [ 516.991600] (3:node@c-2.me)  533748  | 1319738 
+> [ 516.991600] (3:node@c-2.me)  533752  | 1319738 
+> [ 516.991600] (3:node@c-2.me)  533760  | 533744 
+> [ 516.991600] (3:node@c-2.me)  533776  | 533744 
+> [ 516.991600] (3:node@c-2.me)  533808  | 533744 
+> [ 516.991600] (3:node@c-2.me)  533872  | 533744 
+> [ 516.991600] (3:node@c-2.me)  534000  | 533744 
+> [ 516.991600] (3:node@c-2.me)  534256  | 533744 
+> [ 516.991600] (3:node@c-2.me)  534768  | 533744 
+> [ 516.991600] (3:node@c-2.me)  535792  | 533744 
+> [ 516.991600] (3:node@c-2.me)  537840  | 533744 
+> [ 516.991600] (3:node@c-2.me)  541936  | 533744 
+> [ 516.991600] (3:node@c-2.me)  550128  | 533744 
+> [ 516.991600] (3:node@c-2.me)  566512  | 533744 
+> [ 516.991600] (3:node@c-2.me)  599280  | 533744 
+> [ 516.991600] (3:node@c-2.me)  664816  | 533744 
+> [ 516.991600] (3:node@c-2.me)  795888  | 533744 
+> [ 516.991600] (3:node@c-2.me)  1058032  | 533744 
+> [ 516.991600] (3:node@c-2.me)  1582320  | 533744 
+> [ 516.991600] (3:node@c-2.me)  2630896  | 533744 
+> [ 516.991600] (3:node@c-2.me)  4728048  | 533744 
+> [ 516.991600] (3:node@c-2.me)  8922352  | 533744 
+> [ 516.991600] (3:node@c-2.me) Predecessor: 366680
+> [ 519.991600] (7:node@c-6.me) My finger table:
+> [ 519.991600] (7:node@c-6.me) Start | Succ 
+> [ 519.991600] (7:node@c-6.me)  16728097  |  42 
+> [ 519.991600] (7:node@c-6.me)  16728098  |  42 
+> [ 519.991600] (7:node@c-6.me)  16728100  |  42 
+> [ 519.991600] (7:node@c-6.me)  16728104  |  42 
+> [ 519.991600] (7:node@c-6.me)  16728112  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16728128  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16728160  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16728224  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16728352  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16728608  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16729120  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16730144  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16732192  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16736288  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16744480  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16760864  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  16416  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  81952  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  213024  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  475168  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  999456  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  2048032  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  4145184  | 16728096 
+> [ 519.991600] (7:node@c-6.me)  8339488  | 16728096 
+> [ 519.991600] (7:node@c-6.me) Predecessor: 16509405
+> [ 524.991500] (8:node@c-7.me) My finger table:
+> [ 524.991500] (8:node@c-7.me) Start | Succ 
+> [ 524.991500] (8:node@c-7.me)  10004761  | 16509405 
+> [ 524.991500] (8:node@c-7.me)  10004762  | 16509405 
+> [ 524.991500] (8:node@c-7.me)  10004764  | 16509405 
+> [ 524.991500] (8:node@c-7.me)  10004768  | 16509405 
+> [ 524.991500] (8:node@c-7.me)  10004776  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10004792  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10004824  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10004888  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10005016  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10005272  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10005784  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10006808  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10008856  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10012952  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10021144  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10037528  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10070296  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10135832  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10266904  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  10529048  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  11053336  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  12101912  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  14199064  | 10004760 
+> [ 524.991500] (8:node@c-7.me)  1616152  | 10004760 
+> [ 524.991500] (8:node@c-7.me) Predecessor: 6518808
+> [ 529.991500] (5:node@c-4.me) My finger table:
+> [ 529.991500] (5:node@c-4.me) Start | Succ 
+> [ 529.991500] (5:node@c-4.me)  16509406  | 16728096 
+> [ 529.991500] (5:node@c-4.me)  16509407  |  42 
+> [ 529.991500] (5:node@c-4.me)  16509409  | 16728096 
+> [ 529.991500] (5:node@c-4.me)  16509413  | 16728096 
+> [ 529.991500] (5:node@c-4.me)  16509421  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16509437  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16509469  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16509533  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16509661  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16509917  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16510429  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16511453  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16513501  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16517597  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16525789  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16542173  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16574941  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16640477  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  16771549  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  256477  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  780765  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  1829341  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  3926493  | 16509405 
+> [ 529.991500] (5:node@c-4.me)  8120797  | 16509405 
+> [ 529.991500] (5:node@c-4.me) Predecessor: 10874876
+> [ 540.991400] (9:node@c-8.me) My finger table:
+> [ 540.991400] (9:node@c-8.me) Start | Succ 
+> [ 540.991400] (9:node@c-8.me)  6518809  | 10004760 
+> [ 540.991400] (9:node@c-8.me)  6518810  | 10004760 
+> [ 540.991400] (9:node@c-8.me)  6518812  | 10004760 
+> [ 540.991400] (9:node@c-8.me)  6518816  | 10004760 
+> [ 540.991400] (9:node@c-8.me)  6518824  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6518840  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6518872  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6518936  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6519064  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6519320  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6519832  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6520856  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6522904  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6527000  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6535192  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6551576  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6584344  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6649880  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  6780952  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  7043096  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  7567384  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  8615960  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  10713112  | 6518808 
+> [ 540.991400] (9:node@c-8.me)  14907416  | 6518808 
+> [ 540.991400] (9:node@c-8.me) Predecessor: 2015253
+> [ 613.990100] (6:node@c-5.me) My finger table:
+> [ 613.990100] (6:node@c-5.me) Start | Succ 
+> [ 613.990100] (6:node@c-5.me)  10874877  | 16509405 
+> [ 613.990100] (6:node@c-5.me)  10874878  | 533744 
+> [ 613.990100] (6:node@c-5.me)  10874880  | 533744 
+> [ 613.990100] (6:node@c-5.me)  10874884  | 16509405 
+> [ 613.990100] (6:node@c-5.me)  10874892  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10874908  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10874940  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10875004  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10875132  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10875388  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10875900  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10876924  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10878972  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10883068  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10891260  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10907644  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  10940412  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  11005948  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  11137020  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  11399164  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  11923452  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  12972028  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  15069180  | 10874876 
+> [ 613.990100] (6:node@c-5.me)  2486268  | 10874876 
+> [ 613.990100] (6:node@c-5.me) Predecessor: 10004760
+> [ 629.989800] (1:node@c-0.me) My finger table:
+> [ 629.989800] (1:node@c-0.me) Start | Succ 
+> [ 629.989800] (1:node@c-0.me)   43  | 366680 
+> [ 629.989800] (1:node@c-0.me)   44  | 366680 
+> [ 629.989800] (1:node@c-0.me)   46  | 366680 
+> [ 629.989800] (1:node@c-0.me)   50  | 366680 
+> [ 629.989800] (1:node@c-0.me)   58  | 366680 
+> [ 629.989800] (1:node@c-0.me)   74  |  42 
+> [ 629.989800] (1:node@c-0.me)  106  |  42 
+> [ 629.989800] (1:node@c-0.me)  170  |  42 
+> [ 629.989800] (1:node@c-0.me)  298  |  42 
+> [ 629.989800] (1:node@c-0.me)  554  |  42 
+> [ 629.989800] (1:node@c-0.me)  1066  |  42 
+> [ 629.989800] (1:node@c-0.me)  2090  |  42 
+> [ 629.989800] (1:node@c-0.me)  4138  |  42 
+> [ 629.989800] (1:node@c-0.me)  8234  |  42 
+> [ 629.989800] (1:node@c-0.me)  16426  |  42 
+> [ 629.989800] (1:node@c-0.me)  32810  |  42 
+> [ 629.989800] (1:node@c-0.me)  65578  |  42 
+> [ 629.989800] (1:node@c-0.me)  131114  |  42 
+> [ 629.989800] (1:node@c-0.me)  262186  |  42 
+> [ 629.989800] (1:node@c-0.me)  524330  |  42 
+> [ 629.989800] (1:node@c-0.me)  1048618  |  42 
+> [ 629.989800] (1:node@c-0.me)  2097194  |  42 
+> [ 629.989800] (1:node@c-0.me)  4194346  |  42 
+> [ 629.989800] (1:node@c-0.me)  8388650  |  42 
+> [ 629.989800] (1:node@c-0.me) Predecessor: 16728096
+> [ 629.989800] (6:node@c-5.me) My finger table:
+> [ 629.989800] (6:node@c-5.me) Start | Succ 
+> [ 629.989800] (6:node@c-5.me)  10874877  | 16509405 
+> [ 629.989800] (6:node@c-5.me)  10874878  | 533744 
+> [ 629.989800] (6:node@c-5.me)  10874880  | 533744 
+> [ 629.989800] (6:node@c-5.me)  10874884  | 16509405 
+> [ 629.989800] (6:node@c-5.me)  10874892  | 16509405 
+> [ 629.989800] (6:node@c-5.me)  10874908  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10874940  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10875004  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10875132  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10875388  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10875900  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10876924  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10878972  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10883068  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10891260  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10907644  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  10940412  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  11005948  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  11137020  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  11399164  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  11923452  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  12972028  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  15069180  | 10874876 
+> [ 629.989800] (6:node@c-5.me)  2486268  | 10874876 
+> [ 629.989800] (6:node@c-5.me) Predecessor: 10004760
+> [ 632.989700] (4:node@c-3.me) My finger table:
+> [ 632.989700] (4:node@c-3.me) Start | Succ 
+> [ 632.989700] (4:node@c-3.me)  1319739  | 2015253 
+> [ 632.989700] (4:node@c-3.me)  1319740  | 6518808 
+> [ 632.989700] (4:node@c-3.me)  1319742  | 6518808 
+> [ 632.989700] (4:node@c-3.me)  1319746  | 2015253 
+> [ 632.989700] (4:node@c-3.me)  1319754  | 2015253 
+> [ 632.989700] (4:node@c-3.me)  1319770  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1319802  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1319866  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1319994  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1320250  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1320762  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1321786  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1323834  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1327930  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1336122  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1352506  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1385274  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1450810  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1581882  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  1844026  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  2368314  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  3416890  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  5514042  | 1319738 
+> [ 632.989700] (4:node@c-3.me)  9708346  | 1319738 
+> [ 632.989700] (4:node@c-3.me) Predecessor: 533744
+> [ 637.989600] (2:node@c-1.me) My finger table:
+> [ 637.989600] (2:node@c-1.me) Start | Succ 
+> [ 637.989600] (2:node@c-1.me)  366681  | 533744 
+> [ 637.989600] (2:node@c-1.me)  366682  | 1319738 
+> [ 637.989600] (2:node@c-1.me)  366684  | 533744 
+> [ 637.989600] (2:node@c-1.me)  366688  | 533744 
+> [ 637.989600] (2:node@c-1.me)  366696  | 533744 
+> [ 637.989600] (2:node@c-1.me)  366712  | 366680 
+> [ 637.989600] (2:node@c-1.me)  366744  | 366680 
+> [ 637.989600] (2:node@c-1.me)  366808  | 366680 
+> [ 637.989600] (2:node@c-1.me)  366936  | 366680 
+> [ 637.989600] (2:node@c-1.me)  367192  | 366680 
+> [ 637.989600] (2:node@c-1.me)  367704  | 366680 
+> [ 637.989600] (2:node@c-1.me)  368728  | 366680 
+> [ 637.989600] (2:node@c-1.me)  370776  | 366680 
+> [ 637.989600] (2:node@c-1.me)  374872  | 366680 
+> [ 637.989600] (2:node@c-1.me)  383064  | 366680 
+> [ 637.989600] (2:node@c-1.me)  399448  | 366680 
+> [ 637.989600] (2:node@c-1.me)  432216  | 366680 
+> [ 637.989600] (2:node@c-1.me)  497752  | 366680 
+> [ 637.989600] (2:node@c-1.me)  628824  | 366680 
+> [ 637.989600] (2:node@c-1.me)  890968  | 366680 
+> [ 637.989600] (2:node@c-1.me)  1415256  | 366680 
+> [ 637.989600] (2:node@c-1.me)  2463832  | 366680 
+> [ 637.989600] (2:node@c-1.me)  4560984  | 366680 
+> [ 637.989600] (2:node@c-1.me)  8755288  | 366680 
+> [ 637.989600] (2:node@c-1.me) Predecessor: 42
+> [ 638.989600] (3:node@c-2.me) My finger table:
+> [ 638.989600] (3:node@c-2.me) Start | Succ 
+> [ 638.989600] (3:node@c-2.me)  533745  | 1319738 
+> [ 638.989600] (3:node@c-2.me)  533746  | 1319738 
+> [ 638.989600] (3:node@c-2.me)  533748  | 1319738 
+> [ 638.989600] (3:node@c-2.me)  533752  | 1319738 
+> [ 638.989600] (3:node@c-2.me)  533760  | 1319738 
+> [ 638.989600] (3:node@c-2.me)  533776  | 533744 
+> [ 638.989600] (3:node@c-2.me)  533808  | 533744 
+> [ 638.989600] (3:node@c-2.me)  533872  | 533744 
+> [ 638.989600] (3:node@c-2.me)  534000  | 533744 
+> [ 638.989600] (3:node@c-2.me)  534256  | 533744 
+> [ 638.989600] (3:node@c-2.me)  534768  | 533744 
+> [ 638.989600] (3:node@c-2.me)  535792  | 533744 
+> [ 638.989600] (3:node@c-2.me)  537840  | 533744 
+> [ 638.989600] (3:node@c-2.me)  541936  | 533744 
+> [ 638.989600] (3:node@c-2.me)  550128  | 533744 
+> [ 638.989600] (3:node@c-2.me)  566512  | 533744 
+> [ 638.989600] (3:node@c-2.me)  599280  | 533744 
+> [ 638.989600] (3:node@c-2.me)  664816  | 533744 
+> [ 638.989600] (3:node@c-2.me)  795888  | 533744 
+> [ 638.989600] (3:node@c-2.me)  1058032  | 533744 
+> [ 638.989600] (3:node@c-2.me)  1582320  | 533744 
+> [ 638.989600] (3:node@c-2.me)  2630896  | 533744 
+> [ 638.989600] (3:node@c-2.me)  4728048  | 533744 
+> [ 638.989600] (3:node@c-2.me)  8922352  | 533744 
+> [ 638.989600] (3:node@c-2.me) Predecessor: 366680
+> [ 641.989600] (10:node@c-9.me) My finger table:
+> [ 641.989600] (10:node@c-9.me) Start | Succ 
+> [ 641.989600] (10:node@c-9.me)  2015254  | 6518808 
+> [ 641.989600] (10:node@c-9.me)  2015255  | 16728096 
+> [ 641.989600] (10:node@c-9.me)  2015257  | 10004760 
+> [ 641.989600] (10:node@c-9.me)  2015261  | 6518808 
+> [ 641.989600] (10:node@c-9.me)  2015269  | 6518808 
+> [ 641.989600] (10:node@c-9.me)  2015285  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2015317  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2015381  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2015509  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2015765  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2016277  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2017301  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2019349  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2023445  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2031637  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2048021  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2080789  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2146325  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2277397  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  2539541  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  3063829  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  4112405  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  6209557  | 2015253 
+> [ 641.989600] (10:node@c-9.me)  10403861  | 2015253 
+> [ 641.989600] (10:node@c-9.me) Predecessor: 1319738
+> [ 645.989500] (7:node@c-6.me) My finger table:
+> [ 645.989500] (7:node@c-6.me) Start | Succ 
+> [ 645.989500] (7:node@c-6.me)  16728097  |  42 
+> [ 645.989500] (7:node@c-6.me)  16728098  |  42 
+> [ 645.989500] (7:node@c-6.me)  16728100  |  42 
+> [ 645.989500] (7:node@c-6.me)  16728104  |  42 
+> [ 645.989500] (7:node@c-6.me)  16728112  |  42 
+> [ 645.989500] (7:node@c-6.me)  16728128  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16728160  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16728224  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16728352  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16728608  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16729120  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16730144  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16732192  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16736288  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16744480  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16760864  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  16416  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  81952  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  213024  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  475168  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  999456  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  2048032  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  4145184  | 16728096 
+> [ 645.989500] (7:node@c-6.me)  8339488  | 16728096 
+> [ 645.989500] (7:node@c-6.me) Predecessor: 16509405
+> [ 645.989600] (5:node@c-4.me) My finger table:
+> [ 645.989600] (5:node@c-4.me) Start | Succ 
+> [ 645.989600] (5:node@c-4.me)  16509406  | 16728096 
+> [ 645.989600] (5:node@c-4.me)  16509407  |  42 
+> [ 645.989600] (5:node@c-4.me)  16509409  | 16728096 
+> [ 645.989600] (5:node@c-4.me)  16509413  | 16728096 
+> [ 645.989600] (5:node@c-4.me)  16509421  | 16728096 
+> [ 645.989600] (5:node@c-4.me)  16509437  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16509469  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16509533  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16509661  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16509917  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16510429  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16511453  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16513501  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16517597  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16525789  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16542173  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16574941  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16640477  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  16771549  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  256477  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  780765  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  1829341  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  3926493  | 16509405 
+> [ 645.989600] (5:node@c-4.me)  8120797  | 16509405 
+> [ 645.989600] (5:node@c-4.me) Predecessor: 10874876
+> [ 655.989400] (8:node@c-7.me) My finger table:
+> [ 655.989400] (8:node@c-7.me) Start | Succ 
+> [ 655.989400] (8:node@c-7.me)  10004761  | 10874876 
+> [ 655.989400] (8:node@c-7.me)  10004762  | 16509405 
+> [ 655.989400] (8:node@c-7.me)  10004764  | 16509405 
+> [ 655.989400] (8:node@c-7.me)  10004768  | 16509405 
+> [ 655.989400] (8:node@c-7.me)  10004776  | 10874876 
+> [ 655.989400] (8:node@c-7.me)  10004792  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10004824  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10004888  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10005016  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10005272  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10005784  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10006808  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10008856  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10012952  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10021144  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10037528  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10070296  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10135832  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10266904  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  10529048  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  11053336  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  12101912  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  14199064  | 10004760 
+> [ 655.989400] (8:node@c-7.me)  1616152  | 10004760 
+> [ 655.989400] (8:node@c-7.me) Predecessor: 6518808
+> [ 662.989300] (9:node@c-8.me) My finger table:
+> [ 662.989300] (9:node@c-8.me) Start | Succ 
+> [ 662.989300] (9:node@c-8.me)  6518809  | 10004760 
+> [ 662.989300] (9:node@c-8.me)  6518810  | 10004760 
+> [ 662.989300] (9:node@c-8.me)  6518812  | 10004760 
+> [ 662.989300] (9:node@c-8.me)  6518816  | 10004760 
+> [ 662.989300] (9:node@c-8.me)  6518824  | 10004760 
+> [ 662.989300] (9:node@c-8.me)  6518840  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6518872  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6518936  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6519064  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6519320  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6519832  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6520856  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6522904  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6527000  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6535192  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6551576  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6584344  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6649880  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  6780952  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  7043096  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  7567384  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  8615960  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  10713112  | 6518808 
+> [ 662.989300] (9:node@c-8.me)  14907416  | 6518808 
+> [ 662.989300] (9:node@c-8.me) Predecessor: 2015253
+> [ 754.987800] (1:node@c-0.me) My finger table:
+> [ 754.987800] (1:node@c-0.me) Start | Succ 
+> [ 754.987800] (1:node@c-0.me)   43  | 366680 
+> [ 754.987800] (1:node@c-0.me)   44  | 366680 
+> [ 754.987800] (1:node@c-0.me)   46  | 366680 
+> [ 754.987800] (1:node@c-0.me)   50  | 366680 
+> [ 754.987800] (1:node@c-0.me)   58  | 366680 
+> [ 754.987800] (1:node@c-0.me)   74  | 366680 
+> [ 754.987800] (1:node@c-0.me)  106  |  42 
+> [ 754.987800] (1:node@c-0.me)  170  |  42 
+> [ 754.987800] (1:node@c-0.me)  298  |  42 
+> [ 754.987800] (1:node@c-0.me)  554  |  42 
+> [ 754.987800] (1:node@c-0.me)  1066  |  42 
+> [ 754.987800] (1:node@c-0.me)  2090  |  42 
+> [ 754.987800] (1:node@c-0.me)  4138  |  42 
+> [ 754.987800] (1:node@c-0.me)  8234  |  42 
+> [ 754.987800] (1:node@c-0.me)  16426  |  42 
+> [ 754.987800] (1:node@c-0.me)  32810  |  42 
+> [ 754.987800] (1:node@c-0.me)  65578  |  42 
+> [ 754.987800] (1:node@c-0.me)  131114  |  42 
+> [ 754.987800] (1:node@c-0.me)  262186  |  42 
+> [ 754.987800] (1:node@c-0.me)  524330  |  42 
+> [ 754.987800] (1:node@c-0.me)  1048618  |  42 
+> [ 754.987800] (1:node@c-0.me)  2097194  |  42 
+> [ 754.987800] (1:node@c-0.me)  4194346  |  42 
+> [ 754.987800] (1:node@c-0.me)  8388650  |  42 
+> [ 754.987800] (1:node@c-0.me) Predecessor: 16728096
+> [ 757.987800] (4:node@c-3.me) My finger table:
+> [ 757.987800] (4:node@c-3.me) Start | Succ 
+> [ 757.987800] (4:node@c-3.me)  1319739  | 2015253 
+> [ 757.987800] (4:node@c-3.me)  1319740  | 6518808 
+> [ 757.987800] (4:node@c-3.me)  1319742  | 6518808 
+> [ 757.987800] (4:node@c-3.me)  1319746  | 2015253 
+> [ 757.987800] (4:node@c-3.me)  1319754  | 2015253 
+> [ 757.987800] (4:node@c-3.me)  1319770  | 2015253 
+> [ 757.987800] (4:node@c-3.me)  1319802  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1319866  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1319994  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1320250  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1320762  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1321786  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1323834  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1327930  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1336122  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1352506  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1385274  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1450810  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1581882  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  1844026  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  2368314  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  3416890  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  5514042  | 1319738 
+> [ 757.987800] (4:node@c-3.me)  9708346  | 1319738 
+> [ 757.987800] (4:node@c-3.me) Predecessor: 533744
+> [ 762.987700] (10:node@c-9.me) My finger table:
+> [ 762.987700] (10:node@c-9.me) Start | Succ 
+> [ 762.987700] (10:node@c-9.me)  2015254  | 6518808 
+> [ 762.987700] (10:node@c-9.me)  2015255  | 16728096 
+> [ 762.987700] (10:node@c-9.me)  2015257  | 10004760 
+> [ 762.987700] (10:node@c-9.me)  2015261  | 6518808 
+> [ 762.987700] (10:node@c-9.me)  2015269  | 6518808 
+> [ 762.987700] (10:node@c-9.me)  2015285  | 6518808 
+> [ 762.987700] (10:node@c-9.me)  2015317  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2015381  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2015509  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2015765  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2016277  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2017301  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2019349  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2023445  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2031637  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2048021  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2080789  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2146325  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2277397  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  2539541  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  3063829  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  4112405  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  6209557  | 2015253 
+> [ 762.987700] (10:node@c-9.me)  10403861  | 2015253 
+> [ 762.987700] (10:node@c-9.me) Predecessor: 1319738
+> [ 762.987700] (6:node@c-5.me) My finger table:
+> [ 762.987700] (6:node@c-5.me) Start | Succ 
+> [ 762.987700] (6:node@c-5.me)  10874877  | 16509405 
+> [ 762.987700] (6:node@c-5.me)  10874878  | 533744 
+> [ 762.987700] (6:node@c-5.me)  10874880  | 533744 
+> [ 762.987700] (6:node@c-5.me)  10874884  | 16509405 
+> [ 762.987700] (6:node@c-5.me)  10874892  | 16509405 
+> [ 762.987700] (6:node@c-5.me)  10874908  | 16509405 
+> [ 762.987700] (6:node@c-5.me)  10874940  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10875004  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10875132  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10875388  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10875900  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10876924  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10878972  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10883068  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10891260  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10907644  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  10940412  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  11005948  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  11137020  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  11399164  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  11923452  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  12972028  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  15069180  | 10874876 
+> [ 762.987700] (6:node@c-5.me)  2486268  | 10874876 
+> [ 762.987700] (6:node@c-5.me) Predecessor: 10004760
+> [ 767.987600] (2:node@c-1.me) My finger table:
+> [ 767.987600] (2:node@c-1.me) Start | Succ 
+> [ 767.987600] (2:node@c-1.me)  366681  | 533744 
+> [ 767.987600] (2:node@c-1.me)  366682  | 1319738 
+> [ 767.987600] (2:node@c-1.me)  366684  | 533744 
+> [ 767.987600] (2:node@c-1.me)  366688  | 533744 
+> [ 767.987600] (2:node@c-1.me)  366696  | 533744 
+> [ 767.987600] (2:node@c-1.me)  366712  | 533744 
+> [ 767.987600] (2:node@c-1.me)  366744  | 366680 
+> [ 767.987600] (2:node@c-1.me)  366808  | 366680 
+> [ 767.987600] (2:node@c-1.me)  366936  | 366680 
+> [ 767.987600] (2:node@c-1.me)  367192  | 366680 
+> [ 767.987600] (2:node@c-1.me)  367704  | 366680 
+> [ 767.987600] (2:node@c-1.me)  368728  | 366680 
+> [ 767.987600] (2:node@c-1.me)  370776  | 366680 
+> [ 767.987600] (2:node@c-1.me)  374872  | 366680 
+> [ 767.987600] (2:node@c-1.me)  383064  | 366680 
+> [ 767.987600] (2:node@c-1.me)  399448  | 366680 
+> [ 767.987600] (2:node@c-1.me)  432216  | 366680 
+> [ 767.987600] (2:node@c-1.me)  497752  | 366680 
+> [ 767.987600] (2:node@c-1.me)  628824  | 366680 
+> [ 767.987600] (2:node@c-1.me)  890968  | 366680 
+> [ 767.987600] (2:node@c-1.me)  1415256  | 366680 
+> [ 767.987600] (2:node@c-1.me)  2463832  | 366680 
+> [ 767.987600] (2:node@c-1.me)  4560984  | 366680 
+> [ 767.987600] (2:node@c-1.me)  8755288  | 366680 
+> [ 767.987600] (2:node@c-1.me) Predecessor: 42
+> [ 771.987500] (5:node@c-4.me) My finger table:
+> [ 771.987500] (5:node@c-4.me) Start | Succ 
+> [ 771.987500] (5:node@c-4.me)  16509406  | 16728096 
+> [ 771.987500] (5:node@c-4.me)  16509407  |  42 
+> [ 771.987500] (5:node@c-4.me)  16509409  | 16728096 
+> [ 771.987500] (5:node@c-4.me)  16509413  | 16728096 
+> [ 771.987500] (5:node@c-4.me)  16509421  | 16728096 
+> [ 771.987500] (5:node@c-4.me)  16509437  | 16728096 
+> [ 771.987500] (5:node@c-4.me)  16509469  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16509533  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16509661  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16509917  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16510429  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16511453  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16513501  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16517597  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16525789  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16542173  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16574941  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16640477  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  16771549  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  256477  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  780765  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  1829341  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  3926493  | 16509405 
+> [ 771.987500] (5:node@c-4.me)  8120797  | 16509405 
+> [ 771.987500] (5:node@c-4.me) Predecessor: 10874876
+> [ 776.987500] (3:node@c-2.me) My finger table:
+> [ 776.987500] (3:node@c-2.me) Start | Succ 
+> [ 776.987500] (3:node@c-2.me)  533745  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533746  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533748  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533752  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533760  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533776  | 1319738 
+> [ 776.987500] (3:node@c-2.me)  533808  | 533744 
+> [ 776.987500] (3:node@c-2.me)  533872  | 533744 
+> [ 776.987500] (3:node@c-2.me)  534000  | 533744 
+> [ 776.987500] (3:node@c-2.me)  534256  | 533744 
+> [ 776.987500] (3:node@c-2.me)  534768  | 533744 
+> [ 776.987500] (3:node@c-2.me)  535792  | 533744 
+> [ 776.987500] (3:node@c-2.me)  537840  | 533744 
+> [ 776.987500] (3:node@c-2.me)  541936  | 533744 
+> [ 776.987500] (3:node@c-2.me)  550128  | 533744 
+> [ 776.987500] (3:node@c-2.me)  566512  | 533744 
+> [ 776.987500] (3:node@c-2.me)  599280  | 533744 
+> [ 776.987500] (3:node@c-2.me)  664816  | 533744 
+> [ 776.987500] (3:node@c-2.me)  795888  | 533744 
+> [ 776.987500] (3:node@c-2.me)  1058032  | 533744 
+> [ 776.987500] (3:node@c-2.me)  1582320  | 533744 
+> [ 776.987500] (3:node@c-2.me)  2630896  | 533744 
+> [ 776.987500] (3:node@c-2.me)  4728048  | 533744 
+> [ 776.987500] (3:node@c-2.me)  8922352  | 533744 
+> [ 776.987500] (3:node@c-2.me) Predecessor: 366680
+> [ 823.987500] (8:node@c-7.me) My finger table:
+> [ 823.987500] (8:node@c-7.me) Start | Succ 
+> [ 823.987500] (8:node@c-7.me)  10004761  | 10874876 
+> [ 823.987500] (8:node@c-7.me)  10004762  | 16509405 
+> [ 823.987500] (8:node@c-7.me)  10004764  | 16509405 
+> [ 823.987500] (8:node@c-7.me)  10004768  | 16509405 
+> [ 823.987500] (8:node@c-7.me)  10004776  | 10874876 
+> [ 823.987500] (8:node@c-7.me)  10004792  | 10874876 
+> [ 823.987500] (8:node@c-7.me)  10004824  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10004888  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10005016  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10005272  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10005784  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10006808  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10008856  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10012952  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10021144  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10037528  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10070296  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10135832  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10266904  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  10529048  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  11053336  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  12101912  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  14199064  | 10004760 
+> [ 823.987500] (8:node@c-7.me)  1616152  | 10004760 
+> [ 823.987500] (8:node@c-7.me) Predecessor: 6518808
+> [ 824.987500] (7:node@c-6.me) My finger table:
+> [ 824.987500] (7:node@c-6.me) Start | Succ 
+> [ 824.987500] (7:node@c-6.me)  16728097  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728098  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728100  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728104  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728112  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728128  |  42 
+> [ 824.987500] (7:node@c-6.me)  16728160  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16728224  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16728352  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16728608  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16729120  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16730144  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16732192  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16736288  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16744480  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16760864  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  16416  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  81952  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  213024  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  475168  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  999456  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  2048032  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  4145184  | 16728096 
+> [ 824.987500] (7:node@c-6.me)  8339488  | 16728096 
+> [ 824.987500] (7:node@c-6.me) Predecessor: 16509405
+> [ 876.987500] (9:node@c-8.me) My finger table:
+> [ 876.987500] (9:node@c-8.me) Start | Succ 
+> [ 876.987500] (9:node@c-8.me)  6518809  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518810  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518812  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518816  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518824  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518840  | 10004760 
+> [ 876.987500] (9:node@c-8.me)  6518872  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6518936  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6519064  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6519320  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6519832  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6520856  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6522904  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6527000  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6535192  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6551576  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6584344  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6649880  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  6780952  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  7043096  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  7567384  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  8615960  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  10713112  | 6518808 
+> [ 876.987500] (9:node@c-8.me)  14907416  | 6518808 
+> [ 876.987500] (9:node@c-8.me) Predecessor: 2015253
+> [ 880.986500] (1:node@c-0.me) My finger table:
+> [ 880.986500] (1:node@c-0.me) Start | Succ 
+> [ 880.986500] (1:node@c-0.me)   43  | 366680 
+> [ 880.986500] (1:node@c-0.me)   44  | 366680 
+> [ 880.986500] (1:node@c-0.me)   46  | 366680 
+> [ 880.986500] (1:node@c-0.me)   50  | 366680 
+> [ 880.986500] (1:node@c-0.me)   58  | 366680 
+> [ 880.986500] (1:node@c-0.me)   74  | 366680 
+> [ 880.986500] (1:node@c-0.me)  106  | 366680 
+> [ 880.986500] (1:node@c-0.me)  170  |  42 
+> [ 880.986500] (1:node@c-0.me)  298  |  42 
+> [ 880.986500] (1:node@c-0.me)  554  |  42 
+> [ 880.986500] (1:node@c-0.me)  1066  |  42 
+> [ 880.986500] (1:node@c-0.me)  2090  |  42 
+> [ 880.986500] (1:node@c-0.me)  4138  |  42 
+> [ 880.986500] (1:node@c-0.me)  8234  |  42 
+> [ 880.986500] (1:node@c-0.me)  16426  |  42 
+> [ 880.986500] (1:node@c-0.me)  32810  |  42 
+> [ 880.986500] (1:node@c-0.me)  65578  |  42 
+> [ 880.986500] (1:node@c-0.me)  131114  |  42 
+> [ 880.986500] (1:node@c-0.me)  262186  |  42 
+> [ 880.986500] (1:node@c-0.me)  524330  |  42 
+> [ 880.986500] (1:node@c-0.me)  1048618  |  42 
+> [ 880.986500] (1:node@c-0.me)  2097194  |  42 
+> [ 880.986500] (1:node@c-0.me)  4194346  |  42 
+> [ 880.986500] (1:node@c-0.me)  8388650  |  42 
+> [ 880.986500] (1:node@c-0.me) Predecessor: 16728096
+> [ 904.987100] (3:node@c-2.me) My finger table:
+> [ 904.987100] (3:node@c-2.me) Start | Succ 
+> [ 904.987100] (3:node@c-2.me)  533745  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533746  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533748  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533752  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533760  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533776  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533808  | 1319738 
+> [ 904.987100] (3:node@c-2.me)  533872  | 533744 
+> [ 904.987100] (3:node@c-2.me)  534000  | 533744 
+> [ 904.987100] (3:node@c-2.me)  534256  | 533744 
+> [ 904.987100] (3:node@c-2.me)  534768  | 533744 
+> [ 904.987100] (3:node@c-2.me)  535792  | 533744 
+> [ 904.987100] (3:node@c-2.me)  537840  | 533744 
+> [ 904.987100] (3:node@c-2.me)  541936  | 533744 
+> [ 904.987100] (3:node@c-2.me)  550128  | 533744 
+> [ 904.987100] (3:node@c-2.me)  566512  | 533744 
+> [ 904.987100] (3:node@c-2.me)  599280  | 533744 
+> [ 904.987100] (3:node@c-2.me)  664816  | 533744 
+> [ 904.987100] (3:node@c-2.me)  795888  | 533744 
+> [ 904.987100] (3:node@c-2.me)  1058032  | 533744 
+> [ 904.987100] (3:node@c-2.me)  1582320  | 533744 
+> [ 904.987100] (3:node@c-2.me)  2630896  | 533744 
+> [ 904.987100] (3:node@c-2.me)  4728048  | 533744 
+> [ 904.987100] (3:node@c-2.me)  8922352  | 533744 
+> [ 904.987100] (3:node@c-2.me) Predecessor: 366680
+> [ 924.987500] (5:node@c-4.me) My finger table:
+> [ 924.987500] (5:node@c-4.me) Start | Succ 
+> [ 924.987500] (5:node@c-4.me)  16509406  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509407  |  42 
+> [ 924.987500] (5:node@c-4.me)  16509409  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509413  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509421  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509437  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509469  | 16728096 
+> [ 924.987500] (5:node@c-4.me)  16509533  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16509661  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16509917  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16510429  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16511453  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16513501  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16517597  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16525789  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16542173  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16574941  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16640477  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  16771549  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  256477  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  780765  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  1829341  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  3926493  | 16509405 
+> [ 924.987500] (5:node@c-4.me)  8120797  | 16509405 
+> [ 924.987500] (5:node@c-4.me) Predecessor: 10874876
+> [ 936.987400] (6:node@c-5.me) My finger table:
+> [ 936.987400] (6:node@c-5.me) Start | Succ 
+> [ 936.987400] (6:node@c-5.me)  10874877  | 16509405 
+> [ 936.987400] (6:node@c-5.me)  10874878  | 533744 
+> [ 936.987400] (6:node@c-5.me)  10874880  | 533744 
+> [ 936.987400] (6:node@c-5.me)  10874884  | 16509405 
+> [ 936.987400] (6:node@c-5.me)  10874892  | 16509405 
+> [ 936.987400] (6:node@c-5.me)  10874908  | 16509405 
+> [ 936.987400] (6:node@c-5.me)  10874940  | 16509405 
+> [ 936.987400] (6:node@c-5.me)  10875004  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10875132  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10875388  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10875900  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10876924  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10878972  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10883068  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10891260  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10907644  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  10940412  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  11005948  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  11137020  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  11399164  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  11923452  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  12972028  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  15069180  | 10874876 
+> [ 936.987400] (6:node@c-5.me)  2486268  | 10874876 
+> [ 936.987400] (6:node@c-5.me) Predecessor: 10004760
+> [ 945.985300] (7:node@c-6.me) My finger table:
+> [ 945.985300] (7:node@c-6.me) Start | Succ 
+> [ 945.985300] (7:node@c-6.me)  16728097  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728098  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728100  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728104  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728112  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728128  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728160  |  42 
+> [ 945.985300] (7:node@c-6.me)  16728224  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16728352  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16728608  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16729120  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16730144  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16732192  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16736288  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16744480  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16760864  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  16416  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  81952  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  213024  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  475168  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  999456  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  2048032  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  4145184  | 16728096 
+> [ 945.985300] (7:node@c-6.me)  8339488  | 16728096 
+> [ 945.985300] (7:node@c-6.me) Predecessor: 16509405
+> [ 952.985200] (2:node@c-1.me) My finger table:
+> [ 952.985200] (2:node@c-1.me) Start | Succ 
+> [ 952.985200] (2:node@c-1.me)  366681  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366682  | 1319738 
+> [ 952.985200] (2:node@c-1.me)  366684  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366688  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366696  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366712  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366744  | 533744 
+> [ 952.985200] (2:node@c-1.me)  366808  | 366680 
+> [ 952.985200] (2:node@c-1.me)  366936  | 366680 
+> [ 952.985200] (2:node@c-1.me)  367192  | 366680 
+> [ 952.985200] (2:node@c-1.me)  367704  | 366680 
+> [ 952.985200] (2:node@c-1.me)  368728  | 366680 
+> [ 952.985200] (2:node@c-1.me)  370776  | 366680 
+> [ 952.985200] (2:node@c-1.me)  374872  | 366680 
+> [ 952.985200] (2:node@c-1.me)  383064  | 366680 
+> [ 952.985200] (2:node@c-1.me)  399448  | 366680 
+> [ 952.985200] (2:node@c-1.me)  432216  | 366680 
+> [ 952.985200] (2:node@c-1.me)  497752  | 366680 
+> [ 952.985200] (2:node@c-1.me)  628824  | 366680 
+> [ 952.985200] (2:node@c-1.me)  890968  | 366680 
+> [ 952.985200] (2:node@c-1.me)  1415256  | 366680 
+> [ 952.985200] (2:node@c-1.me)  2463832  | 366680 
+> [ 952.985200] (2:node@c-1.me)  4560984  | 366680 
+> [ 952.985200] (2:node@c-1.me)  8755288  | 366680 
+> [ 952.985200] (2:node@c-1.me) Predecessor: 42
+> [ 967.986900] (4:node@c-3.me) My finger table:
+> [ 967.986900] (4:node@c-3.me) Start | Succ 
+> [ 967.986900] (4:node@c-3.me)  1319739  | 2015253 
+> [ 967.986900] (4:node@c-3.me)  1319740  | 6518808 
+> [ 967.986900] (4:node@c-3.me)  1319742  | 6518808 
+> [ 967.986900] (4:node@c-3.me)  1319746  | 2015253 
+> [ 967.986900] (4:node@c-3.me)  1319754  | 2015253 
+> [ 967.986900] (4:node@c-3.me)  1319770  | 2015253 
+> [ 967.986900] (4:node@c-3.me)  1319802  | 2015253 
+> [ 967.986900] (4:node@c-3.me)  1319866  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1319994  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1320250  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1320762  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1321786  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1323834  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1327930  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1336122  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1352506  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1385274  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1450810  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1581882  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  1844026  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  2368314  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  3416890  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  5514042  | 1319738 
+> [ 967.986900] (4:node@c-3.me)  9708346  | 1319738 
+> [ 967.986900] (4:node@c-3.me) Predecessor: 533744
+> [1207.985300] (0:@) Messages created: 1690
+> [1207.985300] (0:@) Simulated time: 1207.99
index 7f2087b..56f87a0 100644 (file)
@@ -3,27 +3,14 @@
 p Testing the mechanism for computing host energy consumption 
 
 ! output sort
-$ $SG_TEST_EXENV energy/e2/e2$EXEEXT ${srcdir:=.}/energy/e2/platform_e2.xml ${srcdir:=.}/energy/e2/deployment_e2.xml --log=surf_cpu.thres:debug --log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n
-> [  0.000000] (0:@) CPU create: peak=100000000.000000, pstate=0
+$ $SG_TEST_EXENV energy/e2/e2$EXEEXT ${srcdir:=.}/energy/e2/platform_e2.xml ${srcdir:=.}/energy/e2/deployment_e2.xml --log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n
 > [  0.000000] (1:dvfs_test@MyHost1) Current power peak=100000000.000000
 > [  0.000000] (1:dvfs_test@MyHost1) Total energy (Joules): 0.000000
-> [  1.000000] (0:@) [cpu_update_energy] action time interval=(0.000000-1.000000), current power peak=100000000.000000, current pstate=0
-> [  1.000000] (0:@) [get_current_watts] min_power=95.000000, max_power=200.000000, slope=105.000000
-> [  1.000000] (0:@) [get_current_watts] Current power (watts) = 200.000000, load = 1.000000
-> [  1.000000] (0:@) [cpu_update_energy] old_energy_value=0.000000, action_energy_value=200.000000
 > [  1.000000] (1:dvfs_test@MyHost1) Task1 simulation time: 1.000000e+00
 > [  1.000000] (1:dvfs_test@MyHost1) Total energy (Joules): 200.000000
 > [  1.000000] (1:dvfs_test@MyHost1) =========Changing power peak value to 20000000.000000 (at index 2)
-> [  6.000000] (0:@) [cpu_update_energy] action time interval=(1.000000-6.000000), current power peak=20000000.000000, current pstate=2
-> [  6.000000] (0:@) [get_current_watts] min_power=90.000000, max_power=150.000000, slope=60.000000
-> [  6.000000] (0:@) [get_current_watts] Current power (watts) = 150.000000, load = 1.000000
-> [  6.000000] (0:@) [cpu_update_energy] old_energy_value=200.000000, action_energy_value=750.000000
 > [  6.000000] (1:dvfs_test@MyHost1) Task2 simulation time: 5.000000e+00
 > [  6.000000] (1:dvfs_test@MyHost1) Total energy (Joules): 950.000000
-> [  9.000000] (0:@) [cpu_update_energy] action time interval=(6.000000-9.000000), current power peak=20000000.000000, current pstate=2
-> [  9.000000] (0:@) [get_current_watts] min_power=90.000000, max_power=150.000000, slope=60.000000
-> [  9.000000] (0:@) [get_current_watts] Current power (watts) = 90.000000, load = 0.000000
-> [  9.000000] (0:@) [cpu_update_energy] old_energy_value=950.000000, action_energy_value=270.000000
 > [  9.000000] (1:dvfs_test@MyHost1) Task3 (sleep) simulation time: 4.000000e+00
 > [  9.000000] (1:dvfs_test@MyHost1) Total energy (Joules): 1220.000000
 > [  9.000000] (0:@) Total simulation time: 9.000000e+00
index 2b11ab0..a7d7eac 100644 (file)
@@ -3,36 +3,19 @@
 p Testing the mechanism for computing host energy consumption for concurrent tasks 
 
 ! output sort
-$ $SG_TEST_EXENV energy/e3/e3$EXEEXT ${srcdir:=.}/energy/e3/platform_e3.xml ${srcdir:=.}/energy/e3/deployment_e3.xml --log=surf_cpu.thres:debug --log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n
-> [  0.000000] (0:@) CPU create: peak=100000000.000000, pstate=0
+$ $SG_TEST_EXENV energy/e3/e3$EXEEXT ${srcdir:=.}/energy/e3/platform_e3.xml ${srcdir:=.}/energy/e3/deployment_e3.xml --log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n
 > [  0.000000] (1:dvfs_test@MyHost1) Current power peak=100000000.000000
 > [  0.000000] (1:dvfs_test@MyHost1) Total energy (Joules): 0.000000
-> [  2.000000] (0:@) [cpu_update_energy] action time interval=(0.000000-2.000000), current power peak=100000000.000000, current pstate=0
-> [  2.000000] (0:@) [get_current_watts] min_power=95.000000, max_power=200.000000, slope=105.000000
-> [  2.000000] (0:@) [get_current_watts] Current power (watts) = 200.000000, load = 1.000000
-> [  2.000000] (0:@) [cpu_update_energy] old_energy_value=0.000000, action_energy_value=400.000000
 > [  2.000000] (4:proc3@MyHost1) Process proc3 executed task sleep cpu=0.000000, duration = 2.000000
 > [  2.000000] (4:proc3@MyHost1) ==================================================
 > [  2.000000] (3:proc2@MyHost1) Process proc2 executed task sleep cpu=0.000000, duration = 2.000000
 > [  2.000000] (3:proc2@MyHost1) ==================================================
-> [  5.000000] (0:@) [cpu_update_energy] action time interval=(2.000000-5.000000), current power peak=100000000.000000, current pstate=0
-> [  5.000000] (0:@) [get_current_watts] min_power=95.000000, max_power=200.000000, slope=105.000000
-> [  5.000000] (0:@) [get_current_watts] Current power (watts) = 200.000000, load = 1.000000
-> [  5.000000] (0:@) [cpu_update_energy] old_energy_value=400.000000, action_energy_value=600.000000
 > [  5.000000] (4:proc3@MyHost1) Process proc3 executed task cpu=100000000.000000, duration = 3.000000
 > [  5.000000] (4:proc3@MyHost1) ==================================================
 > [  5.000000] (3:proc2@MyHost1) Process proc2 executed task cpu=100000000.000000, duration = 3.000000
 > [  5.000000] (3:proc2@MyHost1) ==================================================
-> [  6.000000] (0:@) [cpu_update_energy] action time interval=(5.000000-6.000000), current power peak=100000000.000000, current pstate=0
-> [  6.000000] (0:@) [get_current_watts] min_power=95.000000, max_power=200.000000, slope=105.000000
-> [  6.000000] (0:@) [get_current_watts] Current power (watts) = 200.000000, load = 1.000000
-> [  6.000000] (0:@) [cpu_update_energy] old_energy_value=1000.000000, action_energy_value=200.000000
 > [  6.000000] (2:proc1@MyHost1) Process proc1 executed task cpu=400000000.000000, duration = 6.000000
 > [  6.000000] (2:proc1@MyHost1) ==================================================
-> [  8.000000] (0:@) [cpu_update_energy] action time interval=(6.000000-8.000000), current power peak=100000000.000000, current pstate=0
-> [  8.000000] (0:@) [get_current_watts] min_power=95.000000, max_power=200.000000, slope=105.000000
-> [  8.000000] (0:@) [get_current_watts] Current power (watts) = 95.000000, load = 0.000000
-> [  8.000000] (0:@) [cpu_update_energy] old_energy_value=1200.000000, action_energy_value=190.000000
 > [  8.000000] (1:dvfs_test@MyHost1) Task simulation time: 8.000000e+00
 > [  8.000000] (1:dvfs_test@MyHost1) Total energy (Joules): 1390.000000
-> [  8.000000] (0:@) Total simulation time: 8.000000e+00
\ No newline at end of file
+> [  8.000000] (0:@) Total simulation time: 8.000000e+00
index dfededf..975b8a9 100644 (file)
@@ -2,9 +2,9 @@
 
 p Testing dogbone communication pattern with GTNets model
 
-$ gtnets/gtnets ${srcdir:=.}/gtnets/dogbone-p.xml ${srcdir:=.}/gtnets/dogbone-d.xml --cfg=tracing/filename:dogbone_gtnets.trace --cfg=tracing/categorized:1 --cfg=workstation/model:compound --cfg=cpu/model:Cas01 --cfg=network/model:GTNets
+$ gtnets/gtnets ${srcdir:=.}/gtnets/dogbone-p.xml ${srcdir:=.}/gtnets/dogbone-d.xml --cfg=tracing/filename:dogbone_gtnets.trace --cfg=tracing/categorized:yes --cfg=workstation/model:compound --cfg=cpu/model:Cas01 --cfg=network/model:GTNets
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'dogbone_gtnets.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'workstation/model' to 'compound'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'cpu/model' to 'Cas01'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'GTNets'
index cd91f36..5c0e6cb 100644 (file)
@@ -2,9 +2,9 @@
 
 p Testing dogbone communication pattern with LV08 model
 
-$ gtnets/gtnets ${srcdir:=.}/gtnets/dogbone-p.xml ${srcdir:=.}/gtnets/dogbone-d.xml --cfg=tracing/filename:dogbone_lv08.trace --cfg=tracing/categorized:1 --cfg=workstation/model:compound --cfg=cpu/model:Cas01 --cfg=network/model:LV08
+$ gtnets/gtnets ${srcdir:=.}/gtnets/dogbone-p.xml ${srcdir:=.}/gtnets/dogbone-d.xml --cfg=tracing/filename:dogbone_lv08.trace --cfg=tracing/categorized:yes --cfg=workstation/model:compound --cfg=cpu/model:Cas01 --cfg=network/model:LV08
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'dogbone_lv08.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'workstation/model' to 'compound'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'cpu/model' to 'Cas01'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'LV08'
index c571469..3941da6 100644 (file)
@@ -2,9 +2,9 @@
 
 p Testing onelink communication pattern with GTNets model
 
-$ gtnets/gtnets ${srcdir:=.}/gtnets/onelink-p.xml ${srcdir:=.}/gtnets/onelink-d.xml --cfg=tracing/filename:onelink_gtnets.trace --cfg=tracing/categorized:1 --cfg=workstation/model:compound --cfg=cpu/model:Cas01 --cfg=network/model:GTNets
+$ gtnets/gtnets ${srcdir:=.}/gtnets/onelink-p.xml ${srcdir:=.}/gtnets/onelink-d.xml --cfg=tracing/filename:onelink_gtnets.trace --cfg=tracing/categorized:yes --cfg=workstation/model:compound --cfg=cpu/model:Cas01 --cfg=network/model:GTNets
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'onelink_gtnets.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'workstation/model' to 'compound'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'cpu/model' to 'Cas01'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'GTNets'
index ca6aac6..a12fd42 100644 (file)
@@ -2,9 +2,9 @@
 
 p Testing onelink communication pattern with LV08 model
 
-$ gtnets/gtnets ${srcdir:=.}/gtnets/onelink-p.xml ${srcdir:=.}/gtnets/onelink-d.xml --cfg=tracing/filename:onelink_lv08.trace --cfg=tracing/categorized:1 --cfg=workstation/model:compound --cfg=cpu/model:Cas01  --cfg=network/model:LV08 2>&1 | grep --color=auto -v root/INFO | grep -v simix_network/INFO
+$ gtnets/gtnets ${srcdir:=.}/gtnets/onelink-p.xml ${srcdir:=.}/gtnets/onelink-d.xml --cfg=tracing/filename:onelink_lv08.trace --cfg=tracing/categorized:yes --cfg=workstation/model:compound --cfg=cpu/model:Cas01  --cfg=network/model:LV08 2>&1 | grep --color=auto -v root/INFO | grep -v simix_network/INFO
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'onelink_lv08.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'workstation/model' to 'compound'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'cpu/model' to 'Cas01'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'LV08'
index 5888081..886a196 100644 (file)
@@ -3,9 +3,9 @@
 p Testing waxman radom communication pattern with GTNets model, 200 nodes, 200 flows
 
 ! timeout 10
-$ gtnets/gtnets ${srcdir:=.}/gtnets/waxman-p.xml ${srcdir:=.}/gtnets/waxman-d.xml --cfg=tracing/filename:waxman_gtnets.trace --cfg=tracing/categorized:1 --cfg=workstation/model:compound --cfg=cpu/model:Cas01 --cfg=network/model:GTNets
+$ gtnets/gtnets ${srcdir:=.}/gtnets/waxman-p.xml ${srcdir:=.}/gtnets/waxman-d.xml --cfg=tracing/filename:waxman_gtnets.trace --cfg=tracing/categorized:yes --cfg=workstation/model:compound --cfg=cpu/model:Cas01 --cfg=network/model:GTNets
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'waxman_gtnets.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'workstation/model' to 'compound'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'cpu/model' to 'Cas01'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'GTNets'
index 3285b5e..13a39a6 100644 (file)
@@ -4,19 +4,23 @@ set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
 add_executable(file file.c)
 add_executable(file_unlink file_unlink.c)
+add_executable(storage storage.c)
 
 ### Add definitions for compile
 if(NOT WIN32)
   target_link_libraries(file simgrid pthread)
   target_link_libraries(file_unlink simgrid pthread)
+  target_link_libraries(storage simgrid pthread)
 else()
   target_link_libraries(file simgrid)
   target_link_libraries(file_unlink simgrid)
+  target_link_libraries(storage simgrid)
 endif()
 
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/io.tesh
+  ${CMAKE_CURRENT_SOURCE_DIR}/storage.tesh
   PARENT_SCOPE
   )
 set(xml_files
@@ -27,6 +31,7 @@ set(examples_src
   ${examples_src}
   ${CMAKE_CURRENT_SOURCE_DIR}/file.c
   ${CMAKE_CURRENT_SOURCE_DIR}/file_unlink.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/storage.c
   PARENT_SCOPE
   )
 set(bin_files
index ef7808f..9e07765 100644 (file)
@@ -16,7 +16,7 @@
  */
 
 #define FILENAME1 "./doc/simgrid/examples/platforms/g5k.xml"
-#define FILENAME2 "./doc/simgrid/examples/platforms/One_cluster_no_backbone.xml"
+#define FILENAME2 ".\\Windows\\setupact.log"
 #define FILENAME3 "./doc/simgrid/examples/platforms/g5k_cabinets.xml"
 #define FILENAME4 "./doc/simgrid/examples/platforms/nancy.xml"
 
@@ -40,11 +40,13 @@ int host(int argc, char *argv[])
   if(!strcmp(MSG_process_get_name(MSG_process_self()),"0")){
     file = MSG_file_open(mount,FILENAME1, NULL);
     MSG_file_dump(file);
-  } else if(!strcmp(MSG_process_get_name(MSG_process_self()),"1"))
+  } else if(!strcmp(MSG_process_get_name(MSG_process_self()),"1")) {
+    free(mount);
+    mount = xbt_strdup("/windows");
     file = MSG_file_open(mount,FILENAME2, NULL);
-  else if(!strcmp(MSG_process_get_name(MSG_process_self()),"2"))
+  } else if(!strcmp(MSG_process_get_name(MSG_process_self()),"2")){
     file = MSG_file_open(mount,FILENAME3, NULL);
-  else if(!strcmp(MSG_process_get_name(MSG_process_self()),"3"))
+  else if(!strcmp(MSG_process_get_name(MSG_process_self()),"3"))
     file = MSG_file_open(mount,FILENAME4, NULL);
   else xbt_die("FILENAME NOT DEFINED %s",MSG_process_get_name(MSG_process_self()));
 
index bf4bdc2..e612c10 100644 (file)
@@ -2,7 +2,7 @@
 
 $ ${bindir:=.}/io/file ${srcdir:=.}/examples/platforms/storage.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) Number of host '4'
-> [  0.000000] (2:1@alice)     Open file './doc/simgrid/examples/platforms/One_cluster_no_backbone.xml'
+> [  0.000000] (2:1@alice)     Open file '.\Windows\setupact.log'
 > [  0.000000] (3:2@carl)      Open file './doc/simgrid/examples/platforms/g5k_cabinets.xml'
 > [  0.000000] (4:3@bob)       Open file './doc/simgrid/examples/platforms/nancy.xml'
 > [  0.000000] (1:0@denise) File Descriptor information:
@@ -13,77 +13,45 @@ $ ${bindir:=.}/io/file ${srcdir:=.}/examples/platforms/storage.xml "--log=root.f
 >              Storage Type: 'single_SSD'
 >              Content Type: 'txt_unix'
 > [  0.000000] (1:0@denise)    Open file './doc/simgrid/examples/platforms/g5k.xml'
-> [  0.000005] (2:1@alice)     Have read    482 on ./doc/simgrid/examples/platforms/One_cluster_no_backbone.xml
 > [  0.000040] (4:3@bob)       Have read    4028 on ./doc/simgrid/examples/platforms/nancy.xml
-> [  0.000170] (1:0@denise)    Have read    17028 on ./doc/simgrid/examples/platforms/g5k.xml
+> [  0.000085] (1:0@denise)    Have read    17028 on ./doc/simgrid/examples/platforms/g5k.xml
 > [  0.000226] (3:2@carl)      Have read    22645 on ./doc/simgrid/examples/platforms/g5k_cabinets.xml
-> [  0.003338] (2:1@alice)     Have written 100000 on ./doc/simgrid/examples/platforms/One_cluster_no_backbone.xml
+> [  0.000508] (2:1@alice)     Have read    101663 on .\Windows\setupact.log
+> [  0.001752] (1:0@denise)    Have written 100000 on ./doc/simgrid/examples/platforms/g5k.xml
+> [  0.002175] (2:1@alice)     Have written 100000 on .\Windows\setupact.log
+> [  0.002439] (1:0@denise)    Have read    110000 on ./doc/simgrid/examples/platforms/g5k.xml (of size 117026)
+> [  0.002439] (1:0@denise)    Close file './doc/simgrid/examples/platforms/g5k.xml'
+> [  0.002862] (2:1@alice)     Have read    110000 on .\Windows\setupact.log (of size 201662)
+> [  0.002862] (2:1@alice)     Close file '.\Windows\setupact.log'
 > [  0.003374] (4:3@bob)       Have written 100000 on ./doc/simgrid/examples/platforms/nancy.xml
-> [  0.003504] (1:0@denise)    Have written 100000 on ./doc/simgrid/examples/platforms/g5k.xml
 > [  0.003560] (3:2@carl)      Have written 100000 on ./doc/simgrid/examples/platforms/g5k_cabinets.xml
-> [  0.004343] (2:1@alice)     Have read    100481 on ./doc/simgrid/examples/platforms/One_cluster_no_backbone.xml (of size 100481)
-> [  0.004343] (2:1@alice)     Close file './doc/simgrid/examples/platforms/One_cluster_no_backbone.xml'
-> [  0.004414] (4:3@bob)       Have read    104027 on ./doc/simgrid/examples/platforms/nancy.xml (of size 104027)
-> [  0.004414] (4:3@bob)       Close file './doc/simgrid/examples/platforms/nancy.xml'
-> [  0.004604] (1:0@denise)    Have read    110000 on ./doc/simgrid/examples/platforms/g5k.xml (of size 117027)
-> [  0.004604] (1:0@denise)    Close file './doc/simgrid/examples/platforms/g5k.xml'
-> [  0.004660] (3:2@carl)      Have read    110000 on ./doc/simgrid/examples/platforms/g5k_cabinets.xml (of size 122644)
-> [  0.004660] (3:2@carl)      Close file './doc/simgrid/examples/platforms/g5k_cabinets.xml'
-> [  0.004660] (0:@) Simulation time 0.00465978
+> [  0.004529] (4:3@bob)       Have read    104023 on ./doc/simgrid/examples/platforms/nancy.xml (of size 104023)
+> [  0.004529] (4:3@bob)       Close file './doc/simgrid/examples/platforms/nancy.xml'
+> [  0.004782] (3:2@carl)      Have read    110000 on ./doc/simgrid/examples/platforms/g5k_cabinets.xml (of size 122641)
+> [  0.004782] (3:2@carl)      Close file './doc/simgrid/examples/platforms/g5k_cabinets.xml'
+> [  0.004782] (0:@) Simulation time 0.00478201
 
 $ ${bindir:=.}/io/file_unlink ${srcdir:=.}/examples/platforms/storage.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (0:@) Number of host '4'
 > [  0.000000] (1:0@denise)    Open file './doc/simgrid/examples/platforms/g5k.xml'
 > [  0.000000] (1:0@denise)    Unlink file './doc/simgrid/examples/platforms/g5k.xml'
 > [  0.000000] (1:0@denise)    Open file './doc/simgrid/examples/platforms/g5k.xml'
-> [  0.003333] (1:0@denise)    Have written 100000 on ./doc/simgrid/examples/platforms/g5k.xml
-> [  0.003333] (1:0@denise)    Close file './doc/simgrid/examples/platforms/g5k.xml'
-> [  0.003333] (1:0@denise)  
-> [  0.003333] (1:0@denise) ls ./
-> [  0.003333] (1:0@denise) DIR  : include
-> [  0.003333] (1:0@denise) DIR  : lib
-> [  0.003333] (1:0@denise) DIR  : bin
-> [  0.003333] (1:0@denise) DIR  : doc
-> [  0.003333] (1:0@denise)  
-> [  0.003333] (1:0@denise) ls ./doc/simgrid/examples/platforms/
-> [  0.003333] (1:0@denise) FILE : lcg_sept2004_grid.xml
-> [  0.003333] (1:0@denise) FILE : prop.xml
-> [  0.003333] (1:0@denise) FILE : multicore_machine.xml
-> [  0.003333] (1:0@denise) FILE : g5k.xml
-> [  0.003333] (1:0@denise) FILE : vivaldi.xml
-> [  0.003333] (1:0@denise) FILE : gdx.xml
-> [  0.003333] (1:0@denise) FILE : griffon.xml
-> [  0.003333] (1:0@denise) FILE : Two_clusters.xml
-> [  0.003333] (1:0@denise) FILE : One_cluster_no_backbone.xml
-> [  0.003333] (1:0@denise) FILE : median_harvard.xml
-> [  0.003333] (1:0@denise) FILE : nancy.xml
-> [  0.003333] (1:0@denise) FILE : One_cluster.xml
-> [  0.003333] (1:0@denise) FILE : g5k_cabinets.xml
-> [  0.003333] (1:0@denise) FILE : gridpp_grid_2004.xml
-> [  0.003333] (1:0@denise)  
-> [  0.003333] (1:0@denise) ls ./doc/simgrid/examples/msg/
-> [  0.003333] (1:0@denise) DIR  : parallel_contexts
-> [  0.003333] (1:0@denise) DIR  : alias
-> [  0.003333] (1:0@denise) DIR  : trace
-> [  0.003333] (1:0@denise) FILE : small_platform.xml
-> [  0.003333] (1:0@denise) DIR  : priority
-> [  0.003333] (1:0@denise) DIR  : tracing
-> [  0.003333] (1:0@denise) DIR  : properties
-> [  0.003333] (1:0@denise) FILE : README
-> [  0.003333] (1:0@denise) DIR  : chord
-> [  0.003333] (1:0@denise) DIR  : mc
-> [  0.003333] (1:0@denise) DIR  : gtnets
-> [  0.003333] (1:0@denise) DIR  : suspend
-> [  0.003333] (1:0@denise) FILE : small_platform_with_routers.xml
-> [  0.003333] (1:0@denise) DIR  : pmm
-> [  0.003333] (1:0@denise) FILE : msg_platform.xml
-> [  0.003333] (1:0@denise) DIR  : token_ring
-> [  0.003333] (1:0@denise) DIR  : actions
-> [  0.003333] (1:0@denise) FILE : small_platform_with_failures.xml
-> [  0.003333] (1:0@denise) DIR  : ns3
-> [  0.003333] (1:0@denise) DIR  : sendrecv
-> [  0.003333] (1:0@denise) DIR  : parallel_task
-> [  0.003333] (1:0@denise) DIR  : masterslave
-> [  0.003333] (1:0@denise) DIR  : icomms
-> [  0.003333] (1:0@denise) DIR  : migration
-> [  0.003333] (0:@) Simulation time 0.00333333
\ No newline at end of file
+> [  0.001667] (1:0@denise)    Have written 100000 on ./doc/simgrid/examples/platforms/g5k.xml
+> [  0.001667] (1:0@denise)    Close file './doc/simgrid/examples/platforms/g5k.xml'
+> [  0.001667] (1:0@denise)  
+> [  0.001667] (1:0@denise) ls ./
+> [  0.001667] (1:0@denise) DIR  : include
+> [  0.001667] (1:0@denise) DIR  : lib
+> [  0.001667] (1:0@denise) DIR  : bin
+> [  0.001667] (1:0@denise) DIR  : doc
+> [  0.001667] (1:0@denise)  
+> [  0.001667] (1:0@denise) ls ./doc/simgrid/examples/platforms/
+> [  0.001667] (1:0@denise) FILE : g5k.xml
+> [  0.001667] (1:0@denise)  
+> [  0.001667] (1:0@denise) ls ./doc/simgrid/examples/msg/
+> [  0.001667] (1:0@denise) DIR  : alias
+> [  0.001667] (1:0@denise) DIR  : trace
+> [  0.001667] (1:0@denise) FILE : README
+> [  0.001667] (1:0@denise) DIR  : parallel_task
+> [  0.001667] (1:0@denise) DIR  : icomms
+> [  0.001667] (0:@) Simulation time 0.00166667
\ No newline at end of file
diff --git a/examples/msg/io/storage.c b/examples/msg/io/storage.c
new file mode 100644 (file)
index 0000000..3fa8fb6
--- /dev/null
@@ -0,0 +1,151 @@
+/* Copyright (c) 2006-2013. 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. */
+
+/********************* Files and Storage handling ****************************
+ * This example implements all main storage and file functions of the MSG API
+ *
+ * Scenario :
+ * - display information on the disks mounted by the current host
+ * - create a 200,000 bytes file
+ * - completely read the created file
+ * - write 100,000 more bytes in the file
+ * - rename the created file
+ * - attach some user data to a disk
+ * - dump disk's contents
+ *
+******************************************************************************/
+
+#include "msg/msg.h"
+#include "xbt/log.h"
+#include "xbt/dict.h"
+
+ /* To use PRIu64 format specifier for printing uint64_t (sg_storage_size_t) */
+#include <inttypes.h>
+
+XBT_LOG_NEW_DEFAULT_CATEGORY(storage,"Messages specific for this simulation");
+
+static int host(int argc, char *argv[]){
+  const char* host_name = MSG_host_get_name(MSG_host_self());
+
+  // display information on the disks mounted by the current host
+  XBT_INFO("*** Storage info on %s ***", host_name);
+
+  xbt_dict_cursor_t cursor = NULL;
+  char* mount_name;
+  char* storage_name;
+  msg_storage_t storage;
+
+  // Retrieve all mount points of current host
+  xbt_dict_t storage_list = MSG_host_get_storage_list(MSG_host_self());
+
+  xbt_dict_foreach(storage_list,cursor,mount_name,storage_name)  {
+    // For each disk mounted on host
+    XBT_INFO("Storage name: %s, mount name: %s", storage_name, mount_name);
+    storage = MSG_storage_get_by_name(storage_name);
+
+    // Retrieve disk's information
+    sg_storage_size_t free_size = MSG_storage_get_free_size(mount_name);
+    sg_storage_size_t used_size = MSG_storage_get_used_size(mount_name);
+    sg_storage_size_t size = MSG_storage_get_size(storage);
+
+    XBT_INFO("Total size: %"PRIu64" bytes", size);
+    XBT_INFO("Free size: %"PRIu64" bytes", free_size);
+    XBT_INFO("Used size: %"PRIu64" bytes", used_size);
+  }
+  xbt_dict_free(&storage_list);
+
+
+  // Create a 200,000 bytes file named './tmp/data.txt' on /sd1
+
+  char* mount = xbt_strdup("/home");
+  char* file_name = xbt_strdup("./tmp/data.txt");
+  msg_file_t file = NULL;
+  sg_storage_size_t write, read, file_size;
+
+  // Open an non-existing file amounts to create it!
+  file = MSG_file_open(mount, file_name, NULL);
+  write = MSG_file_write(file, 200000);  // Write 200,000 bytes
+  XBT_INFO("Create a %"PRIu64" bytes file named '%s' on /sd1", write, file_name);
+  MSG_file_dump(file);
+
+  // check that sizes have changed
+  XBT_INFO("Free size: %"PRIu64" bytes", MSG_storage_get_free_size("/home"));
+  XBT_INFO("Used size: %"PRIu64" bytes", MSG_storage_get_used_size("/home"));
+
+
+  // Now retrieve the size of created file and read it completely
+  file_size = MSG_file_get_size(file);
+  read = MSG_file_read(file, file_size);
+  XBT_INFO("Read %"PRIu64" bytes on %s", read, file_name);
+
+  // Now write 100,000 more bytes in tmp/data.txt
+  write = MSG_file_write(file, 100000);  // Write 100,000 bytes
+  XBT_INFO("Write %"PRIu64" more bytes on %s", write, file_name);
+  MSG_file_dump(file);
+
+  MSG_file_close(file);
+  free(mount);
+  free(file_name);
+
+  storage_name = xbt_strdup("Disk4");
+  storage = MSG_storage_get_by_name(storage_name);
+
+  // Now rename file from ./tmp/data.txt to ./tmp/simgrid.readme
+  XBT_INFO("*** Renaming './tmp/data.txt' into './tmp/simgrid.readme'");
+  MSG_storage_file_rename(storage, "./tmp/data.txt", "./tmp/simgrid.readme");
+
+  // Now attach some user data to disk1
+  XBT_INFO("*** Get/set data for storage element: %s ***",storage_name);
+
+  char *data = MSG_storage_get_data(storage);
+
+  XBT_INFO("Get data: '%s'", data);
+
+  MSG_storage_set_data(storage,strdup("Some user data"));
+  data = MSG_storage_get_data(storage);
+  XBT_INFO("Set and get data: '%s'", data);
+  xbt_free(storage_name);
+
+
+  // Dump disks contents
+  XBT_INFO("*** Dump content of %s ***",MSG_host_get_name(MSG_host_self()));
+  xbt_dict_t contents = NULL;
+  contents = MSG_host_get_storage_content(MSG_host_self()); // contents is a dict of dicts
+  xbt_dict_cursor_t curs, curs2 = NULL;
+  char* mountname;
+  xbt_dict_t content;
+  char* path;
+  sg_storage_size_t *size;
+  xbt_dict_foreach(contents, curs, mountname, content){
+    XBT_INFO("Print the content of mount point: %s",mountname);
+    xbt_dict_foreach(content,curs2,path,size){
+       XBT_INFO("%s size: %"PRIu64" bytes", path,*((sg_storage_size_t*)size));
+    }
+  xbt_dict_free(&content);
+  }
+  xbt_dict_free(&contents);
+  return 1;
+}
+
+
+int main(int argc, char *argv[])
+{
+
+  MSG_init(&argc, argv);
+  MSG_create_environment(argv[1]);
+  MSG_function_register("host", host);
+  xbt_dynar_t hosts =  MSG_hosts_as_dynar();
+  MSG_process_create(NULL, host, NULL, xbt_dynar_get_as(hosts,0,msg_host_t) );
+  xbt_dynar_free(&hosts);
+
+  msg_error_t res = MSG_main();
+  XBT_INFO("Simulated time: %g", MSG_get_clock());
+
+  if (res == MSG_OK)
+    return 0;
+  else
+    return 1;
+}
diff --git a/examples/msg/io/storage.tesh b/examples/msg/io/storage.tesh
new file mode 100644 (file)
index 0000000..deffa47
--- /dev/null
@@ -0,0 +1,106 @@
+#! ./tesh
+
+$ ${bindir:=.}/io/storage ${srcdir:=.}/examples/platforms/storage.xml "--log=root.fmt:[%8.6r]%e(%i@%h)%e%m%n"
+> [0.000000] (1@denise) *** Storage info on denise ***
+> [0.000000] (1@denise) Storage name: Disk4, mount name: /home
+> [0.000000] (1@denise) Total size: 536870912000 bytes
+> [0.000000] (1@denise) Free size: 536857690006 bytes
+> [0.000000] (1@denise) Used size: 13221994 bytes
+> [0.000000] (1@denise) Storage name: Disk2, mount name: /windows
+> [0.000000] (1@denise) Total size: 536870912000 bytes
+> [0.000000] (1@denise) Free size: 534479374867 bytes
+> [0.000000] (1@denise) Used size: 2391537133 bytes
+> [0.003333] (1@denise) Create a 200000 bytes file named './tmp/data.txt' on /sd1
+> [0.003333] (1@denise) File Descriptor information:
+>              Full name: './tmp/data.txt'
+>              Size: 200000
+>              Mount point: '/home'
+>              Storage Id: 'Disk4'
+>              Storage Type: 'single_SSD'
+>              Content Type: 'txt_unix'
+> [0.003333] (1@denise) Free size: 536857490006 bytes
+> [0.003333] (1@denise) Used size: 13421994 bytes
+> [0.004583] (1@denise) Read 200000 bytes on ./tmp/data.txt
+> [0.007917] (1@denise) Write 100000 more bytes on ./tmp/data.txt
+> [0.007917] (1@denise) File Descriptor information:
+>              Full name: './tmp/data.txt'
+>              Size: 300000
+>              Mount point: '/home'
+>              Storage Id: 'Disk4'
+>              Storage Type: 'single_SSD'
+>              Content Type: 'txt_unix'
+> [0.007917] (1@denise) *** Renaming './tmp/data.txt' into './tmp/simgrid.readme'
+> [0.007917] (1@denise) *** Get/set data for storage element: Disk4 ***
+> [0.007917] (1@denise) Get data: '(null)'
+> [0.007917] (1@denise) Set and get data: 'Some user data'
+> [0.007917] (1@denise) *** Dump content of denise ***
+> [0.007917] (1@denise) Print the content of mount point: /home
+> [0.007917] (1@denise) ./doc/simgrid/examples/platforms/g5k.xml size: 17028 bytes
+> [0.007917] (1@denise) ./include/surf/simgrid_dtd.h size: 23583 bytes
+> [0.007917] (1@denise) ./bin/smpicc size: 918 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/smpi/mc_bugged2.c size: 1387 bytes
+> [0.007917] (1@denise) ./include/simdag/simdag.h size: 10325 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/smpi/NAS/sys/README size: 1461 bytes
+> [0.007917] (1@denise) ./tmp/simgrid.readme size: 300000 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/smpi/NAS/common/randdp.c size: 1441 bytes
+> [0.007917] (1@denise) ./include/msg/datatypes.h size: 4635 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/smpi/NAS/EP/randlc.c size: 3300 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/msg/parallel_task/test_ptask_deployment.xml size: 654 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/msg/icomms/small_platform.xml size: 972 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/msg/trace/test9.xml size: 598 bytes
+> [0.007917] (1@denise) ./include/simix/simix.h size: 13003 bytes
+> [0.007917] (1@denise) ./include/mc/modelchecker.h size: 96 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/msg/README size: 4805 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/smpi/NAS/README size: 1857 bytes
+> [0.007917] (1@denise) ./include/instr/instr.h size: 5750 bytes
+> [0.007917] (1@denise) ./doc/simgrid/html/group__XBT__str.html size: 36192 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/smpi/NAS/EP/README size: 347 bytes
+> [0.007917] (1@denise) ./bin/tesh size: 356434 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/smpi/NAS/DT/README size: 999 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/smpi/NAS/FT/README size: 276 bytes
+> [0.007917] (1@denise) ./lib/libsimgrid.so.3.6.2 size: 12710497 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/xbt/sem_basic.c size: 1970 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/msg/alias/masterslave_forwarder_with_alias.c size: 6217 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/smpi/NAS/SP/README size: 926 bytes
+> [0.007917] (1@denise) ./include/xbt/fifo.h size: 3626 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/smpi/NAS/MPI_dummy/README size: 2406 bytes
+> [0.007917] (1@denise) ./doc/simgrid/examples/smpi/NAS/MG/README size: 5465 bytes
+> [0.007917] (1@denise) ./include/smpi/mpif.h size: 4826 bytes
+> [0.007917] (1@denise) Print the content of mount point: /windows
+> [0.007917] (1@denise) .\Windows\dcmdev64.exe size: 93288 bytes
+> [0.007917] (1@denise) .\Windows\WLXPGSS.SCR size: 322048 bytes
+> [0.007917] (1@denise) .\Windows\twain_32.dll size: 50176 bytes
+> [0.007917] (1@denise) .\Windows\bootstat.dat size: 67584 bytes
+> [0.007917] (1@denise) .\Windows\avastSS.scr size: 41664 bytes
+> [0.007917] (1@denise) .\Windows\font1.sii size: 4907 bytes
+> [0.007917] (1@denise) .\Windows\write.exe size: 10752 bytes
+> [0.007917] (1@denise) .\Windows\font2.sii size: 8698 bytes
+> [0.007917] (1@denise) .\Windows\DtcInstall.log size: 1955 bytes
+> [0.007917] (1@denise) .\Windows\vmgcoinstall.log size: 1585 bytes
+> [0.007917] (1@denise) .\Windows\_isusr32.dll size: 180320 bytes
+> [0.007917] (1@denise) .\Windows\winhlp32.exe size: 10752 bytes
+> [0.007917] (1@denise) .\Windows\setuperr.log size: 0 bytes
+> [0.007917] (1@denise) .\Windows\system.ini size: 219 bytes
+> [0.007917] (1@denise) .\Windows\hapint.exe size: 382056 bytes
+> [0.007917] (1@denise) .\Windows\Professional.xml size: 31881 bytes
+> [0.007917] (1@denise) .\Windows\setupact.log size: 101663 bytes
+> [0.007917] (1@denise) .\Windows\notepad.exe size: 243712 bytes
+> [0.007917] (1@denise) .\Windows\explorer.exe size: 2380944 bytes
+> [0.007917] (1@denise) .\Windows\bfsvc.exe size: 75264 bytes
+> [0.007917] (1@denise) .\Windows\WMSysPr9.prx size: 316640 bytes
+> [0.007917] (1@denise) .\Windows\PFRO.log size: 6770 bytes
+> [0.007917] (1@denise) .\Windows\csup.txt size: 12 bytes
+> [0.007917] (1@denise) .\Windows\win.ini size: 92 bytes
+> [0.007917] (1@denise) .\Windows\mib.bin size: 43131 bytes
+> [0.007917] (1@denise) .\Windows\Starter.xml size: 31537 bytes
+> [0.007917] (1@denise) .\Windows\CoreSingleLanguage.xml size: 31497 bytes
+> [0.007917] (1@denise) .\Windows\regedit.exe size: 159232 bytes
+> [0.007917] (1@denise) .\Windows\dchcfg64.exe size: 335464 bytes
+> [0.007917] (1@denise) .\Windows\HelpPane.exe size: 883712 bytes
+> [0.007917] (1@denise) .\Windows\WindowsUpdate.log size: 1518934 bytes
+> [0.007917] (1@denise) .\Windows\hh.exe size: 17408 bytes
+> [0.007917] (1@denise) .\Windows\DPINST.LOG size: 18944 bytes
+> [0.007917] (1@denise) .\Windows\DirectX.log size: 10486 bytes
+> [0.007917] (1@denise) .\Windows\splwow64.exe size: 126464 bytes
+> [0.007917] (1@denise) .\Windows\MEMORY.DMP size: 2384027342 bytes
+> [0.007917] (0@) Simulated time: 0.00791667
index 3413fbb..37652b8 100644 (file)
@@ -2,7 +2,7 @@
 
 ! expect signal SIGABRT
 ! timeout 20
-$ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/deploy_bugged1_liveness.xml --cfg=model-check:1 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --cfg=contexts/factory:ucontext
+$ ${bindir:=.}/bugged1_liveness ${srcdir:=.}/../msg_platform.xml ${srcdir:=.}/deploy_bugged1_liveness.xml --cfg=model-check:1 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --cfg=contexts/factory:ucontext
 > [  0.000000] (0:@) Configuration change: Set 'model-check' to '1'
 > [  0.000000] (0:@) Check the liveness property promela_bugged1_liveness
 > [  0.000000] (0:@) Get debug information ...
@@ -43,7 +43,7 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de
 > [  0.000000] (0:@) Expanded pairs = 21
 > [  0.000000] (0:@) Visited pairs = 21
 > [  0.000000] (0:@) Executed transitions = 20
-
+> [  0.000000] (0:@) Counter-example depth : 20
 
 
 
index 3341b5a..f8042cb 100644 (file)
@@ -2,7 +2,7 @@
 
 ! expect signal SIGABRT
 ! timeout 90
-$ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/deploy_bugged1_liveness_visited.xml --cfg=model-check:1 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --cfg=contexts/factory:ucontext --cfg=model-check/visited:100
+$ ${bindir:=.}/bugged1_liveness ${srcdir:=.}/../msg_platform.xml ${srcdir:=.}/deploy_bugged1_liveness_visited.xml --cfg=model-check:1 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --cfg=contexts/factory:ucontext --cfg=model-check/visited:100
 > [  0.000000] (0:@) Configuration change: Set 'model-check' to '1'
 > [  0.000000] (0:@) Configuration change: Set 'model-check/visited' to '100'
 > [  0.000000] (0:@) Check the liveness property promela_bugged1_liveness
@@ -20,57 +20,11 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de
 > [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
 > [  0.000000] (2:client@Boivin) Ask the request
 > [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
-> [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
-> [  0.000000] (2:client@Boivin) Ask the request
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
-> [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
-> [  0.000000] (2:client@Boivin) Ask the request
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
-> [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
-> [  0.000000] (2:client@Boivin) Ask the request
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
-> [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
-> [  0.000000] (2:client@Boivin) Ask the request
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
-> [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
-> [  0.000000] (2:client@Boivin) Ask the request
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (1:coordinator@Tremblay) CS already used. Queue the request.
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
-> [  0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1)
-> [  0.000000] (2:client@Boivin) Ask the request
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
-> [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
-> [  0.000000] (2:client@Boivin) Ask the request
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (1:coordinator@Tremblay) CS already used. Queue the request.
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
-> [  0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1)
-> [  0.000000] (2:client@Boivin) Ask the request
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
 > [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
 > [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
 > [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
 > [  0.000000] (2:client@Boivin) Ask the request
 > [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (1:coordinator@Tremblay) CS already used. Queue the request.
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
-> [  0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1)
-> [  0.000000] (2:client@Boivin) Ask the request
-> [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
 > [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
 > [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
 > [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
@@ -81,7 +35,6 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de
 > [  0.000000] (1:coordinator@Tremblay) CS release. Grant to queued requests (queue size: 1)
 > [  0.000000] (2:client@Boivin) Ask the request
 > [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
-> [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
 > [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
 > [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
 > [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
@@ -104,7 +57,6 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de
 > [  0.000000] (2:client@Boivin) Ask the request
 > [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
 > [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
-> [  0.000000] (3:client@Fafard) Propositions changed : r=1, cs=0
 > [  0.000000] (1:coordinator@Tremblay) CS idle. Grant immediatly
 > [  0.000000] (2:client@Boivin) 2 got the answer. Sleep a bit and release it
 > [  0.000000] (1:coordinator@Tremblay) CS release. resource now idle
@@ -177,5 +129,6 @@ $ ${bindir:=.}/bugged1_liveness ${bindir:=.}/../msg_platform.xml ${bindir:=.}/de
 > [  0.000000] (0:@) [(2)Boivin (client)] Wait(comm=(verbose only) [(1)Tremblay (coordinator)-> (2)Boivin (client)]) (62)
 > [  0.000000] (0:@) [(2)Boivin (client)] iSend(src=(2)Boivin (client), buff=(verbose only), size=(verbose only)) (54)
 > [  0.000000] (0:@) Expanded pairs = 57
-> [  0.000000] (0:@) Visited pairs = 365
-> [  0.000000] (0:@) Executed transitions = 364
+> [  0.000000] (0:@) Visited pairs = 208
+> [  0.000000] (0:@) Executed transitions = 207
+> [  0.000000] (0:@) Counter-example depth : 50
index 1855048..f795621 100644 (file)
@@ -4,7 +4,7 @@ p Testing the deprecated CM02 network model
 
 ! output sort
 $ $SG_TEST_EXENV sendrecv/sendrecv$EXEEXT ${srcdir:=.}/sendrecv/platform_sendrecv.xml ${srcdir:=.}/sendrecv/deployment_sendrecv.xml --cfg=cpu/model:Cas01 --cfg=network/model:CM02 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
->  [  0.000000] (0:@) Configuration change: Set 'cpu/model' to 'Cas01'
+> [  0.000000] (0:@) Configuration change: Set 'cpu/model' to 'Cas01'
 > [  0.000000] (0:@) Configuration change: Set 'network/model' to 'CM02'
 > [  0.000000] (0:@) test_all
 > [  0.000000] (0:@) Switching workstation model to compound since you changed the network and/or cpu model(s)
@@ -19,4 +19,4 @@ $ $SG_TEST_EXENV sendrecv/sendrecv$EXEEXT ${srcdir:=.}/sendrecv/platform_sendrec
 > [1000.200010] (0:@) Total simulation time: 1.000200e+03
 > [1000.200010] (2:receiver@Bellevue) Task received : bandwidth task
 > [1000.200010] (2:receiver@Bellevue) Communic. time 1.000100e+03
-> [1000.200010] (2:receiver@Bellevue) --- bw 999900.009999 ----
\ No newline at end of file
+> [1000.200010] (2:receiver@Bellevue) --- bw 999900.009999 ----
index e62d9b5..d0dadbd 100644 (file)
@@ -12,9 +12,9 @@
  * 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:
- * --cfg=tracing:1
- * --cfg=tracing/categorized:1
- * --cfg=tracing/uncategorized:1
+ * --cfg=tracing:yes
+ * --cfg=tracing/categorized:yes
+ * --cfg=tracing/uncategorized:yes
  * --cfg=viva/categorized:viva_cat.plist
  * --cfg=viva/uncategorized:viva_uncat.plist
  * (See \ref tracing_tracing_options for details)
index 58da1df..6260508 100644 (file)
@@ -2,12 +2,12 @@
 
 p Tracing multiple categories master/slave application
 
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/categories$EXEEXT --cfg=tracing:1 --cfg=tracing/buffer:1 --cfg=tracing/filename:tracing/categories.trace --cfg=tracing/categorized:1 --cfg=tracing/uncategorized:1 --cfg=viva/categorized:tracing/categories.cat.plist --cfg=viva/uncategorized:tracing/categories.uncat.plist ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/buffer' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/categories$EXEEXT --cfg=tracing:yes --cfg=tracing/buffer:yes --cfg=tracing/filename:tracing/categories.trace --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:tracing/categories.cat.plist --cfg=viva/uncategorized:tracing/categories.uncat.plist ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.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 'tracing/categories.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
+> [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 'tracing/categories.cat.plist'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/uncategorized' to 'tracing/categories.uncat.plist'
 
index 65c0e4c..63a19e9 100644 (file)
@@ -16,8 +16,8 @@
  * these two hosts, if there is one defined in the platform file, and update the variable
  * of all the links of that route to the value provided.
  * You might want to run this program with the following parameters:
- * --cfg=tracing:1
- * --cfg=tracing/platform:1
+ * --cfg=tracing:yes
+ * --cfg=tracing/platform:yes
  * (See \ref tracing_tracing_options for details)
  */
 
index 2d087f7..79818f6 100644 (file)
@@ -1,6 +1,6 @@
 #! ./tesh
 
 p Tracing master/slave application
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/link_srcdst_user_variables$EXEEXT --cfg=tracing:1 --cfg=tracing/platform:1 ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/link_srcdst_user_variables$EXEEXT --cfg=tracing:yes --cfg=tracing/platform:yes ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.xml
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to 'yes'
index 46af714..c975460 100644 (file)
@@ -13,8 +13,8 @@
  * to provide the name of the link to update the value of the variable associated
  * to that link.
  * You might want to run this program with the following parameters:
- * --cfg=tracing:1
- * --cfg=tracing/platform:1
+ * --cfg=tracing:yes
+ * --cfg=tracing/platform:yes
  * (See \ref tracing_tracing_options for details)
  */
 
index 9e5b700..2e38c4d 100644 (file)
@@ -1,6 +1,6 @@
 #! ./tesh
 
 p Tracing master/slave application
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/link_user_variables$EXEEXT --cfg=tracing:1 --cfg=tracing/platform:1 ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/link_user_variables$EXEEXT --cfg=tracing:yes --cfg=tracing/platform:yes ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.xml
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to 'yes'
index e831432..d9a713f 100644 (file)
@@ -12,8 +12,8 @@
  * 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:1
- * --cfg=tracing/uncategorized:1
+ * --cfg=tracing/categorized:yes
+ * --cfg=tracing/uncategorized:yes
  * --cfg=viva/categorized:viva_cat.plist
  * --cfg=viva/uncategorized:viva_uncat.plist
  * (See \ref tracing_tracing_options for details)
index 717dcc7..dfa83e1 100644 (file)
@@ -1,12 +1,12 @@
 #! ./tesh
 
 p Tracing master/slave application
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/ms$EXEEXT --cfg=tracing:1 --cfg=tracing/buffer:1 --cfg=tracing/filename:tracing/ms.trace --cfg=tracing/categorized:1 --cfg=tracing/uncategorized:1 --cfg=viva/categorized:tracing/ms.cat.plist --cfg=viva/uncategorized:tracing/ms.uncat.plist ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/buffer' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/ms$EXEEXT --cfg=tracing:yes --cfg=tracing/buffer:yes --cfg=tracing/filename:tracing/ms.trace --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:tracing/ms.cat.plist --cfg=viva/uncategorized:tracing/ms.uncat.plist ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.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 'tracing/ms.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
+> [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 'tracing/ms.cat.plist'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/uncategorized' to 'tracing/ms.uncat.plist'
 > [4.214759] [msg_test/INFO] Declared tracing categories:
@@ -21,13 +21,13 @@ p Not tracing master/slave application
 $ $SG_TEST_EXENV ${bindir:=.}/tracing/ms$EXEEXT ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.xml
 
 p Testing tracing by process
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/ms$EXEEXT --cfg=tracing:1 --cfg=tracing/msg/process:1 --cfg=tracing/buffer:1 --cfg=tracing/filename:tracing/ms.trace --cfg=tracing/categorized:1 --cfg=tracing/uncategorized:1 --cfg=viva/categorized:tracing/ms.cat.plist --cfg=viva/uncategorized:tracing/ms.uncat.plist ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/msg/process' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/buffer' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/ms$EXEEXT --cfg=tracing:yes --cfg=tracing/msg/process:yes --cfg=tracing/buffer:yes --cfg=tracing/filename:tracing/ms.trace --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=viva/categorized:tracing/ms.cat.plist --cfg=viva/uncategorized:tracing/ms.uncat.plist ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.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 'tracing/ms.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
+> [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 'tracing/ms.cat.plist'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/uncategorized' to 'tracing/ms.uncat.plist'
 > [4.214759] [msg_test/INFO] Declared tracing categories:
index 59a1a79..c81c26a 100644 (file)
@@ -11,8 +11,8 @@
  * of where the process has been during its execution. Migrations are represented by
  * arrows from the origin to the destination host.
  * You might want to run this program with the following parameters:
- * --cfg=tracing:1
- * --cfg=tracing/msg/process:1
+ * --cfg=tracing:yes
+ * --cfg=tracing/msg/process:yes
  * (See \ref tracing_tracing_options for details)
  */
 
index 1a6e400..50c1f2e 100644 (file)
@@ -1,42 +1,42 @@
 #! ./tesh
 
 p Tracing processes
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:1 --cfg=tracing/buffer:1 --cfg=tracing/filename:tracing/procmig.trace --cfg=tracing/msg/process:1 ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/buffer' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:yes --cfg=tracing/buffer:yes --cfg=tracing/filename:tracing/procmig.trace --cfg=tracing/msg/process:yes ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.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 'tracing/procmig.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/msg/process' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/msg/process' to 'yes'
 
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:1 --cfg=tracing/categorized:1 --cfg=tracing/uncategorized:1 --cfg=tracing/buffer:1 --cfg=tracing/filename:tracing/procmig.trace --cfg=tracing/msg/process:1 ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/buffer' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:yes --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=tracing/buffer:yes --cfg=tracing/filename:tracing/procmig.trace --cfg=tracing/msg/process:yes ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [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 'tracing/buffer' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'tracing/procmig.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/msg/process' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/msg/process' to 'yes'
 
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing/categorized:1 --cfg=tracing/uncategorized:1 --cfg=tracing/buffer:0 --cfg=tracing/filename:tracing/procmig.trace --cfg=tracing/msg/process:1 ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/buffer' to '0'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes --cfg=tracing/buffer:no --cfg=tracing/filename:tracing/procmig.trace --cfg=tracing/msg/process:yes ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
+> [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 'tracing/buffer' to 'no'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'tracing/procmig.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/msg/process' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/msg/process' to 'yes'
 
 $ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
 
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:0 ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '0'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:no ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'no'
 
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:1 --cfg=tracing/categorized:1 ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:yes --cfg=tracing/categorized:yes ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to 'yes'
 
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:1 --cfg=tracing/uncategorized:1 ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:yes --cfg=tracing/uncategorized:yes ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to 'yes'
 
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:1 --cfg=tracing/msg/process:1 ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/msg/process' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/procmig$EXEEXT --cfg=tracing:yes --cfg=tracing/msg/process:yes ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/procmig-deploy.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'
 
 $ rm -rf tracing/procmig.trace simgrid.trace
index e8b5ebb..cb25e32 100644 (file)
@@ -14,7 +14,7 @@
  * 
  * - <b>tracing/simple.c</b> very simple program where each process creates, executes and
  *   destroy a task. You might want to run this program with the following parameters:
- *   --cfg=tracing/uncategorized:1
+ *   --cfg=tracing/uncategorized:yes
  *   (See \ref tracing_tracing_options for details)
  */
 
index a5cdfc0..094c657 100644 (file)
@@ -10,8 +10,8 @@
  * platform file is traced to a Paje trace file format using the tracing
  * mechanism of Simgrid.
  * You might want to run this program with the following parameters:
- * --cfg=tracing:1
- * --cfg=tracing/categorized:1
+ * --cfg=tracing:yes
+ * --cfg=tracing/categorized:yes
  * (See \ref tracing_tracing_options for details)
  */
 
index d69c95a..bc33b3d 100644 (file)
@@ -2,10 +2,10 @@
 
 
 p Tracing master/slave application
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/trace_platform$EXEEXT --cfg=tracing:1 --cfg=tracing/filename:tracing/trace_platform.trace --cfg=tracing/categorized:1 ${srcdir:=.}/tracing/platform.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/trace_platform$EXEEXT --cfg=tracing:yes --cfg=tracing/filename:tracing/trace_platform.trace --cfg=tracing/categorized:yes ${srcdir:=.}/tracing/platform.xml
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'tracing/trace_platform.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to 'yes'
 
 $ tail -n +3 tracing/trace_platform.trace
 > %EventDef PajeDefineContainerType 0
@@ -216,10 +216,10 @@ $ tail -n +3 tracing/trace_platform.trace
 
 $ rm -rf tracing/trace_platform.trace
 
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/trace_platform$EXEEXT --cfg=tracing:1  --cfg=tracing/filename:tracing/trace_platform.trace --cfg=tracing/categorized:1 ${srcdir:=.}/../platforms/g5k.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/trace_platform$EXEEXT --cfg=tracing:yes  --cfg=tracing/filename:tracing/trace_platform.trace --cfg=tracing/categorized:yes ${srcdir:=.}/../platforms/g5k.xml
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'tracing/trace_platform.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to 'yes'
 
 $ tail -n +3 tracing/trace_platform.trace
 > %EventDef PajeDefineContainerType 0
index 90e65ba..5017fc0 100644 (file)
@@ -9,8 +9,8 @@
  * - <b>tracing/user_variables.c</b>: This program demonstrates how to
  * trace user variables associated to the hosts of the platform file.
  * You might want to run this program with the following parameters:
- * --cfg=tracing:1
- * --cfg=tracing/platform:1
+ * --cfg=tracing:yes
+ * --cfg=tracing/platform:yes
  * (See \ref tracing_tracing_options for details)
  */
 
index 168ba8e..171346f 100644 (file)
@@ -1,9 +1,9 @@
 #! ./tesh
 
 p Tracing user variables
-$ $SG_TEST_EXENV ${bindir:=.}/tracing/user_variables$EXEEXT --cfg=tracing:1 --cfg=tracing/platform:1 ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to '1'
+$ $SG_TEST_EXENV ${bindir:=.}/tracing/user_variables$EXEEXT --cfg=tracing:yes --cfg=tracing/platform:yes ${srcdir:=.}/tracing/platform.xml ${srcdir:=.}/tracing/deployment.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:
 > [0.004078] [msg_test/INFO] HDD_capacity
 > [0.004078] [msg_test/INFO] HDD_utilization
diff --git a/examples/platforms/content/small_content.txt b/examples/platforms/content/small_content.txt
new file mode 100644 (file)
index 0000000..41bab56
--- /dev/null
@@ -0,0 +1,30 @@
+./doc/simgrid/examples/platforms/g5k.xml  17028
+./doc/simgrid/examples/smpi/mc_bugged2.c  1387
+./doc/simgrid/examples/smpi/NAS/README  1857
+./doc/simgrid/examples/smpi/NAS/MPI_dummy/README 2406
+./doc/simgrid/examples/smpi/NAS/common/randdp.c 1441
+./doc/simgrid/examples/smpi/NAS/sys/README  1461
+./doc/simgrid/examples/smpi/NAS/SP/README  926
+./doc/simgrid/examples/smpi/NAS/FT/README  276
+./doc/simgrid/examples/smpi/NAS/DT/README  999
+./doc/simgrid/examples/smpi/NAS/EP/README  347
+./doc/simgrid/examples/smpi/NAS/EP/randlc.c  3300
+./doc/simgrid/examples/smpi/NAS/MG/README  5465
+./doc/simgrid/examples/xbt/sem_basic.c  1970
+./doc/simgrid/examples/msg/README  4805
+./doc/simgrid/examples/msg/icomms/small_platform.xml 972
+./doc/simgrid/examples/msg/parallel_task/test_ptask_deployment.xml  654
+./doc/simgrid/examples/msg/alias/masterslave_forwarder_with_alias.c  6217
+./doc/simgrid/examples/msg/trace/test9.xml  598
+./doc/simgrid/html/group__XBT__str.html  36192
+./include/smpi/mpif.h  4826
+./include/xbt/fifo.h  3626
+./include/msg/datatypes.h 4635
+./include/mc/modelchecker.h  96
+./include/surf/simgrid_dtd.h  23583
+./include/instr/instr.h  5750
+./include/simdag/simdag.h  10325
+./include/simix/simix.h  13003
+./lib/libsimgrid.so.3.6.2  12710497
+./bin/smpicc  918
+./bin/tesh  356434
\ No newline at end of file
index 84310bd..7ee2c20 100644 (file)
    <storage_type id="single_HDD" model="linear_no_lat" 
                  content="content/storage_content.txt" size="500GiB"
                  content_type="txt_unix">
-                       <prop id="Bwrite" value="30MBps" />
-                       <prop id="Bread" value="100MBps" />
-                       <prop id="Bconnection" value="150MBps" />
+      <prop id="Bwrite" value="30MBps" />
+      <prop id="Bread" value="100MBps" />
+      <prop id="Bconnection" value="120MBps" />
    </storage_type>
 
-   <storage_type id="single_SSD" model="linear_no_lat"
-                 content="content/storage_content.txt" size="500GiB">
-                       <prop id="Bwrite" value="30MBps" />
-                       <prop id="Bread" value="100MBps" />
-                       <prop id="Bconnection" value="150MBps" />
-               </storage_type>
-
-               <storage id="Disk1" typeId="single_HDD"/>
-               <storage id="Disk2" typeId="single_SSD"/>
-               <storage id="Disk3" typeId="single_HDD"
-                         content="content/storage_content.txt" 
-                        content_type="txt_unix"/>
-               <storage id="Disk4" typeId="single_SSD"/>
-
-               <host id="bob" power="1Gf">
-                       <mount storageId="Disk1" name="/home"/>                 
-               </host>         
-               
-               <host id="alice" power="1Gf">
-                       <mount storageId="Disk2" name="/home"/>
-               </host>
-
-               <host id="carl" power="1Gf">            
-                       <mount storageId="Disk3" name="/home"/>         
-               </host>
-               
-               <host id="denise" power="1Gf">
-                       <mount storageId="Disk4" name="/home"/> 
-               </host>
-
-               <link id="link1" bandwidth="125MBps" latency="50us" />
-               <link id="link2" bandwidth="125MBps" latency="50us" />
-               <link id="link3" bandwidth="125MBps" latency="50us" />
-       
-               <route src="bob" dst="alice" symmetrical="YES">
-                       <link_ctn id="link1" />
-                       <link_ctn id="link2" />
-                       <link_ctn id="link3" />
-               </route>        
-
-       </AS>
+   <storage_type id="single_SSD" model="linear_no_lat" size="500GiB">
+      <prop id="Bwrite" value="60MBps" />
+      <prop id="Bread" value="200MBps" />
+      <prop id="Bconnection" value="220MBps" />
+   </storage_type>
+
+    <storage id="Disk1" typeId="single_HDD" />
+    <storage id="Disk2" typeId="single_SSD"
+             content="content/win_storage_content.txt"
+             content_type="txt_windows" />
+    <storage id="Disk3" typeId="single_HDD" />
+    <storage id="Disk4" typeId="single_SSD"
+             content="content/small_content.txt"
+             content_type="txt_unix" />
+
+    <host id="bob" power="1Gf">
+      <mount storageId="Disk1" name="/home"/>
+    </host>
+
+    <host id="alice" power="1Gf">
+      <mount storageId="Disk2" name="/windows"/>
+    </host>
+
+    <host id="carl" power="1Gf">
+      <mount storageId="Disk3" name="/home"/>
+    </host>
+
+    <host id="denise" power="1Gf">
+      <mount storageId="Disk2" name="/windows"/>       
+      <mount storageId="Disk4" name="/home"/>  
+    </host>
+
+    <link id="link1" bandwidth="125MBps" latency="50us" />
+    <link id="link2" bandwidth="125MBps" latency="50us" />
+    <link id="link3" bandwidth="125MBps" latency="50us" />
+
+    <route src="bob" dst="alice" symmetrical="YES">
+      <link_ctn id="link1" />
+      <link_ctn id="link2" />
+      <link_ctn id="link3" />
+    </route>
+  </AS>
 </platform>
index f5c954a..ad451ae 100644 (file)
@@ -12,8 +12,8 @@ if(enable_scala)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${SCALA_COMPILE} -cp ${SIMGRID_JAR}
+    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
+    COMMAND ${SCALA_COMPILE} -classpath ${SIMGRID_JAR}
                              -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
     COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
     COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
index 6b28603..95bfebb 100644 (file)
@@ -1,7 +1,7 @@
 #! tesh
 
 ! output sort
-$ java -cp ${classpath:=.} master_slave_bypass/MsBypass ${srcdir:=.}/master_slave_bypass/platform.xml
+$ java -classpath ${classpath:=.} master_slave_bypass/MsBypass ${srcdir:=.}/master_slave_bypass/platform.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [0.013010] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [alice:process2:(2) 0.000000] [jmsg/INFO] Slave Hello!
index ca978c6..ebd2979 100644 (file)
@@ -12,8 +12,8 @@ if(enable_scala)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${SCALA_COMPILE} -cp ${SIMGRID_JAR}
+    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
+    COMMAND ${SCALA_COMPILE} -classpath ${SIMGRID_JAR}
                              -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
     COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
     COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
index f22d582..78868a1 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} master_slave_kill/MsKill ${srcdir:=.}/master_slave_kill/platform.xml
+$ java -classpath ${classpath:=.} master_slave_kill/MsKill ${srcdir:=.}/master_slave_kill/platform.xml
 > [0.000000] [jmsg/INFO] Using regular java threads. Coroutines could speed your simulation up.
 > [0.013010] [jmsg/INFO] MSG_main finished; Cleaning up the simulation...
 > [alice:slave:(2) 0.000000] [jmsg/INFO] Slave Hello!
index 54b1029..5c2bccc 100644 (file)
@@ -13,8 +13,8 @@ if(enable_scala)
   add_custom_command(
     COMMENT "Building ${example}..."
     OUTPUT ${example}_compiled
-    DEPENDS ${sources} SG_java_jar ${SIMGRID_JAR}
-    COMMAND ${SCALA_COMPILE} -cp ${SIMGRID_JAR}
+    DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
+    COMMAND ${SCALA_COMPILE} -classpath ${SIMGRID_JAR}
                              -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}
     COMMAND ${CMAKE_COMMAND} -E remove ${example}_compiled
     COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled
index 77a09b5..ee1d207 100644 (file)
@@ -2,7 +2,7 @@
 
 ! output sort
 
-$ java -cp ${classpath:=.} masterslave/Masterslave ${srcdir:=.}/platform.xml ${srcdir:=.}/masterslave/masterslaveDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ java -classpath ${classpath:=.} masterslave/Masterslave ${srcdir:=.}/platform.xml ${srcdir:=.}/masterslave/masterslaveDeployment.xml "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (1:masterslave.Master@Jacquelin) Hello! Got 7 slaves and 5 tasks to process
 > [  0.000000] (2:masterslave.Forwarder@Jackson) Receiving on 'slave_0'
 > [  0.000000] (3:masterslave.Forwarder@Casavant) Receiving on 'slave_1'
index 201b147..928bd2e 100644 (file)
@@ -2,6 +2,7 @@
 
 $ ${bindir:=.}/io/sd_io ${srcdir:=.}/examples/platforms/storage.xml 
 > [0.000000] [sd_io/INFO] Workstation 'denise' mounts '/home'
-> [0.000000] [sd_io/INFO] Workstation 'alice' mounts '/home'
+> [0.000000] [sd_io/INFO] Workstation 'denise' mounts '/windows'
+> [0.000000] [sd_io/INFO] Workstation 'alice' mounts '/windows'
 > [0.000000] [sd_io/INFO] Workstation 'carl' mounts '/home'
 > [0.000000] [sd_io/INFO] Workstation 'bob' mounts '/home'
index f4e160a..f9ce3e8 100644 (file)
@@ -3,9 +3,9 @@
 
 p Simple test of simdag
 
-$ $SG_TEST_EXENV ./simdag_tracing --cfg=tracing:1 --cfg=tracing/categorized:1 ${srcdir:=.}/2clusters.xml
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
+$ $SG_TEST_EXENV ./simdag_tracing --cfg=tracing:yes --cfg=tracing/categorized:yes ${srcdir:=.}/2clusters.xml
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to 'yes'
 > [0.000000] [surf_workstation/INFO] surf_workstation_model_init_ptask_L07
 > [0.000000] [sd_seq_access/INFO] Access mode of C2-05 is sequential
 > [0.000000] [sd_seq_access/INFO] Access mode of C2-06 is sequential
index a53ac43..b2fb9aa 100644 (file)
  XBT_LOG_NEW_DEFAULT_CATEGORY(MM_Summa,
                              "Messages specific for this msg example");
 
-inline double Summa(
-                     double *a, double *b, double *c,
-                     size_t lda, size_t ldb, size_t ldc,
-                     size_t m, size_t k_a, size_t k_b, size_t n,
-                     size_t Block_size, size_t start, size_t end,
-                     size_t row, size_t col, size_t size_row, size_t size_col,
-                     double *a_local, double *b_local,
-                     MPI_Datatype Block_a, MPI_Datatype Block_a_local,
-                     MPI_Datatype Block_b,
-                     MPI_Comm row_comm, MPI_Comm col_comm, int subs)
+double Summa(double *a, double *b, double *c,
+             size_t lda, size_t ldb, size_t ldc,
+             size_t m, size_t k_a, size_t k_b, size_t n,
+             size_t Block_size, size_t start, size_t end,
+             size_t row, size_t col, size_t size_row, size_t size_col,
+             double *a_local, double *b_local,
+             MPI_Datatype Block_a, MPI_Datatype Block_a_local,
+             MPI_Datatype Block_b,
+             MPI_Comm row_comm, MPI_Comm col_comm, int subs)
 {
   double *B_a     , *B_b     ; //matrix blocks
   size_t err;
index 8ab25b9..5e3a3b0 100644 (file)
@@ -389,6 +389,7 @@ c---------------------------------------------------------------------
                write(*, 239) np1*np2, np
  239           format(' Product is ', i5, ' and should be ', i5)
                call MPI_Abort(MPI_COMM_WORLD, 1, ierr)
+               stop
             endif
 
 c---------------------------------------------------------------------
@@ -402,6 +403,7 @@ c---------------------------------------------------------------------
  240           format(' Layout type specified in inputft.data is 
      >                  invalid ')
                call MPI_Abort(MPI_COMM_WORLD, 1, ierr)
+               stop
             endif
 
 c---------------------------------------------------------------------
@@ -413,6 +415,7 @@ c---------------------------------------------------------------------
                write(*, 241)
  241           format(' For 0D layout, both np1 and np2 must be 1 ')
                call MPI_Abort(MPI_COMM_WORLD, 1, ierr)
+               stop
             endif
 c---------------------------------------------------------------------
 c 4. 1D layout must be 1xN grid
@@ -422,6 +425,7 @@ c---------------------------------------------------------------------
                write(*, 242)
  242           format(' For 1D layout, np1 must be 1 ')
                call MPI_Abort(MPI_COMM_WORLD, 1, ierr)
+               stop
             endif
 
          else
@@ -448,6 +452,7 @@ c---------------------------------------------------------------------
             write(*, 11) np
  11         format(' Only ',  i5, ' processors found ')
             call MPI_Abort(MPI_COMM_WORLD, 1, ierr)
+            stop
          endif
 
  234     format(' No input file inputft.data. Using compiled defaults')
diff --git a/examples/smpi/energy/CMakeLists.txt b/examples/smpi/energy/CMakeLists.txt
new file mode 100644 (file)
index 0000000..76ddc39
--- /dev/null
@@ -0,0 +1,40 @@
+cmake_minimum_required(VERSION 2.6)
+
+if(enable_smpi)
+  if(WIN32)
+    set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
+  else()
+    set(CMAKE_C_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpicc")
+  endif()
+
+  set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
+  include_directories("${CMAKE_HOME_DIRECTORY}/include/smpi")
+
+  add_executable(se se.c)
+  target_link_libraries(se simgrid)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/energy.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/platform.xml
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${CMAKE_CURRENT_SOURCE_DIR}/se.c
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/hostfile
+  PARENT_SCOPE
+  )
diff --git a/examples/smpi/energy/energy.tesh b/examples/smpi/energy/energy.tesh
new file mode 100644 (file)
index 0000000..aac0673
--- /dev/null
@@ -0,0 +1,17 @@
+p Test smpi bindings for dvfs functions (C example)
+$ ../../../smpi_script/bin/smpirun -np 2 -hostfile ${srcdir:=.}/hostfile  -platform ${srcdir:=.}/platform.xml --cfg=smpi/cpu_threshold:-1 ${bindir:=.}/se
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
+> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
+> [0.000000] [rank 1] Pstates: 1; Powers: 100000000
+> [0.000000] [rank 0] Pstates: 3; Powers: 100000000, 50000000, 20000000
+> [0.000000] [rank 1] Current pstate: 0; Current power: 100000000
+> [0.000000] [rank 0] Current pstate: 0; Current power: 100000000
+> [10.000000] [rank 1] Energy consumed: 2000 Joules.
+> [10.000000] [rank 0] Energy consumed: 2000 Joules.
+> [10.000000] [rank 0] Current pstate: 1; Current power: 50000000
+> [30.000000] [rank 0] Energy consumed: 5400 Joules.
+> [30.000000] [rank 0] Current pstate: 2; Current power: 20000000
+> [80.000000] [rank 0] Energy consumed: 12900 Joules.
diff --git a/examples/smpi/energy/f77/CMakeLists.txt b/examples/smpi/energy/f77/CMakeLists.txt
new file mode 100644 (file)
index 0000000..52709c2
--- /dev/null
@@ -0,0 +1,33 @@
+cmake_minimum_required(VERSION 2.6)
+
+if(enable_smpi AND SMPI_F2C)
+  set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpiff")
+
+  set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
+
+  add_executable(sef sef.f)
+  target_link_libraries(sef simgrid)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/energy.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${CMAKE_CURRENT_SOURCE_DIR}/sef.f
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
diff --git a/examples/smpi/energy/f77/energy.tesh b/examples/smpi/energy/f77/energy.tesh
new file mode 100644 (file)
index 0000000..10ccab9
--- /dev/null
@@ -0,0 +1,21 @@
+p Test smpi bindings for dvfs functions (Fortran 77 example)
+$ ../../../smpi_script/bin/smpirun -np 2 -hostfile ${srcdir:=.}/hostfile  -platform ${srcdir:=.}/platform.xml --cfg=smpi/cpu_threshold:-1 ${bindir:=.}/f77/sef
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
+> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
+>  [  0.] [rank  0] 3 pstates available
+>  [  0.] [rank  1] 1 pstates available
+>  [  0.] [rank  0] Power:   100000000.
+>  [  0.] [rank  1] Power:   100000000.
+>  [  0.] [rank  0] Power:   50000000.
+>  [  0.] [rank  0] Power:   20000000.
+>  [  0.] [rank  1] Current pstate:  0; Current power:   100000000.
+>  [  0.] [rank  0] Current pstate:  0; Current power:   100000000.
+>  [  10.] [rank  1] Energy consumed (Joules):   2000.
+>  [  10.] [rank  0] Energy consumed (Joules):   2000.
+>  [  10.] [rank  0] Current pstate:  1; Current power:   50000000.
+>  [  30.] [rank  0] Energy consumed (Joules):   5400.
+>  [  30.] [rank  0] Current pstate:  2; Current power:   20000000.
+>  [  80.] [rank  0] Energy consumed (Joules):   12900.
diff --git a/examples/smpi/energy/f77/sef.f b/examples/smpi/energy/f77/sef.f
new file mode 100644 (file)
index 0000000..425c879
--- /dev/null
@@ -0,0 +1,42 @@
+      program main
+      include 'mpif.h'
+
+      integer ierr
+      integer rank, pstates
+      integer i
+      double precision p, t, e
+
+      call MPI_Init(ierr)
+      call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)
+
+      pstates = smpi_get_host_nb_pstates()
+
+      t = MPI_Wtime()
+
+      print *, '[', t, '] [rank ', rank, ']',
+     &     pstates, ' pstates available'
+
+      do i = 0, pstates - 1
+         p = smpi_get_host_power_peak_at(i)
+         print *, '[', t, '] [rank ', rank, '] Power: ', p
+      end do
+
+      do i = 0, pstates - 1
+         call smpi_set_host_power_peak_at(i)
+         t = MPI_Wtime()
+         p = smpi_get_host_current_power_peak()
+         print *, '[', t, '] [rank ', rank, '] Current pstate: ', i,
+     &        '; Current power: ', p
+
+         e = 1e9
+         call smpi_execute_flops(e)
+
+         t = MPI_Wtime()
+         e = smpi_get_host_consumed_energy()
+         print *, '[', t, '] [rank ', rank, ']',
+     &        ' Energy consumed (Joules): ', e
+      end do
+
+      call MPI_Finalize(ierr)
+
+      end program main
diff --git a/examples/smpi/energy/f90/CMakeLists.txt b/examples/smpi/energy/f90/CMakeLists.txt
new file mode 100644 (file)
index 0000000..84b55b5
--- /dev/null
@@ -0,0 +1,33 @@
+cmake_minimum_required(VERSION 2.6)
+
+if(enable_smpi AND SMPI_F90)
+  set(CMAKE_Fortran_COMPILER "${CMAKE_BINARY_DIR}/smpi_script/bin/smpif90")
+
+  set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
+
+  add_executable(sef90 sef90.f90)
+  target_link_libraries(sef90 simgrid)
+endif()
+
+set(tesh_files
+  ${tesh_files}
+  ${CMAKE_CURRENT_SOURCE_DIR}/energy.tesh
+  PARENT_SCOPE
+  )
+set(xml_files
+  ${xml_files}
+  PARENT_SCOPE
+  )
+set(examples_src
+  ${examples_src}
+  ${CMAKE_CURRENT_SOURCE_DIR}/sef90.f90
+  PARENT_SCOPE
+  )
+set(bin_files
+  ${bin_files}
+  PARENT_SCOPE
+  )
+set(txt_files
+  ${txt_files}
+  PARENT_SCOPE
+  )
diff --git a/examples/smpi/energy/f90/energy.tesh b/examples/smpi/energy/f90/energy.tesh
new file mode 100644 (file)
index 0000000..fe1859b
--- /dev/null
@@ -0,0 +1,21 @@
+p Test smpi bindings for dvfs functions (Fortran 90 example)
+$ ../../../smpi_script/bin/smpirun -np 2 -hostfile ${srcdir:=.}/hostfile  -platform ${srcdir:=.}/platform.xml --cfg=smpi/cpu_threshold:-1 ${bindir:=.}/f90/sef90
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
+> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
+>  [   0.0000000000000000      ] [rank            0 ]           3 pstates available
+>  [   0.0000000000000000      ] [rank            1 ]           1 pstates available
+>  [   0.0000000000000000      ] [rank            0 ] Power:    100000000.00000000     
+>  [   0.0000000000000000      ] [rank            1 ] Power:    100000000.00000000     
+>  [   0.0000000000000000      ] [rank            0 ] Power:    50000000.000000000     
+>  [   0.0000000000000000      ] [rank            0 ] Power:    20000000.000000000     
+>  [   0.0000000000000000      ] [rank            1 ] Current pstate:            0 ; Current power:    100000000.00000000     
+>  [   0.0000000000000000      ] [rank            0 ] Current pstate:            0 ; Current power:    100000000.00000000     
+>  [   10.000000000000000      ] [rank            1 ] Energy consumed (Joules):    2000.0000000000000     
+>  [   10.000000000000000      ] [rank            0 ] Energy consumed (Joules):    2000.0000000000000     
+>  [   10.000000000000000      ] [rank            0 ] Current pstate:            1 ; Current power:    50000000.000000000     
+>  [   30.000000000000000      ] [rank            0 ] Energy consumed (Joules):    5400.0000000000000     
+>  [   30.000000000000000      ] [rank            0 ] Current pstate:            2 ; Current power:    20000000.000000000     
+>  [   80.000000000000000      ] [rank            0 ] Energy consumed (Joules):    12900.000000000000     
diff --git a/examples/smpi/energy/f90/sef90.f90 b/examples/smpi/energy/f90/sef90.f90
new file mode 100644 (file)
index 0000000..59b3fbf
--- /dev/null
@@ -0,0 +1,38 @@
+program main
+  use mpi
+
+  integer ierr
+  integer rank, pstates
+  integer i
+  double precision p, t, e
+
+  call MPI_Init(ierr)
+  call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)
+
+  pstates = smpi_get_host_nb_pstates()
+
+  t = MPI_Wtime()
+
+  print *, '[', t, '] [rank ', rank, ']', pstates, 'pstates available'
+  do i = 0, pstates - 1
+     p = smpi_get_host_power_peak_at(i)
+     print *, '[', t, '] [rank ', rank, '] Power: ', p
+  end do
+
+  do i = 0, pstates - 1
+     call smpi_set_host_power_peak_at(i)
+     t = MPI_Wtime()
+     p = smpi_get_host_current_power_peak()
+     print *, '[', t, '] [rank ', rank, '] Current pstate: ', i, '; Current power: ', p
+
+     e = 1e9
+     call smpi_execute_flops(e)
+
+     t = MPI_Wtime()
+     e = smpi_get_host_consumed_energy()
+     print *, '[', t, '] [rank ', rank, '] Energy consumed (Joules): ', e
+  end do
+
+  call MPI_Finalize(ierr)
+
+end program main
diff --git a/examples/smpi/energy/hostfile b/examples/smpi/energy/hostfile
new file mode 100644 (file)
index 0000000..4b0f37f
--- /dev/null
@@ -0,0 +1,2 @@
+MyHost1
+MyHost2
diff --git a/examples/smpi/energy/platform.xml b/examples/smpi/energy/platform.xml
new file mode 100644 (file)
index 0000000..ad57cca
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version='1.0'?>
+<!DOCTYPE platform SYSTEM "http://simgrid.gforge.inria.fr/simgrid.dtd">
+<platform version="3">
+<AS  id="AS0"  routing="Full">
+  <!-- Multiple pstate processor capacities can be defined as a list of powers specified for a given host -->
+  <!-- The enabled pstate can be set through the "pstate" attribute (lowest pstate corresponds to the highest processor power) -->
+  <host id="MyHost1" power="100.0Mf,50.0Mf,20.0Mf" pstate="0" >
+        <!--  List of min_power:max_power pairs (in Watts) corresponding to the power consumed when the processor is idle and when it is fully loaded -->
+        <!--  The list must contain one power pair for each previously defined pstate-->
+        <prop id="power_per_state" value="95.0:200.0, 93.0:170.0, 90.0:150.0" />
+  </host>
+  <host id="MyHost2" power="100.0Mf" >
+        <prop id="power_per_state" value="95.0:200.0" />
+  </host>
+</AS>
+</platform>
diff --git a/examples/smpi/energy/se.c b/examples/smpi/energy/se.c
new file mode 100644 (file)
index 0000000..6632e3d
--- /dev/null
@@ -0,0 +1,57 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <mpi.h>
+#include <smpi/smpi.h>
+
+int main(int argc, char *argv[])
+{
+  int rank, pstates;
+  int i;
+  char buf[1024];
+  char *s;
+  size_t sz, x;
+
+  if (MPI_Init(&argc, &argv) != MPI_SUCCESS) {
+    printf("MPI initialization failed!\n");
+    exit(EXIT_FAILURE);
+  }
+
+  MPI_Comm_rank(MPI_COMM_WORLD, &rank);   /* Get id of this process */
+
+  pstates = smpi_get_host_nb_pstates();
+
+  s = buf;
+  sz = sizeof buf;
+  x = snprintf(s, sz,
+               "[%.6f] [rank %d] Pstates: %d; Powers: %.0f",
+               MPI_Wtime(), rank, pstates, smpi_get_host_power_peak_at(0));
+  if (x < sz) {
+    s += x;
+    sz -= x;
+  } else
+    sz = 0;
+  for (i = 1; i < pstates; i++) {
+    x = snprintf(s, sz, ", %.0f", smpi_get_host_power_peak_at(i));
+    if (x < sz) {
+      s += x;
+      sz -= x;
+    } else
+      sz = 0;
+  }
+  printf("%s%s\n", buf, (sz ? "" : " [...]"));
+
+  for (i = 0; i < pstates; i++) {
+    smpi_set_host_power_peak_at(i);
+    printf("[%.6f] [rank %d] Current pstate: %d; Current power: %.0f\n",
+           MPI_Wtime(), rank, i, smpi_get_host_current_power_peak());
+
+    SMPI_SAMPLE_FLOPS(1e9) {
+      /* imagine here some code running for 1e9 flops... */
+    }
+
+    printf("[%.6f] [rank %d] Energy consumed: %g Joules.\n",
+           MPI_Wtime(), rank, smpi_get_host_consumed_energy());
+  }
+
+  return MPI_Finalize();
+}
index 3bafdf8..5ebcc62 100644 (file)
@@ -2,9 +2,9 @@
 1 init
 2 init
 
-0 allReduce 5e8 5e8
-1 allReduce 5e8 5e8
-2 allReduce 5e8 5e8
+0 allReduce 5e4 5e8
+1 allReduce 5e4 5e8
+2 allReduce 5e4 5e8
 
 0 compute 5e8
 1 compute 5e8
index f392b82..4aeb855 100644 (file)
@@ -2,25 +2,25 @@
 1 init
 2 init
 
-0 bcast 5e8
-1 bcast 5e8
-2 bcast 5e8
+0 bcast 5e4
+1 bcast 5e4
+2 bcast 5e4
 
 0 compute 5e8
 1 compute 2e8
 2 compute 5e8
 
-0 bcast 5e8
-1 bcast 5e8
-2 bcast 5e8
+0 bcast 5e4
+1 bcast 5e4
+2 bcast 5e4
 
 0 compute 5e8
 1 compute 2e8
 2 compute 5e8
 
-0 reduce 5e8 5e8
-1 reduce 5e8 5e8
-2 reduce 5e8 5e8
+0 reduce 5e4 5e8
+1 reduce 5e4 5e8
+2 reduce 5e4 5e8
 
 0 finalize
 1 finalize
index 69545b7..cbf6971 100644 (file)
@@ -2,25 +2,25 @@
 1 init 1
 2 init 1
 
-0 bcast 5e8 1 0
-1 bcast 5e8 1 0
-2 bcast 5e8 1 0
+0 bcast 5e4 1 0
+1 bcast 5e4 1 0
+2 bcast 5e4 1 0
 
 0 compute 5e8
 1 compute 2e8
 2 compute 5e8
 
-0 bcast 5e8 0 3
-1 bcast 5e8 0 3
-2 bcast 5e8 0 3
+0 bcast 5e4 0 3
+1 bcast 5e4 0 3
+2 bcast 5e4 0 3
 
 0 compute 5e8
 1 compute 2e8
 2 compute 5e8
 
-0 reduce 5e8 5e8 0 4
-1 reduce 5e8 5e8 0 4
-2 reduce 5e8 5e8 0 4
+0 reduce 5e4 5e8 0 4
+1 reduce 5e4 5e8 0 4
+2 reduce 5e4 5e8 0 4
 
 0 finalize
 1 finalize
index 6580e06..ac91f0f 100644 (file)
@@ -7,7 +7,7 @@
 1 reduceScatter 275427 275427 275427 204020 12396024 0
 2 reduceScatter 275427 275427 275427 204020 12501522 0
 3 reduceScatter 275427 275427 275427 204020 12403123 0
-~                                                                    
+
 0 finalize
 1 finalize
 2 finalize
index edc93a6..3e1f455 100644 (file)
@@ -2,19 +2,19 @@
 1 init
 2 init
 
-0 send 1 1e9
+0 send 1 1e6
 0 compute 1e9
-0 recv 2 1e9
+0 recv 2 1e6
 
-1 Irecv 0 1e9
+1 Irecv 0 1e6
 1 compute 1e9
 1 wait
-1 send 2 1e9
+1 send 2 1e6
 
-2 Irecv 1 1e9
+2 Irecv 1 1e6
 2 compute 5e8
 2 wait
-2 Isend 0 1e9
+2 Isend 0 1e6
 2 compute 5e8
 
 0 finalize
index 94681e7..15704d3 100644 (file)
@@ -8,28 +8,28 @@ p Test of trace replay with SMPI (one trace for all processes)
 $ mkfile replay/one_trace
 ! timeout 60
 
-$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:-1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
-> [Fafard:2:(0) 65.176535] [smpi_replay/VERBOSE] 2 bcast 5e8 65.176535
-> [Fafard:2:(0) 71.729958] [smpi_replay/VERBOSE] 2 compute 5e8 6.553424
-> [Jupiter:1:(0) 73.739750] [smpi_replay/VERBOSE] 1 bcast 5e8 73.739750
-> [Tremblay:0:(0) 73.739750] [smpi_replay/VERBOSE] 0 bcast 5e8 73.739750
-> [Jupiter:1:(0) 76.361119] [smpi_replay/VERBOSE] 1 compute 2e8 2.621369
-> [Tremblay:0:(0) 78.836850] [smpi_replay/VERBOSE] 0 compute 5e8 5.097100
-> [Fafard:2:(0) 144.013385] [smpi_replay/VERBOSE] 2 bcast 5e8 72.283426
-> [Fafard:2:(0) 150.566808] [smpi_replay/VERBOSE] 2 compute 5e8 6.553424
-> [Jupiter:1:(0) 152.576600] [smpi_replay/VERBOSE] 1 bcast 5e8 76.215480
-> [Tremblay:0:(0) 152.576600] [smpi_replay/VERBOSE] 0 bcast 5e8 73.739750
-> [Jupiter:1:(0) 155.197969] [smpi_replay/VERBOSE] 1 compute 2e8 2.621369
-> [Tremblay:0:(0) 157.673699] [smpi_replay/VERBOSE] 0 compute 5e8 5.097100
-> [Fafard:2:(0) 229.403658] [smpi_replay/VERBOSE] 2 reduce 5e8 5e8 78.836850
-> [Tremblay:0:(0) 236.510549] [smpi_replay/VERBOSE] 0 reduce 5e8 5e8 78.836850
-> [Jupiter:1:(0) 237.966873] [smpi_replay/VERBOSE] 1 reduce 5e8 5e8 82.768904
-> [Jupiter:1:(0) 237.966873] [smpi_replay/INFO] Simulation time 237.967
+> [Tremblay:0:(0) 0.000000] [smpi_replay/VERBOSE] 0 bcast 5e4 0.000000
+> [Jupiter:1:(0) 0.015036] [smpi_replay/VERBOSE] 1 bcast 5e4 0.015036
+> [Fafard:2:(0) 0.015676] [smpi_replay/VERBOSE] 2 bcast 5e4 0.015676
+> [Jupiter:1:(0) 2.636405] [smpi_replay/VERBOSE] 1 compute 2e8 2.621369
+> [Tremblay:0:(0) 5.097100] [smpi_replay/VERBOSE] 0 compute 5e8 5.097100
+> [Tremblay:0:(0) 5.097100] [smpi_replay/VERBOSE] 0 bcast 5e4 0.000000
+> [Jupiter:1:(0) 5.112136] [smpi_replay/VERBOSE] 1 bcast 5e4 2.475730
+> [Fafard:2:(0) 6.569099] [smpi_replay/VERBOSE] 2 compute 5e8 6.553424
+> [Fafard:2:(0) 6.584775] [smpi_replay/VERBOSE] 2 bcast 5e4 0.015676
+> [Jupiter:1:(0) 7.733505] [smpi_replay/VERBOSE] 1 compute 2e8 2.621369
+> [Tremblay:0:(0) 10.194200] [smpi_replay/VERBOSE] 0 compute 5e8 5.097100
+> [Fafard:2:(0) 13.138198] [smpi_replay/VERBOSE] 2 compute 5e8 6.553424
+> [Jupiter:1:(0) 14.286929] [smpi_replay/VERBOSE] 1 reduce 5e4 5e8 6.553424
+> [Tremblay:0:(0) 18.250974] [smpi_replay/VERBOSE] 0 reduce 5e4 5e8 8.056774
+> [Fafard:2:(0) 19.691622] [smpi_replay/VERBOSE] 2 reduce 5e4 5e8 6.553424
+> [Fafard:2:(0) 19.691622] [smpi_replay/INFO] Simulation time 19.691622
 
 $ rm -f replay/one_trace
 
@@ -38,16 +38,16 @@ p The same with tracing activated
 < replay/actions_bcast.txt
 $ mkfile replay/one_trace
 
-$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=no_loc  --cfg=tracing:1 --cfg=tracing/smpi:1 --cfg=tracing/smpi/computing:1 --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=no_loc  --cfg=tracing:yes --cfg=tracing/smpi:yes --cfg=tracing/smpi/computing:yes --cfg=smpi/cpu_threshold:-1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/computing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/computing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
-> [Jupiter:1:(0) 237.966873] [smpi_replay/INFO] Simulation time 237.967
+> [Fafard:2:(0) 19.691622] [smpi_replay/INFO] Simulation time 19.691622
 
 $ rm -f replay/one_trace
 
@@ -166,55 +166,60 @@ $ tail -n +3 ./simgrid.trace
 > 4 3 0 1 1 MPI_LINK
 > 6 0 1 1 0 "rank-0"
 > 5 4 2 computing "0 1 1"
-> 5 5 2 action_bcast "0 0.78 0.39"
+> 5 5 2 smpi_replay_init "0 1 0"
+> 5 6 2 action_bcast "0 0.78 0.39"
 > 6 0 2 1 0 "rank-1"
 > 6 0 3 1 0 "rank-2"
 > 12 0 2 1 4
-> 13 0 2 1
 > 12 0 2 1 5
+> 13 0 2 1
+> 12 0 2 1 6
 > 12 0 2 2 4
-> 13 0 2 2
 > 12 0 2 2 5
+> 13 0 2 2
+> 12 0 2 2 6
 > 12 0 2 3 4
-> 13 0 2 3
 > 12 0 2 3 5
-> 13 65.176535 2 3
-> 12 65.176535 2 3 4
-> 13 71.729958 2 3
-> 12 71.729958 2 3 5
-> 13 73.739750 2 2
-> 12 73.739750 2 2 4
-> 13 73.739750 2 1
-> 12 73.739750 2 1 4
-> 5 6 2 action_reduce "0 1 0"
-> 13 76.361119 2 2
-> 12 76.361119 2 2 5
-> 13 78.836850 2 1
-> 12 78.836850 2 1 5
-> 13 144.013385 2 3
-> 12 144.013385 2 3 4
-> 13 150.566808 2 3
-> 12 150.566808 2 3 6
-> 13 152.576600 2 2
-> 12 152.576600 2 2 4
-> 13 152.576600 2 1
-> 12 152.576600 2 1 4
-> 13 155.197969 2 2
-> 12 155.197969 2 2 6
-> 13 157.673699 2 1
-> 12 157.673699 2 1 6
-> 13 229.403658 2 3
-> 12 229.403658 2 3 4
-> 13 236.510549 2 1
-> 12 236.510549 2 1 4
-> 13 237.966873 2 2
-> 12 237.966873 2 2 4
-> 13 237.972762 2 2
-> 7 237.972762 1 2
-> 13 237.973799 2 3
-> 7 237.973799 1 3
-> 13 237.979818 2 1
-> 7 237.979818 1 1
+> 13 0 2 3
+> 12 0 2 3 6
+> 13 0 2 1
+> 12 0 2 1 4
+> 13 0.015036 2 2
+> 12 0.015036 2 2 4
+> 13 0.015676 2 3
+> 12 0.015676 2 3 4
+> 13 2.636405 2 2
+> 12 2.636405 2 2 6
+> 13 5.097100 2 1
+> 12 5.097100 2 1 6
+> 13 5.097100 2 1
+> 12 5.097100 2 1 4
+> 5 7 2 action_reduce "0 1 0"
+> 13 5.112136 2 2
+> 12 5.112136 2 2 4
+> 13 6.569099 2 3
+> 12 6.569099 2 3 6
+> 13 6.584775 2 3
+> 12 6.584775 2 3 4
+> 13 7.733505 2 2
+> 12 7.733505 2 2 7
+> 13 10.194200 2 1
+> 12 10.194200 2 1 7
+> 13 13.138198 2 3
+> 12 13.138198 2 3 7
+> 5 8 2 smpi_replay_finalize "0 1 0"
+> 13 14.286929 2 2
+> 13 18.250974 2 1
+> 13 19.691622 2 3
+> 12 19.695603 2 1 8
+> 12 19.698548 2 2 8
+> 13 19.698548 2 2
+> 7 19.698548 1 2
+> 12 19.699584 2 3 8
+> 13 19.699584 2 3
+> 7 19.699584 1 3
+> 13 19.705603 2 1
+> 7 19.705603 1 1
 
 
 $ rm -f ./simgrid.trace
@@ -225,11 +230,11 @@ p Another test of trace replay with SMPI (one trace per process)
 < replay/actions1.txt
 $ mkfile ./split_traces_tesh
 
-$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 2 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay ./split_traces_tesh
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:-1 -np 2 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay ./split_traces_tesh
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 > [Tremblay:0:(0) 0.164463] [smpi_replay/VERBOSE] 0 send 1 1e6 0.164463
 > [Jupiter:1:(0) 0.164463] [smpi_replay/VERBOSE] 1 recv 0 1e6 0.164463
@@ -239,7 +244,7 @@ $ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --
 > [Tremblay:0:(0) 13.435773] [smpi_replay/VERBOSE] 0 recv 1 1e6 13.271310
 > [Jupiter:1:(0) 13.600235] [smpi_replay/VERBOSE] 1 wait 0.328926
 > [Tremblay:0:(0) 13.600235] [smpi_replay/VERBOSE] 0 send 1 1e6 0.164463
-> [Tremblay:0:(0) 13.600235] [smpi_replay/INFO] Simulation time 13.6002
+> [Jupiter:1:(0) 13.600235] [smpi_replay/INFO] Simulation time 13.600235
 
 $ rm -f ./split_traces_tesh
 
@@ -248,11 +253,11 @@ p Test of barrier replay with SMPI (one trace for all processes)
 < replay/actions_barrier.txt
 $ mkfile replay/one_trace
 
-$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:-1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 > [Tremblay:0:(0) 1.491472] [smpi_replay/VERBOSE] 0 send 1 1e7 1.491472
 > [Jupiter:1:(0) 1.491472] [smpi_replay/VERBOSE] 1 recv 0 1e7 1.491472
@@ -262,7 +267,7 @@ $ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --
 > [Tremblay:0:(0) 2.495453] [smpi_replay/VERBOSE] 0 compute 98095000 1.000000
 > [Jupiter:1:(0) 2.498398] [smpi_replay/VERBOSE] 1 compute 76296000 1.000000
 > [Fafard:2:(0) 2.499434] [smpi_replay/VERBOSE] 2 compute 76296000 1.000000
-> [Fafard:2:(0) 2.499434] [smpi_replay/INFO] Simulation time 2.49943
+> [Fafard:2:(0) 2.499434] [smpi_replay/INFO] Simulation time 2.499434
 
 $ rm -f replay/one_trace
 
@@ -271,25 +276,26 @@ p Test of Isend replay with SMPI (one trace for all processes)
 < replay/actions_with_isend.txt
 $ mkfile replay/one_trace
 
-$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:-1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
-> [Jupiter:1:(0) 0.000000] [smpi_replay/VERBOSE] 1 Irecv 0 1e9 0.000000
-> [Fafard:2:(0) 0.000000] [smpi_replay/VERBOSE] 2 Irecv 1 1e9 0.000000
+> [Jupiter:1:(0) 0.000000] [smpi_replay/VERBOSE] 1 Irecv 0 1e6 0.000000
+> [Fafard:2:(0) 0.000000] [smpi_replay/VERBOSE] 2 Irecv 1 1e6 0.000000
+> [Tremblay:0:(0) 0.164463] [smpi_replay/VERBOSE] 0 send 1 1e6 0.164463
 > [Fafard:2:(0) 6.553424] [smpi_replay/VERBOSE] 2 compute 5e8 6.553424
+> [Tremblay:0:(0) 10.358662] [smpi_replay/VERBOSE] 0 compute 1e9 10.194200
 > [Jupiter:1:(0) 13.106847] [smpi_replay/VERBOSE] 1 compute 1e9 13.106847
-> [Tremblay:0:(0) 147.462483] [smpi_replay/VERBOSE] 0 send 1 1e9 147.462483
-> [Jupiter:1:(0) 147.462483] [smpi_replay/VERBOSE] 1 wait 134.355636
-> [Tremblay:0:(0) 157.656682] [smpi_replay/VERBOSE] 0 compute 1e9 10.194200
-> [Fafard:2:(0) 294.947973] [smpi_replay/VERBOSE] 2 wait 288.394550
-> [Jupiter:1:(0) 294.947973] [smpi_replay/VERBOSE] 1 send 2 1e9 147.485491
-> [Fafard:2:(0) 294.947973] [smpi_replay/VERBOSE] 2 Isend 0 1e9 0.000000
-> [Fafard:2:(0) 301.501397] [smpi_replay/VERBOSE] 2 compute 5e8 6.553424
-> [Tremblay:0:(0) 425.278035] [smpi_replay/VERBOSE] 0 recv 2 1e9 267.621353
-> [Tremblay:0:(0) 425.278035] [smpi_replay/INFO] Simulation time 425.278
+> [Jupiter:1:(0) 13.106847] [smpi_replay/VERBOSE] 1 wait 0.000000
+> [Fafard:2:(0) 13.294318] [smpi_replay/VERBOSE] 2 wait 6.740894
+> [Jupiter:1:(0) 13.294318] [smpi_replay/VERBOSE] 1 send 2 1e6 0.187471
+> [Fafard:2:(0) 13.294318] [smpi_replay/VERBOSE] 2 Isend 0 1e6 0.000000
+> [Tremblay:0:(0) 13.447633] [smpi_replay/VERBOSE] 0 recv 2 1e6 3.088971
+> [Fafard:2:(0) 19.847741] [smpi_replay/VERBOSE] 2 compute 5e8 6.553424
+> [Fafard:2:(0) 19.847741] [smpi_replay/INFO] Simulation time 19.847741
+
 
 $ rm -f replay/one_trace
 
@@ -298,19 +304,19 @@ p Test of Isend replay with SMPI (one trace for all processes)
 < replay/actions_allReduce.txt
 $ mkfile replay/one_trace
 
-$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:-1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
-> [Fafard:2:(0) 144.013385] [smpi_replay/VERBOSE] 2 allReduce 5e8 5e8 144.013385
-> [Fafard:2:(0) 150.566808] [smpi_replay/VERBOSE] 2 compute 5e8 6.553424
-> [Jupiter:1:(0) 154.032923] [smpi_replay/VERBOSE] 1 allReduce 5e8 5e8 154.032923
-> [Tremblay:0:(0) 154.032923] [smpi_replay/VERBOSE] 0 allReduce 5e8 5e8 154.032923
-> [Tremblay:0:(0) 159.130023] [smpi_replay/VERBOSE] 0 compute 5e8 5.097100
-> [Jupiter:1:(0) 160.586347] [smpi_replay/VERBOSE] 1 compute 5e8 6.553424
-> [Jupiter:1:(0) 160.586347] [smpi_replay/INFO] Simulation time 160.586
+> [Tremblay:0:(0) 5.112775] [smpi_replay/VERBOSE] 0 allReduce 5e4 5e8 5.112775
+> [Jupiter:1:(0) 6.568459] [smpi_replay/VERBOSE] 1 allReduce 5e4 5e8 6.568459
+> [Fafard:2:(0) 6.569099] [smpi_replay/VERBOSE] 2 allReduce 5e4 5e8 6.569099
+> [Tremblay:0:(0) 10.209875] [smpi_replay/VERBOSE] 0 compute 5e8 5.097100
+> [Jupiter:1:(0) 13.121883] [smpi_replay/VERBOSE] 1 compute 5e8 6.553424
+> [Fafard:2:(0) 13.122523] [smpi_replay/VERBOSE] 2 compute 5e8 6.553424
+> [Fafard:2:(0) 13.122523] [smpi_replay/INFO] Simulation time 13.122523
 
 $ rm -f replay/one_trace
 
@@ -319,16 +325,16 @@ p Test of AllToAll replay with SMPI (one trace for all processes)
 < replay/actions_alltoall.txt
 $ mkfile replay/one_trace
 
-$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:-1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 > [Tremblay:0:(0) 0.004041] [smpi_replay/VERBOSE] 0 allToAll 500 500 0.004041
 > [Jupiter:1:(0) 0.006920] [smpi_replay/VERBOSE] 1 allToAll 500 500 0.006920
 > [Fafard:2:(0) 0.006920] [smpi_replay/VERBOSE] 2 allToAll 500 500 0.006920
-> [Fafard:2:(0) 0.006920] [smpi_replay/INFO] Simulation time 0.00692004
+> [Fafard:2:(0) 0.006920] [smpi_replay/INFO] Simulation time 0.006920
 
 $ rm -f replay/one_trace
 
@@ -337,16 +343,16 @@ p Test of AllToAllv replay with SMPI (one trace for all processes)
 < replay/actions_alltoallv.txt
 $ mkfile replay/one_trace
 
-$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:-1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 > [Tremblay:0:(0) 0.003999] [smpi_replay/VERBOSE] 0 allToAllV 100 1 40 30 1000 1 80 100 0.003999
 > [Jupiter:1:(0) 0.006934] [smpi_replay/VERBOSE] 1 allToAllV 1000 80 1 40 1000 40 1 30 0.006934
 > [Fafard:2:(0) 0.006936] [smpi_replay/VERBOSE] 2 allToAllV 1000 100 30 1 1000 30 40 1 0.006936
-> [Fafard:2:(0) 0.006936] [smpi_replay/INFO] Simulation time 0.00693554
+> [Fafard:2:(0) 0.006936] [smpi_replay/INFO] Simulation time 0.006936
 
 $ rm -f replay/one_trace
 
@@ -355,16 +361,16 @@ p Test of AllGatherv replay with SMPI (one trace for all processes)
 < replay/actions_allgatherv.txt
 $ mkfile replay/one_trace
 
-$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:-1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 > [Tremblay:0:(0) 0.841244] [smpi_replay/VERBOSE] 0 allGatherV 275427 275427 275427 275427 204020 0 0 0.841244
 > [Fafard:2:(0) 1.239482] [smpi_replay/VERBOSE] 2 allGatherV 275427 275427 275427 275427 204020 0 0 1.239482
 > [Jupiter:1:(0) 1.239482] [smpi_replay/VERBOSE] 1 allGatherV 275427 275427 275427 275427 204020 0 0 1.239482
-> [Jupiter:1:(0) 1.239482] [smpi_replay/INFO] Simulation time 1.23948
+> [Jupiter:1:(0) 1.239482] [smpi_replay/INFO] Simulation time 1.239482
 
 $ rm -f replay/one_trace
 
@@ -373,11 +379,11 @@ p Test of waitall replay with SMPI (one trace for all processes)
 < replay/actions_waitall.txt
 $ mkfile replay/one_trace
 
-$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/cpu_threshold:-1 -np 3 -platform ${srcdir:=.}/replay/replay_platform.xml -hostfile ${srcdir:=.}/hostfile ./smpi_replay replay/one_trace
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 > [Tremblay:0:(0) 0.000000] [smpi_replay/VERBOSE] 0 Irecv 1 2000 0.000000
 > [Jupiter:1:(0) 0.000000] [smpi_replay/VERBOSE] 1 Isend 0 2000 0.000000
@@ -388,6 +394,6 @@ $ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.thresh:critical --
 > [Fafard:2:(0) 0.000000] [smpi_replay/VERBOSE] 2 Isend 0 3000 0.000000
 > [Tremblay:0:(0) 0.003787] [smpi_replay/VERBOSE] 0 waitAll 0.003787
 > [Fafard:2:(0) 0.006220] [smpi_replay/VERBOSE] 2 waitAll 0.006220
-> [Fafard:2:(0) 0.006220] [smpi_replay/INFO] Simulation time 0.00622039
+> [Fafard:2:(0) 0.006220] [smpi_replay/INFO] Simulation time 0.006220
 
 $ rm -f replay/one_trace
index 2e5c4c2..b983230 100644 (file)
@@ -4,11 +4,11 @@
 
 p Test instrumentation of SMPI
 $ ../../smpi_script/bin/smpirun -trace -trace-resource -trace-file smpi_traced.trace -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../msg/tracing/platform.xml -np 3 ./smpi_traced
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_traced.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes'
+> [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 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
@@ -16,11 +16,11 @@ $ ../../smpi_script/bin/smpirun -trace -trace-resource -trace-file smpi_traced.t
 
 p Another SMPI test
 $ ../../smpi_script/bin/smpirun -trace -trace-resource -trace-file smpi_traced.trace -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../msg/tracing/platform.xml -np 3 ./smpi_traced_simple
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_traced.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes'
+> [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 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
@@ -35,28 +35,28 @@ $ ../../smpi_script/bin/smpirun -hostfile ${srcdir:=.}/hostfile -platform ${srcd
 
 p Testing grouped tracing
 $ ../../smpi_script/bin/smpirun -trace -trace-grouped -trace-file smpi_traced.trace -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../msg/tracing/platform.xml -np 3 ./smpi_traced_simple
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_traced.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/group' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/group' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 
 p Testing generation of viva configuration files
-$ ../../smpi_script/bin/smpirun -trace -trace-resource -trace-viva -trace-file smpi_traced.trace -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../msg/tracing/platform.xml --cfg=smpi/cpu_threshold:1 -np 3 ./smpi_traced_simple
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
+$ ../../smpi_script/bin/smpirun -trace -trace-resource -trace-viva -trace-file smpi_traced.trace -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../msg/tracing/platform.xml --cfg=smpi/cpu_threshold:-1 -np 3 ./smpi_traced_simple
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_traced.trace'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/categorized' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/uncategorized' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes'
+> [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 'smpi_cat.plist'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'viva/uncategorized' to 'smpi_uncat.plist'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '1'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 > [0.013981] [instr_config/INFO] No categories declared, ignoring generation of viva graph configuration
 
index c254c1a..8b55e68 100644 (file)
@@ -92,8 +92,8 @@ XBT_PUBLIC(sg_storage_size_t) MSG_file_get_size(msg_file_t fd);
 XBT_PUBLIC(void) MSG_file_dump(msg_file_t fd);
 XBT_PUBLIC(int) MSG_file_unlink(msg_file_t fd);
 XBT_PUBLIC(xbt_dict_t) MSG_file_ls(const char *mount, const char *path);
+XBT_PUBLIC(msg_error_t) MSG_file_seek(msg_file_t fd, sg_storage_size_t offset, int whence);
 XBT_PUBLIC(void) __MSG_file_get_info(msg_file_t fd);
-
 /************************** Storage handling ***********************************/
 XBT_PUBLIC(msg_host_t) MSG_get_storage_by_name(const char *name);
 XBT_PUBLIC(const char *) MSG_storage_get_name(msg_storage_t storage);
@@ -107,6 +107,8 @@ XBT_PUBLIC(msg_error_t) MSG_storage_set_data(msg_storage_t host, void *data);
 XBT_PUBLIC(void *) MSG_storage_get_data(msg_storage_t storage);
 XBT_PUBLIC(xbt_dict_t) MSG_storage_get_content(msg_storage_t storage);
 XBT_PUBLIC(sg_storage_size_t) MSG_storage_get_size(msg_storage_t storage);
+XBT_PUBLIC(msg_error_t) MSG_storage_file_move(msg_file_t fd, msg_host_t dest, char* mount, char* fullname);
+XBT_PUBLIC(msg_error_t) MSG_storage_file_rename(msg_storage_t storage, const char* src,  const char* dest);
 /************************** AS Router handling ************************************/
 XBT_PUBLIC(const char *) MSG_as_router_get_property_value(const char* asr, const char *name);
 XBT_PUBLIC(xbt_dict_t) MSG_as_router_get_properties(const char* asr);
index fcc7da1..f97be05 100644 (file)
@@ -18,8 +18,8 @@
 extern int _sg_do_model_check; /* please don't use directly: we inline MC_is_active, but that's what you should use */
 extern int _sg_mc_visited;
 
-#define MC_is_active() _sg_do_model_check
-#define MC_visited_reduction() _sg_mc_visited
+#define MC_is_active()                  _sg_do_model_check
+#define MC_visited_reduction()          _sg_mc_visited
 
 XBT_PUBLIC(void) MC_assert(int);
 XBT_PUBLIC(int) MC_random(int min, int max);
@@ -31,9 +31,16 @@ XBT_PUBLIC(void) MC_ignore(void *addr, size_t size);
 
 #else
 
-#define MC_assert(a) xbt_assert(a)
-#define MC_is_active() 0
-#define MC_visited_reduction() 0
+#define MC_is_active()                  0
+#define MC_visited_reduction()          0
+
+#define MC_assert(a)                    xbt_assert(a)
+#define MC_random(a, b)                 0
+#define MC_automaton_new_propositional_symbol(a, b) ((void)0)
+#define MC_snapshot()                   ((void*)0)
+#define MC_compare_snapshots(a, b)      0
+#define MC_cut()                        ((void)0)
+#define MC_ignore(a, b)                 ((void)0)
 
 #endif
 
index 231db9f..8e9db8c 100644 (file)
@@ -514,7 +514,6 @@ XBT_PUBLIC(int) simcall_file_unlink(smx_file_t fd);
 XBT_PUBLIC(xbt_dict_t) simcall_file_ls(const char* mount, const char* path);
 XBT_PUBLIC(sg_storage_size_t) simcall_file_get_size(smx_file_t fd);
 XBT_PUBLIC(xbt_dynar_t) simcall_file_get_info(smx_file_t fd);
-
 /*****************************   Storage   **********************************/
 XBT_PUBLIC(sg_storage_size_t) simcall_storage_get_free_size (const char* name);
 XBT_PUBLIC(sg_storage_size_t) simcall_storage_get_used_size (const char* name);
@@ -525,6 +524,7 @@ XBT_PUBLIC(xbt_dict_t) SIMIX_storage_get_content(smx_storage_t storage);
 XBT_PUBLIC(xbt_dict_t) simcall_storage_get_content(smx_storage_t storage);
 XBT_PUBLIC(const char*) SIMIX_storage_get_name(smx_host_t host);
 XBT_PUBLIC(sg_storage_size_t) SIMIX_storage_get_size(smx_storage_t storage);
+XBT_PUBLIC(void) simcall_storage_file_rename(smx_storage_t storage, const char* src,  const char* dest);
 /************************** AS router   **********************************/
 XBT_PUBLIC(xbt_dict_t) SIMIX_asr_get_properties(const char *name);
 /************************** AS router simcalls ***************************/
index fb08c29..789464f 100644 (file)
@@ -22,6 +22,8 @@ SG_BEGIN_DECL()
 #define SIMGRID_VERSION_MINOR @SIMGRID_VERSION_MINOR@
 #define SIMGRID_VERSION_PATCH @SIMGRID_VERSION_PATCH@
 
+#define SIMGRID_VERSION_STRING "@SIMGRID_VERSION_STRING@"
+
 /* Version X.Y.Z will get version number XYZ: all digits concatenated without dots
  * (with Y and Z must be on two positions)*/
 
index c6a96a2..213fe84 100644 (file)
 
       double precision MPI_WTIME
       double precision MPI_WTICK
+
+      external smpi_execute_flops
+      external smpi_execute
+      external smpi_get_host_power_peak_at
+      external smpi_get_host_current_power_peak
+      external smpi_get_host_nb_pstates
+      external smpi_set_host_power_peak_at
+      external smpi_get_host_consumed_energy
+
+      double precision smpi_get_host_power_peak_at
+      double precision smpi_get_host_current_power_peak
+      integer smpi_get_host_nb_pstates
+      double precision smpi_get_host_consumed_energy
index 710e5da..3901734 100644 (file)
@@ -682,6 +682,15 @@ XBT_PUBLIC(MPI_Comm) smpi_process_comm_self(void);
 XBT_PUBLIC(void) smpi_exit(int);
 */
 
+XBT_PUBLIC(void) smpi_execute_flops(double flops);
+XBT_PUBLIC(void) smpi_execute(double duration);
+
+XBT_PUBLIC(double) smpi_get_host_power_peak_at(int pstate_index);
+XBT_PUBLIC(double) smpi_get_host_current_power_peak(void);
+XBT_PUBLIC(int) smpi_get_host_nb_pstates(void);
+XBT_PUBLIC(void) smpi_set_host_power_peak_at(int pstate_index);
+XBT_PUBLIC(double) smpi_get_host_consumed_energy(void);
+
 XBT_PUBLIC(unsigned int) smpi_sleep(unsigned int secs);
 XBT_PUBLIC(int) smpi_gettimeofday(struct timeval *tv);
 XBT_PUBLIC(unsigned long long) smpi_rastro_resolution (void);
@@ -723,6 +732,7 @@ XBT_PUBLIC(int) __attribute__((weak)) MAIN__(void);
 XBT_PUBLIC(int) smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[]);
 XBT_PUBLIC(void) __attribute__((weak)) user_main_(void);
 XBT_PUBLIC(int) smpi_process_index(void);
+XBT_PUBLIC(void) smpi_process_init(int *argc, char ***argv);
 
 /* Trace replay specific stuff */
 XBT_PUBLIC(void) smpi_replay_init(int *argc, char***argv);
index 37b80e8..e558101 100644 (file)
@@ -17,7 +17,6 @@
 
 XBT_PUBLIC_DATA(__thread int) smpi_current_rank;
 
-XBT_PUBLIC(void) smpi_process_init(int *argc, char ***argv);
 XBT_PUBLIC(int) smpi_process_argc(void);
 XBT_PUBLIC(int) smpi_process_getarg(integer* index, char* dst, ftnlen len);
 XBT_PUBLIC(int) smpi_global_size(void);
index 4f8c14c..5e2905f 100644 (file)
@@ -448,11 +448,7 @@ XBT_PUBLIC( void )__xbt_ex_terminate_default(xbt_ex_t * e);
 #define THROW_UNIMPLEMENTED \
   THROWF(unknown_error, 0, "Function %s unimplemented",_XBT_FUNCTION)
 
-#ifndef NDEBUG
-#  define DIE_IMPOSSIBLE       xbt_assert(0,"The Impossible Did Happen (yet again)")
-#else
-#  define DIE_IMPOSSIBLE       exit(1);
-#endif
+#define DIE_IMPOSSIBLE xbt_die("The Impossible Did Happen (yet again)")
 
 /** @brief re-throwing of an already caught exception (ie, pass it to the upper catch block) 
  *  @hideinitializer
index 229566c..93409c5 100644 (file)
@@ -25,11 +25,11 @@ public final class Msg {
                        return;
                try {
                        /* prefer the version on disk, if existing */
-                       System.loadLibrary("SG_java");
+                       System.loadLibrary("simgrid-java");
                } catch (UnsatisfiedLinkError e) {
                        /* If not found, unpack the one bundled into the jar file and use it */
                        loadLib("simgrid");
-                       loadLib("SG_java");
+                       loadLib("simgrid-java");
                }
                isNativeInited = true;
        }
index 0030870..2a44cfe 100644 (file)
@@ -2,16 +2,7 @@
 #define _SMPI_INTERFACE_H
 #include "smpi/smpi.h"
 
-/********** Tracing **********/
-/* from smpi_instr.c */
-void TRACE_smpi_alloc(void);
-void TRACE_smpi_release(void);
-void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation, int size);
-void TRACE_smpi_ptp_out(int rank, int src, int dst, const char *operation);
-void TRACE_smpi_send(int rank, int src, int dst, int size);
-void TRACE_smpi_recv(int rank, int src, int dst);
-void TRACE_smpi_init(int rank);
-void TRACE_smpi_finalize(int rank);
+
 
 /** \brief MPI collective description
  */
index adc544c..e4e67c5 100644 (file)
@@ -37,7 +37,6 @@ extern "C" {
 
 XBT_PUBLIC(lmm_system_t) lmm_system_new(int selective_update);
 XBT_PUBLIC(void) lmm_system_free(lmm_system_t sys);
-void lmm_variable_disable(lmm_system_t sys, lmm_variable_t var);
 
 XBT_PUBLIC(lmm_constraint_t) lmm_constraint_new(lmm_system_t sys, void *id,
                                                 double bound_value);
index 6394581..97bdd57 100644 (file)
@@ -296,6 +296,7 @@ double surf_network_link_get_bandwidth(surf_cpp_resource_t link);
 double surf_network_link_get_latency(surf_cpp_resource_t link);
 xbt_dict_t surf_storage_get_content(surf_resource_t resource);
 sg_storage_size_t surf_storage_get_size(surf_resource_t resource);
+void surf_storage_rename(surf_resource_t resource, const char* src, const char* dest);
 void *surf_action_get_data(surf_action_t action);
 void surf_action_set_data(surf_action_t action, void *data);
 void surf_action_unref(surf_action_t action);
diff --git a/src/instr/instr_TI_trace.c b/src/instr/instr_TI_trace.c
new file mode 100644 (file)
index 0000000..9e0e73b
--- /dev/null
@@ -0,0 +1,243 @@
+/* Copyright (c) 2010-2013. 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 "instr/instr_private.h"
+#include "xbt/virtu.h" /* sg_cmdline */
+#include "xbt/xbt_os_time.h"
+#include "simgrid/sg_config.h"
+
+#include <errno.h>
+#include <string.h>
+#include <sys/stat.h>
+
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_TI_trace, instr_trace, "tracing event system");
+
+extern FILE *tracing_file;
+double prefix=0.0;
+
+xbt_dict_t tracing_files = NULL;
+
+extern s_instr_trace_writer_t active_writer;
+
+void TRACE_TI_init(void)
+{
+  active_writer.print_PushState = print_TIPushState;
+  active_writer.print_CreateContainer=print_TICreateContainer;
+  active_writer.print_DestroyContainer=print_TIDestroyContainer;
+}
+
+void TRACE_TI_start(void)
+{
+  char *filename = TRACE_get_filename();
+  tracing_file = fopen(filename, "w");
+  if (tracing_file == NULL) {
+    THROWF(system_error, 1, "Tracefile %s could not be opened for writing.",
+           filename);
+  }
+
+  XBT_DEBUG("Filename %s is open for writing", filename);
+
+  /* output one line comment */
+  dump_comment(TRACE_get_comment());
+
+  /* output comment file */
+  dump_comment_file(TRACE_get_comment_file());
+
+}
+
+void TRACE_TI_end(void)
+{
+  xbt_dict_free(&tracing_files);
+  fclose(tracing_file);
+  char *filename = TRACE_get_filename();
+  XBT_DEBUG("Filename %s is closed", filename);
+}
+
+void print_TICreateContainer(paje_event_t event)
+{
+  //if we are in the mode with only one file
+  static FILE *temp = NULL;
+
+  if (tracing_files == NULL) {
+    tracing_files = xbt_dict_new_homogeneous(NULL);
+    //generate unique run id with time
+    prefix = xbt_os_time();
+  }
+
+  if (!xbt_cfg_get_boolean(_sg_cfg_set, "tracing/smpi/format/ti_one_file")
+      || temp == NULL) {
+    char *folder_name = bprintf("%s_files", TRACE_get_filename());
+    char *filename = bprintf("%s/%f_%s.txt", folder_name, prefix,
+                             ((createContainer_t) event->data)->container->name);
+#ifdef WIN32
+    mkdir(folder_name);
+#else
+    mkdir(folder_name, S_IRWXU | S_IRWXG | S_IRWXO);
+#endif
+    temp = fopen(filename, "w");
+    if (temp == NULL)
+      xbt_die("Tracefile %s could not be opened for writing: %s",
+              filename, strerror(errno));
+    fprintf(tracing_file, "%s\n", filename);
+
+    xbt_free(folder_name);
+    xbt_free(filename);
+  }
+
+  xbt_dict_set(tracing_files,
+               ((createContainer_t) event->data)->container->name,
+               (void *) temp, NULL);
+}
+
+void print_TIDestroyContainer(paje_event_t event)
+{
+  if (!xbt_cfg_get_boolean(_sg_cfg_set, "tracing/smpi/format/ti_one_file")||
+      xbt_dict_length(tracing_files) == 1) {
+    FILE* f = xbt_dict_get_or_null(tracing_files,
+        ((destroyContainer_t) event->data)->container->name);
+    fclose(f);
+  }
+  xbt_dict_remove(tracing_files, ((destroyContainer_t) event->data)->container->name);
+}
+
+
+void print_TIPushState(paje_event_t event)
+{
+
+
+  int i;
+
+  //char* function=NULL;
+  if (((pushState_t) event->data)->extra == NULL)
+    return;
+  instr_extra_data extra =
+      (instr_extra_data) (((pushState_t) event->data)->extra);
+
+  char *process_id = NULL;
+  //FIXME: dirty extract "rank-" from the name, as we want the bare process id here
+  if (strstr(((pushState_t) event->data)->container->name, "rank-") == NULL)
+    process_id = xbt_strdup(((pushState_t) event->data)->container->name);
+  else
+    process_id = xbt_strdup(((pushState_t) event->data)->container->name + 5);
+
+  FILE* trace_file =  (FILE* )xbt_dict_get(tracing_files, ((pushState_t) event->data)->container->name);
+
+  switch (extra->type) {
+
+  case TRACING_INIT:
+    fprintf(trace_file, "%s init\n", process_id);
+    break;
+  case TRACING_FINALIZE:
+    fprintf(trace_file, "%s finalize\n", process_id);
+    break;
+  case TRACING_SEND:
+    fprintf(trace_file, "%s send %d %d %s\n", process_id, extra->dst,
+            extra->send_size, extra->datatype1);
+    break;
+  case TRACING_ISEND:
+    fprintf(trace_file, "%s isend %d %d %s\n", process_id, extra->dst,
+            extra->send_size, extra->datatype1);
+    break;
+  case TRACING_RECV:
+    fprintf(trace_file, "%s recv %d %d %s\n", process_id, extra->src,
+            extra->send_size, extra->datatype1);
+    break;
+  case TRACING_IRECV:
+    fprintf(trace_file, "%s irecv %d %d %s\n", process_id, extra->src,
+            extra->send_size, extra->datatype1);
+    break;
+  case TRACING_WAIT:
+    fprintf(trace_file, "%s wait\n", process_id);
+    break;
+  case TRACING_WAITALL:
+    fprintf(trace_file, "%s waitall\n", process_id);
+    break;
+  case TRACING_BARRIER:
+    fprintf(trace_file, "%s barrier\n", process_id);
+    break;
+  case TRACING_BCAST:          // rank bcast size (root) (datatype)
+    fprintf(trace_file, "%s bcast %d ", process_id, extra->send_size);
+    if (extra->root != 0 || (extra->datatype1 && strcmp(extra->datatype1, "")))
+      fprintf(trace_file, "%d %s", extra->root, extra->datatype1);
+    fprintf(trace_file, "\n");
+    break;
+  case TRACING_REDUCE:         // rank reduce comm_size comp_size (root) (datatype)
+    fprintf(trace_file, "%s reduce %d %f ", process_id, extra->send_size,
+            extra->comp_size);
+    if (extra->root != 0 || (extra->datatype1 && strcmp(extra->datatype1, "")))
+      fprintf(trace_file, "%d %s", extra->root, extra->datatype1);
+    fprintf(trace_file, "\n");
+    break;
+  case TRACING_ALLREDUCE:      // rank allreduce comm_size comp_size (datatype)
+    fprintf(trace_file, "%s allreduce %d %f %s\n", process_id,
+            extra->send_size, extra->comp_size, extra->datatype1);
+    break;
+  case TRACING_ALLTOALL:       // rank alltoall send_size recv_size (sendtype) (recvtype)
+    fprintf(trace_file, "%s alltoall %d %d %s %s\n", process_id,
+            extra->send_size, extra->recv_size, extra->datatype1,
+            extra->datatype2);
+    break;
+  case TRACING_ALLTOALLV:      // rank alltoallv send_size [sendcounts] recv_size [recvcounts] (sendtype) (recvtype)
+    fprintf(trace_file, "%s alltoallv %d ", process_id, extra->send_size);
+    for (i = 0; i < extra->num_processes; i++)
+      fprintf(trace_file, "%d ", extra->sendcounts[i]);
+    fprintf(trace_file, "%d ", extra->recv_size);
+    for (i = 0; i < extra->num_processes; i++)
+      fprintf(trace_file, "%d ", extra->recvcounts[i]);
+    fprintf(trace_file, "%s %s \n", extra->datatype1, extra->datatype2);
+    break;
+  case TRACING_GATHER:         // rank gather send_size recv_size root (sendtype) (recvtype)
+    fprintf(trace_file, "%s gather %d %d %d %s %s\n", process_id,
+            extra->send_size, extra->recv_size, extra->root, extra->datatype1,
+            extra->datatype2);
+    break;
+  case TRACING_ALLGATHERV:     // rank allgatherv send_size [recvcounts] (sendtype) (recvtype)
+    fprintf(trace_file, "%s allgatherv %d ", process_id, extra->send_size);
+    for (i = 0; i < extra->num_processes; i++)
+      fprintf(trace_file, "%d ", extra->recvcounts[i]);
+    fprintf(trace_file, "%s %s \n", extra->datatype1, extra->datatype2);
+    break;
+  case TRACING_REDUCE_SCATTER: // rank reducescatter [recvcounts] comp_size (sendtype)
+    fprintf(trace_file, "%s reducescatter ", process_id);
+    for (i = 0; i < extra->num_processes; i++)
+      fprintf(trace_file, "%d ", extra->recvcounts[i]);
+    fprintf(trace_file, "%f %s\n", extra->comp_size, extra->datatype1);
+    break;
+  case TRACING_COMPUTING:
+    fprintf(trace_file, "%s compute %f\n", process_id, extra->comp_size);
+    break;
+  case TRACING_GATHERV: // rank gatherv send_size [recvcounts] root (sendtype) (recvtype)
+    fprintf(trace_file, "%s gatherv %d ", process_id, extra->send_size);
+    for (i = 0; i < extra->num_processes; i++)
+      fprintf(trace_file, "%d ", extra->recvcounts[i]);
+    fprintf(trace_file, "%d %s %s\n", extra->root, extra->datatype1, extra->datatype2);
+    break;
+  case TRACING_WAITANY:
+  case TRACING_SENDRECV:
+  case TRACING_SCATTER:
+  case TRACING_SCATTERV:
+  case TRACING_ALLGATHER:
+  case TRACING_SCAN:
+  case TRACING_EXSCAN:
+  case TRACING_COMM_SIZE:
+  case TRACING_COMM_SPLIT:
+  case TRACING_COMM_DUP:
+  case TRACING_SSEND:
+  case TRACING_ISSEND:
+  default:
+
+    XBT_WARN
+        ("Call from %s impossible to translate into replay command : Not implemented (yet)",
+         ((pushState_t) event->data)->value->name);
+    break;
+  }
+
+  if (extra->recvcounts != NULL)
+    xbt_free(extra->recvcounts);
+  if (extra->sendcounts != NULL)
+    xbt_free(extra->sendcounts);
+  xbt_free(process_id);
+  xbt_free(extra);
+}
index 3ef4c71..6300219 100644 (file)
@@ -21,6 +21,8 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY (instr_config, instr, "Configuration");
 #define OPT_TRACING_SMPI_COMPUTING "tracing/smpi/computing"
 #define OPT_TRACING_SMPI_INTERNALS "tracing/smpi/internals"
 #define OPT_TRACING_DISPLAY_SIZES  "tracing/smpi/display_sizes"
+#define OPT_TRACING_FORMAT        "tracing/smpi/format"
+#define OPT_TRACING_FORMAT_TI_ONEFILE "tracing/smpi/format/ti_one_file"
 #define OPT_TRACING_CATEGORIZED   "tracing/categorized"
 #define OPT_TRACING_UNCATEGORIZED "tracing/uncategorized"
 #define OPT_TRACING_MSG_PROCESS   "tracing/msg/process"
@@ -63,24 +65,24 @@ static int trace_active = 0;
 
 static void TRACE_getopts(void)
 {
-  trace_enabled = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING);
-  trace_platform = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_PLATFORM);
-  trace_platform_topology = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_TOPOLOGY);
-  trace_smpi_enabled = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_SMPI);
-  trace_smpi_grouped = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_SMPI_GROUP);
-  trace_smpi_computing = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING);
-  trace_view_internals = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_SMPI_INTERNALS);
-  trace_categorized = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_CATEGORIZED);
-  trace_uncategorized = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_UNCATEGORIZED);
-  trace_msg_process_enabled = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_MSG_PROCESS);
-  trace_msg_vm_enabled = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_MSG_VM);
-  trace_buffer = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_BUFFER);
-  trace_onelink_only = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_ONELINK_ONLY);
-  trace_disable_destroy = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_DISABLE_DESTROY);
-  trace_basic = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_BASIC);
-  trace_display_sizes = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_DISPLAY_SIZES);
-  trace_disable_link = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_DISABLE_LINK);
-  trace_disable_power = xbt_cfg_get_int(_sg_cfg_set, OPT_TRACING_DISABLE_POWER);
+  trace_enabled = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING);
+  trace_platform = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_PLATFORM);
+  trace_platform_topology = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_TOPOLOGY);
+  trace_smpi_enabled = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_SMPI);
+  trace_smpi_grouped = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_SMPI_GROUP);
+  trace_smpi_computing = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING);
+  trace_view_internals = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_SMPI_INTERNALS);
+  trace_categorized = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_CATEGORIZED);
+  trace_uncategorized = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_UNCATEGORIZED);
+  trace_msg_process_enabled = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_MSG_PROCESS);
+  trace_msg_vm_enabled = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_MSG_VM);
+  trace_buffer = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_BUFFER);
+  trace_onelink_only = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_ONELINK_ONLY);
+  trace_disable_destroy = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_DESTROY);
+  trace_basic = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_BASIC);
+  trace_display_sizes = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_DISPLAY_SIZES);
+  trace_disable_link = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_LINK);
+  trace_disable_power = xbt_cfg_get_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_POWER);
 }
 
 static xbt_dynar_t TRACE_start_functions = NULL;
@@ -96,13 +98,27 @@ int TRACE_start()
   TRACE_getopts();
 
   // tracing system must be:
-  //    - enabled (with --cfg=tracing:1)
+  //    - enabled (with --cfg=tracing:yes)
   //    - already configured (TRACE_global_init already called)
   if (TRACE_is_enabled() && TRACE_is_configured()) {
     XBT_DEBUG("Tracing starts");
 
-    /* open the trace file */
-    TRACE_paje_start();
+    /* init the tracing module to generate the right output */
+    /* open internal buffer */
+    TRACE_init();
+
+    /* open the trace file(s) */
+    const char* format = sg_cfg_get_string(OPT_TRACING_FORMAT);
+    XBT_DEBUG("Tracing format %s\n", format);
+    if(!strcmp(format, "Paje")){
+      TRACE_paje_init();
+      TRACE_paje_start();
+    }else if (!strcmp(format, "TI")){
+      TRACE_TI_init();
+      TRACE_TI_start();
+    }else{
+      xbt_die("Unknown trace format :%s ", format);
+    }
 
     /* activate trace */
     if (trace_active == 1) {
@@ -173,9 +189,18 @@ int TRACE_end()
     xbt_dict_free(&declared_marks);
     xbt_dict_free(&created_categories);
 
-    /* close the trace file */
-    TRACE_paje_end();
-
+    /* close the trace files */
+    const char* format = sg_cfg_get_string(OPT_TRACING_FORMAT);
+    XBT_DEBUG("Tracing format %s\n", format);
+    if(!strcmp(format, "Paje")){
+      TRACE_paje_end();
+    }else if (!strcmp(format, "TI")){
+      TRACE_TI_end();
+    }else{
+      xbt_die("Unknown trace format :%s ", format);
+    }
+    /* close internal buffer */
+    TRACE_finalize();
     /* de-activate trace */
     trace_active = 0;
     XBT_DEBUG("Tracing is off");
@@ -328,111 +353,124 @@ void TRACE_global_init(int *argc, char **argv)
   /* tracing */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING,
                    "Enable Tracing.",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, 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_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_PLATFORM, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, 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_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_TOPOLOGY, 1);
+                   xbt_cfgelm_boolean, 0, 1, NULL, 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_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_SMPI, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, 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_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_SMPI_GROUP, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, 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_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI_COMPUTING, "no");
 
   /* smpi internals */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_SMPI_INTERNALS,
                    "View internal messages sent by Collective communications in SMPI",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_SMPI_INTERNALS, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_SMPI_INTERNALS, "no");
 
   /* tracing categorized resource utilization traces */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_CATEGORIZED,
                    "Tracing categorized resource utilization of hosts and links.",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_CATEGORIZED, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_CATEGORIZED, "no");
 
   /* tracing uncategorized resource utilization */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_UNCATEGORIZED,
                    "Tracing uncategorized resource utilization of hosts and links.",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_UNCATEGORIZED, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_UNCATEGORIZED, "no");
 
   /* msg process */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_MSG_PROCESS,
                    "Tracing of MSG process behavior.",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_MSG_PROCESS, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_MSG_PROCESS, "no");
 
   /* msg process */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_MSG_VM,
                    "Tracing of MSG process behavior.",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_MSG_VM, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_MSG_VM, "no");
 
   /* disable tracing link */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISABLE_LINK,
                    "Do not trace link bandwidth and latency.",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_DISABLE_LINK, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_LINK, "no");
 
   /* disable tracing link */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISABLE_POWER,
                    "Do not trace host power.",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_DISABLE_POWER, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_POWER, "no");
 
 
   /* tracing buffer */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_BUFFER,
                    "Buffer trace events to put them in temporal order.",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_BUFFER, 1);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_BUFFER, "yes");
 
   /* tracing one link only */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_ONELINK_ONLY,
                    "Use only routes with one link to trace platform.",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_ONELINK_ONLY, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_ONELINK_ONLY, "no");
 
   /* disable destroy */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISABLE_DESTROY,
                    "Disable platform containers destruction.",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_DISABLE_DESTROY, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISABLE_DESTROY, "no");
 
   /* basic -- Avoid extended events (impoverished trace file) */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_BASIC,
                    "Avoid extended events (impoverished trace file).",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_BASIC, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_BASIC, "no");
 
   /* display_sizes -- Extended events with message size information */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_DISPLAY_SIZES,
                    "(smpi only for now) Extended events with message size information",
-                   xbt_cfgelm_int, 0, 1, NULL, NULL);
-  xbt_cfg_setdefault_int(_sg_cfg_set, OPT_TRACING_DISPLAY_SIZES, 0);
+                   xbt_cfgelm_boolean, 0, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_DISPLAY_SIZES, "no");
+
+  /* format -- Switch the ouput format of Tracing */
+  xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_FORMAT,
+                   "(smpi only for now) Switch the ouput format of Tracing",
+                   xbt_cfgelm_string, 1, 1, NULL, NULL);
+  xbt_cfg_setdefault_string(_sg_cfg_set, OPT_TRACING_FORMAT, "Paje");
+
+
+  /* format -- Switch the ouput format of Tracing */
+  xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_FORMAT_TI_ONEFILE,
+                   "(smpi only for now) For replay format only : output to one file only",
+                   xbt_cfgelm_boolean, 1, 1, NULL, NULL);
+  xbt_cfg_setdefault_boolean(_sg_cfg_set, OPT_TRACING_FORMAT_TI_ONEFILE, "no");
 
   /* comment */
   xbt_cfg_register(&_sg_cfg_set, OPT_TRACING_COMMENT,
@@ -550,6 +588,15 @@ void TRACE_help (int detailed)
       "Message size (in bytes) is added to links, and to states. For collectives, the displayed value \n"
       "is the more relevant to the collective (total sent by the process, usually)",
       detailed);
+  print_line (OPT_TRACING_FORMAT, "Only works for SMPI now. Switch output format",
+      "Default format is Paje. Time independent traces are also supported, \n"
+      "to output traces that can later be used by the trace replay tool",
+      detailed);
+  print_line (OPT_TRACING_FORMAT_TI_ONEFILE, "Only works for SMPI now, and TI output format",
+      "By default, each process outputs to a separate file, inside a filename_files folder \n"
+      "By setting this option to yes, all processes will output to only one file \n"
+      "This is meant to avoid opening thousands of files with large simulations",
+      detailed);
   print_line (OPT_TRACING_COMMENT, "Comment to be added on the top of the trace file.",
       "  Use this to add a comment line to the top of the trace file.",
       detailed);
index 734496d..46603c6 100644 (file)
 #include "instr/instr_private.h"
 #include "xbt/virtu.h" /* sg_cmdline */
 
-#ifdef HAVE_TRACING
-
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_paje_trace, instr, "Paje tracing event system");
-
-typedef struct paje_event *paje_event_t;
-typedef struct paje_event {
-  double timestamp;
-  e_event_type event_type;
-  void (*print) (paje_event_t event);
-  void (*free) (paje_event_t event);
-  void *data;
-} s_paje_event_t;
-
-typedef struct s_defineContainerType *defineContainerType_t;
-typedef struct s_defineContainerType {
-  type_t type;
-}s_defineContainerType_t;
-
-typedef struct s_defineVariableType *defineVariableType_t;
-typedef struct s_defineVariableType {
-  type_t type;
-}s_defineVariableType_t;
-
-typedef struct s_defineStateType *defineStateType_t;
-typedef struct s_defineStateType {
-  type_t type;
-}s_defineStateType_t;
-
-typedef struct s_defineEventType *defineEventType_t;
-typedef struct s_defineEventType {
-  type_t type;
-}s_defineEventType_t;
-
-typedef struct s_defineLinkType *defineLinkType_t;
-typedef struct s_defineLinkType {
-  type_t type;
-  type_t source;
-  type_t dest;
-}s_defineLinkType_t;
-
-typedef struct s_defineEntityValue *defineEntityValue_t;
-typedef struct s_defineEntityValue {
-  val_t value;
-}s_defineEntityValue_t;
-
-typedef struct s_createContainer *createContainer_t;
-typedef struct s_createContainer {
-  container_t container;
-}s_createContainer_t;
-
-typedef struct s_destroyContainer *destroyContainer_t;
-typedef struct s_destroyContainer {
-  container_t container;
-}s_destroyContainer_t;
-
-typedef struct s_setVariable *setVariable_t;
-typedef struct s_setVariable {
-  container_t container;
-  type_t type;
-  double value;
-}s_setVariable_t;
-
-typedef struct s_addVariable *addVariable_t;
-typedef struct s_addVariable {
-  container_t container;
-  type_t type;
-  double value;
-}s_addVariable_t;
-
-typedef struct s_subVariable *subVariable_t;
-typedef struct s_subVariable {
-  container_t container;
-  type_t type;
-  double value;
-}s_subVariable_t;
-
-typedef struct s_setState *setState_t;
-typedef struct s_setState {
-  container_t container;
-  type_t type;
-  val_t value;
-}s_setState_t;
-
-typedef struct s_pushState *pushState_t;
-typedef struct s_pushState {
-  container_t container;
-  type_t type;
-  val_t value;
-  int size;
-}s_pushState_t;
-
-typedef struct s_popState *popState_t;
-typedef struct s_popState {
-  container_t container;
-  type_t type;
-}s_popState_t;
-
-typedef struct s_resetState *resetState_t;
-typedef struct s_resetState {
-  container_t container;
-  type_t type;
-}s_resetState_t;
-
-typedef struct s_startLink *startLink_t;
-typedef struct s_startLink {
-  container_t container;
-  type_t type;
-  container_t sourceContainer;
-  char *value;
-  char *key;
-  int size;
-}s_startLink_t;
-
-typedef struct s_endLink *endLink_t;
-typedef struct s_endLink {
-  container_t container;
-  type_t type;
-  container_t destContainer;
-  char *value;
-  char *key;
-}s_endLink_t;
-
-typedef struct s_newEvent *newEvent_t;
-typedef struct s_newEvent {
-  container_t container;
-  type_t type;
-  val_t value;
-}s_newEvent_t;
-
-FILE *tracing_file = NULL;
-
-static xbt_dynar_t buffer = NULL;
-
-static void dump_comment (const char *comment)
-{
-  if (!strlen(comment)) return;
-  fprintf (tracing_file, "# %s\n", comment);
-}
-
-static void dump_comment_file (const char *filename)
-{
-  if (!strlen(filename)) return;
-  FILE *file = fopen (filename, "r");
-  if (!file){
-    THROWF (system_error, 1, "Comment file %s could not be opened for reading.", filename);
-  }
-  while (!feof(file)){
-    char c;
-    c = fgetc(file);
-    if (feof(file)) break;
-    fprintf (tracing_file, "# ");
-    while (c != '\n'){
-      fprintf (tracing_file, "%c", c);
-      c = fgetc(file);
-      if (feof(file)) break;
-    }
-    fprintf (tracing_file, "\n");
-  }
-  fclose(file);
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_paje_trace, instr_trace, "tracing event system");
+
+extern FILE * tracing_file;
+extern s_instr_trace_writer_t active_writer;
+
+
+void TRACE_paje_init(void)
+{
+  active_writer.print_DefineContainerType=print_pajeDefineContainerType;
+  active_writer.print_DefineVariableType=print_pajeDefineVariableType;
+  active_writer.print_DefineStateType=print_pajeDefineStateType;
+  active_writer.print_DefineEventType=print_pajeDefineEventType;
+  active_writer.print_DefineLinkType=print_pajeDefineLinkType;
+  active_writer.print_DefineEntityValue=print_pajeDefineEntityValue;
+  active_writer.print_CreateContainer=print_pajeCreateContainer;
+  active_writer.print_DestroyContainer=print_pajeDestroyContainer;
+  active_writer.print_SetVariable=print_pajeSetVariable;
+  active_writer.print_AddVariable=print_pajeAddVariable;
+  active_writer.print_SubVariable=print_pajeSubVariable;
+  active_writer.print_SetState=print_pajeSetState;
+  active_writer.print_PushState=print_pajePushState;
+  active_writer.print_PopState=print_pajePopState;
+  active_writer.print_ResetState=print_pajeResetState;
+  active_writer.print_StartLink=print_pajeStartLink;
+  active_writer.print_EndLink=print_pajeEndLink;
+  active_writer.print_NewEvent=print_pajeNewEvent;
 }
 
-
 void TRACE_paje_start(void)
 {
   char *filename = TRACE_get_filename();
@@ -198,74 +64,17 @@ void TRACE_paje_start(void)
   /* output header */
   TRACE_header(TRACE_basic(),TRACE_display_sizes());
 
-  buffer = xbt_dynar_new (sizeof(paje_event_t), NULL);
 }
 
 void TRACE_paje_end(void)
 {
   fclose(tracing_file);
   char *filename = TRACE_get_filename();
-  xbt_dynar_free (&buffer);
   XBT_DEBUG("Filename %s is closed", filename);
 }
 
-double TRACE_last_timestamp_to_dump = 0;
-//dumps the trace file until the timestamp TRACE_last_timestamp_to_dump
-void TRACE_paje_dump_buffer (int force)
-{
-  if (!TRACE_is_enabled()) return;
-  XBT_DEBUG("%s: dump until %f. starts", __FUNCTION__, TRACE_last_timestamp_to_dump);
-  if (force){
-    paje_event_t event;
-    unsigned int i;
-    xbt_dynar_foreach(buffer, i, event){
-      event->print (event);
-      event->free (event);
-    }
-    xbt_dynar_free (&buffer);
-    buffer = xbt_dynar_new (sizeof(paje_event_t), NULL);
-  }else{
-    paje_event_t event;
-    unsigned int cursor;
-    xbt_dynar_foreach(buffer, cursor, event) {
-      double head_timestamp = event->timestamp;
-      if (head_timestamp > TRACE_last_timestamp_to_dump){
-        break;
-      }
-      event->print (event);
-      event->free (event);
-    }
-    xbt_dynar_remove_n_at(buffer, cursor, 0);
-  }
-  XBT_DEBUG("%s: ends", __FUNCTION__);
-}
-
-/* internal do the instrumentation module */
-static void insert_into_buffer (paje_event_t tbi)
-{
-  if (TRACE_buffer() == 0){
-    tbi->print (tbi);
-    tbi->free (tbi);
-    return;
-  }
-  XBT_DEBUG("%s: insert event_type=%d, timestamp=%f, buffersize=%lu)",
-      __FUNCTION__, (int)tbi->event_type, tbi->timestamp, xbt_dynar_length(buffer));
-
-  unsigned int i;
-  for (i = xbt_dynar_length(buffer); i > 0; i--) {
-    paje_event_t e1 = *(paje_event_t*)xbt_dynar_get_ptr(buffer, i - 1);
-    if (e1->timestamp <= tbi->timestamp)
-      break;
-  }
-  xbt_dynar_insert_at(buffer, i, &tbi);
-  if (i == 0)
-    XBT_DEBUG("%s: inserted at beginning", __FUNCTION__);
-  else
-    XBT_DEBUG("%s: inserted at%s %u", __FUNCTION__,
-              (i == xbt_dynar_length(buffer) - 1 ? " end, pos =" : ""), i);
-}
 
-static void print_pajeDefineContainerType(paje_event_t event)
+void print_pajeDefineContainerType(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
   fprintf(tracing_file, "%d %s %s %s\n",
@@ -275,7 +84,7 @@ static void print_pajeDefineContainerType(paje_event_t event)
       ((defineContainerType_t)event->data)->type->name);
 }
 
-static void print_pajeDefineVariableType(paje_event_t event)
+void print_pajeDefineVariableType(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
   fprintf(tracing_file, "%d %s %s %s \"%s\"\n",
@@ -286,7 +95,7 @@ static void print_pajeDefineVariableType(paje_event_t event)
       ((defineVariableType_t)event->data)->type->color);
 }
 
-static void print_pajeDefineStateType(paje_event_t event)
+void print_pajeDefineStateType(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
   fprintf(tracing_file, "%d %s %s %s\n",
@@ -296,7 +105,7 @@ static void print_pajeDefineStateType(paje_event_t event)
       ((defineStateType_t)event->data)->type->name);
 }
 
-static void print_pajeDefineEventType(paje_event_t event)
+void print_pajeDefineEventType(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
   fprintf(tracing_file, "%d %s %s %s\n",
@@ -306,7 +115,7 @@ static void print_pajeDefineEventType(paje_event_t event)
       ((defineEventType_t)event->data)->type->name);
 }
 
-static void print_pajeDefineLinkType(paje_event_t event)
+void print_pajeDefineLinkType(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
   fprintf(tracing_file, "%d %s %s %s %s %s\n",
@@ -318,7 +127,7 @@ static void print_pajeDefineLinkType(paje_event_t event)
       ((defineLinkType_t)event->data)->type->name);
 }
 
-static void print_pajeDefineEntityValue (paje_event_t event)
+void print_pajeDefineEntityValue (paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
   fprintf(tracing_file, "%d %s %s %s \"%s\"\n",
@@ -329,7 +138,7 @@ static void print_pajeDefineEntityValue (paje_event_t event)
       ((defineEntityValue_t)event->data)->value->color);
 }
 
-static void print_pajeCreateContainer(paje_event_t event)
+void print_pajeCreateContainer(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
   if (event->timestamp == 0){
@@ -350,7 +159,7 @@ static void print_pajeCreateContainer(paje_event_t event)
   }
 }
 
-static void print_pajeDestroyContainer(paje_event_t event)
+void print_pajeDestroyContainer(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
   if (event->timestamp == 0){
@@ -367,7 +176,7 @@ static void print_pajeDestroyContainer(paje_event_t event)
   }
 }
 
-static void print_pajeSetVariable(paje_event_t event)
+void print_pajeSetVariable(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
   if (event->timestamp == 0){
@@ -386,7 +195,7 @@ static void print_pajeSetVariable(paje_event_t event)
   }
 }
 
-static void print_pajeAddVariable(paje_event_t event)
+void print_pajeAddVariable(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
   if (event->timestamp == 0){
@@ -405,7 +214,7 @@ static void print_pajeAddVariable(paje_event_t event)
   }
 }
 
-static void print_pajeSubVariable(paje_event_t event)
+void print_pajeSubVariable(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
   if (event->timestamp == 0){
@@ -424,7 +233,7 @@ static void print_pajeSubVariable(paje_event_t event)
   }
 }
 
-static void print_pajeSetState(paje_event_t event)
+void print_pajeSetState(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
   if (event->timestamp == 0){
@@ -443,7 +252,7 @@ static void print_pajeSetState(paje_event_t event)
   }
 }
 
-static void print_pajePushState(paje_event_t event)
+void print_pajePushState(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
   if (!TRACE_display_sizes()){
@@ -463,26 +272,44 @@ static void print_pajePushState(paje_event_t event)
     }
   }else{
     if (event->timestamp == 0){
-      fprintf(tracing_file, "%d 0 %s %s %s %d\n",
+      fprintf(tracing_file, "%d 0 %s %s %s ",
           (int)event->event_type,
           ((pushState_t)event->data)->type->id,
           ((pushState_t)event->data)->container->id,
-          ((pushState_t)event->data)->value->id,
-          ((pushState_t)event->data)->size);
+          ((pushState_t)event->data)->value->id);
+      if(((pushState_t)event->data)->extra !=NULL){
+        fprintf(tracing_file, "%d ", ((instr_extra_data)((pushState_t)event->data)->extra)->send_size);
+      }else{
+        fprintf(tracing_file, "0 ");
+      }
+      fprintf(tracing_file, "\n");
+
     }else{
-      fprintf(tracing_file, "%d %f %s %s %s %d\n",
+      fprintf(tracing_file, "%d %f %s %s %s ",
           (int)event->event_type,
           event->timestamp,
           ((pushState_t)event->data)->type->id,
           ((pushState_t)event->data)->container->id,
-          ((pushState_t)event->data)->value->id,
-          ((pushState_t)event->data)->size);
-    }
+          ((pushState_t)event->data)->value->id);
+      if(((pushState_t)event->data)->extra !=NULL){
+        fprintf(tracing_file, "%d ", ((instr_extra_data)((pushState_t)event->data)->extra)->send_size);
+      }else{
+        fprintf(tracing_file, "0 ");
+      }
+      fprintf(tracing_file, "\n");
 
+    }
   }
+   if(((pushState_t)event->data)->extra!=NULL){
+     if(((instr_extra_data)((pushState_t)event->data)->extra)->sendcounts!=NULL)
+       xbt_free(((instr_extra_data)((pushState_t)event->data)->extra)->sendcounts);
+     if(((instr_extra_data)((pushState_t)event->data)->extra)->recvcounts!=NULL)
+       xbt_free(((instr_extra_data)((pushState_t)event->data)->extra)->recvcounts);
+     xbt_free(((pushState_t)event->data)->extra);
+   }
 }
 
-static void print_pajePopState(paje_event_t event)
+void print_pajePopState(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
   if (event->timestamp == 0){
@@ -499,7 +326,7 @@ static void print_pajePopState(paje_event_t event)
   }
 }
 
-static void print_pajeResetState(paje_event_t event)
+void print_pajeResetState(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
   if (event->timestamp == 0){
@@ -516,7 +343,7 @@ static void print_pajeResetState(paje_event_t event)
   }
 }
 
-static void print_pajeStartLink(paje_event_t event)
+void print_pajeStartLink(paje_event_t event)
 {
   if (!TRACE_display_sizes()){
     if (event->timestamp == 0){
@@ -562,7 +389,7 @@ static void print_pajeStartLink(paje_event_t event)
   }
 }
 
-static void print_pajeEndLink(paje_event_t event)
+void print_pajeEndLink(paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
   if (event->timestamp == 0){
@@ -585,7 +412,7 @@ static void print_pajeEndLink(paje_event_t event)
   }
 }
 
-static void print_pajeNewEvent (paje_event_t event)
+void print_pajeNewEvent (paje_event_t event)
 {
   XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
   if (event->timestamp == 0){
@@ -603,377 +430,3 @@ static void print_pajeNewEvent (paje_event_t event)
         ((newEvent_t)event->data)->value->id);
   }
 }
-
-static void free_paje_event (paje_event_t event)
-{
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-  switch (event->event_type){
-  case PAJE_StartLink:
-    xbt_free (((startLink_t)(event->data))->value);
-    xbt_free (((startLink_t)(event->data))->key);
-    break;
-  case PAJE_EndLink:
-    xbt_free (((endLink_t)(event->data))->value);
-    xbt_free (((endLink_t)(event->data))->key);
-    break;
-  default:
-    break;
-  }
-  xbt_free (event->data);
-  xbt_free (event);
-}
-
-void new_pajeDefineContainerType(type_t type)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_DefineContainerType;
-  event->timestamp = 0;
-  event->print = print_pajeDefineContainerType;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_defineContainerType_t, 1);
-  ((defineContainerType_t)(event->data))->type = type;
-
-  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
-
-  //print it
-  event->print (event);
-  event->free (event);
-}
-
-void new_pajeDefineVariableType(type_t type)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_DefineVariableType;
-  event->timestamp = 0;
-  event->print = print_pajeDefineVariableType;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_defineVariableType_t, 1);
-  ((defineVariableType_t)(event->data))->type = type;
-
-  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
-
-  //print it
-  event->print (event);
-  event->free (event);
-}
-
-void new_pajeDefineStateType(type_t type)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_DefineStateType;
-  event->timestamp = 0;
-  event->print = print_pajeDefineStateType;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_defineStateType_t, 1);
-  ((defineStateType_t)(event->data))->type = type;
-
-  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
-
-  //print it
-  event->print (event);
-  event->free (event);
-}
-
-void new_pajeDefineEventType(type_t type)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_DefineEventType;
-  event->timestamp = 0;
-  event->print = print_pajeDefineEventType;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_defineEventType_t, 1);
-  ((defineEventType_t)(event->data))->type = type;
-
-  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
-
-  //print it
-  event->print (event);
-  event->free (event);
-}
-
-void new_pajeDefineLinkType(type_t type, type_t source, type_t dest)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_DefineLinkType;
-  event->timestamp = 0;
-  event->print = print_pajeDefineLinkType;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_defineLinkType_t, 1);
-  ((defineLinkType_t)(event->data))->type = type;
-  ((defineLinkType_t)(event->data))->source = source;
-  ((defineLinkType_t)(event->data))->dest = dest;
-
-  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
-
-  //print it
-  event->print (event);
-  event->free (event);
-}
-
-void new_pajeDefineEntityValue (val_t value)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_DefineEntityValue;
-  event->timestamp = 0;
-  event->print = print_pajeDefineEntityValue;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_defineEntityValue_t, 1);
-  ((defineEntityValue_t)(event->data))->value = value;
-
-  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
-
-  //print it
-  event->print (event);
-  event->free (event);
-}
-
-void new_pajeCreateContainer (container_t container)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_CreateContainer;
-  event->timestamp = SIMIX_get_clock();
-  event->print = print_pajeCreateContainer;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_createContainer_t, 1);
-  ((createContainer_t)(event->data))->container = container;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  //print it
-  event->print (event);
-  event->free (event);
-}
-
-void new_pajeDestroyContainer (container_t container)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_DestroyContainer;
-  event->timestamp = SIMIX_get_clock();
-  event->print = print_pajeDestroyContainer;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_destroyContainer_t, 1);
-  ((destroyContainer_t)(event->data))->container = container;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  //print it
-  event->print (event);
-  event->free (event);
-}
-
-void new_pajeSetVariable (double timestamp, container_t container, type_t type, double value)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_SetVariable;
-  event->timestamp = timestamp;
-  event->print = print_pajeSetVariable;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_setVariable_t, 1);
-  ((setVariable_t)(event->data))->type = type;
-  ((setVariable_t)(event->data))->container = container;
-  ((setVariable_t)(event->data))->value = value;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-
-void new_pajeAddVariable (double timestamp, container_t container, type_t type, double value)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_AddVariable;
-  event->timestamp = timestamp;
-  event->print = print_pajeAddVariable;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_addVariable_t, 1);
-  ((addVariable_t)(event->data))->type = type;
-  ((addVariable_t)(event->data))->container = container;
-  ((addVariable_t)(event->data))->value = value;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-void new_pajeSubVariable (double timestamp, container_t container, type_t type, double value)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_SubVariable;
-  event->timestamp = timestamp;
-  event->print = print_pajeSubVariable;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_subVariable_t, 1);
-  ((subVariable_t)(event->data))->type = type;
-  ((subVariable_t)(event->data))->container = container;
-  ((subVariable_t)(event->data))->value = value;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-void new_pajeSetState (double timestamp, container_t container, type_t type, val_t value)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_SetState;
-  event->timestamp = timestamp;
-  event->print = print_pajeSetState;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_setState_t, 1);
-  ((setState_t)(event->data))->type = type;
-  ((setState_t)(event->data))->container = container;
-  ((setState_t)(event->data))->value = value;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-
-void new_pajePushState (double timestamp, container_t container, type_t type, val_t value)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_PushState;
-  event->timestamp = timestamp;
-  event->print = print_pajePushState;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_pushState_t, 1);
-  ((pushState_t)(event->data))->type = type;
-  ((pushState_t)(event->data))->container = container;
-  ((pushState_t)(event->data))->value = value;
-  ((pushState_t)(event->data))->size = -1;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-void new_pajePushStateWithSize (double timestamp, container_t container, type_t type, val_t value, int size)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_PushState;
-  event->timestamp = timestamp;
-  event->print = print_pajePushState;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_pushState_t, 1);
-  ((pushState_t)(event->data))->type = type;
-  ((pushState_t)(event->data))->container = container;
-  ((pushState_t)(event->data))->value = value;
-  ((pushState_t)(event->data))->size = size;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-
-void new_pajePopState (double timestamp, container_t container, type_t type)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_PopState;
-  event->timestamp = timestamp;
-  event->print = print_pajePopState;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_popState_t, 1);
-  ((popState_t)(event->data))->type = type;
-  ((popState_t)(event->data))->container = container;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-
-void new_pajeResetState (double timestamp, container_t container, type_t type)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_ResetState;
-  event->timestamp = timestamp;
-  event->print = print_pajeResetState;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_resetState_t, 1);
-  ((resetState_t)(event->data))->type = type;
-  ((resetState_t)(event->data))->container = container;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-void new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_StartLink;
-  event->timestamp = timestamp;
-  event->print = print_pajeStartLink;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_startLink_t, 1);
-  ((startLink_t)(event->data))->type = type;
-  ((startLink_t)(event->data))->container = container;
-  ((startLink_t)(event->data))->sourceContainer = sourceContainer;
-  ((startLink_t)(event->data))->value = xbt_strdup(value);
-  ((startLink_t)(event->data))->key = xbt_strdup(key);
-  ((startLink_t)(event->data))->size = -1;
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-void new_pajeStartLinkWithSize (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key, int size)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_StartLink;
-  event->timestamp = timestamp;
-  event->print = print_pajeStartLink;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_startLink_t, 1);
-  ((startLink_t)(event->data))->type = type;
-  ((startLink_t)(event->data))->container = container;
-  ((startLink_t)(event->data))->sourceContainer = sourceContainer;
-  ((startLink_t)(event->data))->value = xbt_strdup(value);
-  ((startLink_t)(event->data))->key = xbt_strdup(key);
-  ((startLink_t)(event->data))->size = size;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-void new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer, const char *value, const char *key)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_EndLink;
-  event->timestamp = timestamp;
-  event->print = print_pajeEndLink;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_endLink_t, 1);
-  ((endLink_t)(event->data))->type = type;
-  ((endLink_t)(event->data))->container = container;
-  ((endLink_t)(event->data))->destContainer = destContainer;
-  ((endLink_t)(event->data))->value = xbt_strdup(value);
-  ((endLink_t)(event->data))->key = xbt_strdup(key);
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-void new_pajeNewEvent (double timestamp, container_t container, type_t type, val_t value)
-{
-  paje_event_t event = xbt_new0(s_paje_event_t, 1);
-  event->event_type = PAJE_NewEvent;
-  event->timestamp = timestamp;
-  event->print = print_pajeNewEvent;
-  event->free = free_paje_event;
-  event->data = xbt_new0(s_newEvent_t, 1);
-  ((newEvent_t)(event->data))->type = type;
-  ((newEvent_t)(event->data))->container = container;
-  ((newEvent_t)(event->data))->value = value;
-
-  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
-
-  insert_into_buffer (event);
-}
-
-#endif /* HAVE_TRACING */
index d758703..84e81c2 100644 (file)
@@ -9,6 +9,7 @@
 
 #include "instr/instr.h"
 #include "instr/instr_interface.h"
+#include "internal_config.h"
 #include "simgrid_config.h"
 
 #ifdef HAVE_TRACING
@@ -95,6 +96,133 @@ typedef struct s_container {
   xbt_dict_t children;
 }s_container_t;
 
+typedef struct paje_event *paje_event_t;
+typedef struct paje_event {
+  double timestamp;
+  e_event_type event_type;
+  void (*print) (paje_event_t event);
+  void (*free) (paje_event_t event);
+  void *data;
+} s_paje_event_t;
+
+typedef struct s_defineContainerType *defineContainerType_t;
+typedef struct s_defineContainerType {
+  type_t type;
+}s_defineContainerType_t;
+
+typedef struct s_defineVariableType *defineVariableType_t;
+typedef struct s_defineVariableType {
+  type_t type;
+}s_defineVariableType_t;
+
+typedef struct s_defineStateType *defineStateType_t;
+typedef struct s_defineStateType {
+  type_t type;
+}s_defineStateType_t;
+
+typedef struct s_defineEventType *defineEventType_t;
+typedef struct s_defineEventType {
+  type_t type;
+}s_defineEventType_t;
+
+typedef struct s_defineLinkType *defineLinkType_t;
+typedef struct s_defineLinkType {
+  type_t type;
+  type_t source;
+  type_t dest;
+}s_defineLinkType_t;
+
+typedef struct s_defineEntityValue *defineEntityValue_t;
+typedef struct s_defineEntityValue {
+  val_t value;
+}s_defineEntityValue_t;
+
+typedef struct s_createContainer *createContainer_t;
+typedef struct s_createContainer {
+  container_t container;
+}s_createContainer_t;
+
+typedef struct s_destroyContainer *destroyContainer_t;
+typedef struct s_destroyContainer {
+  container_t container;
+}s_destroyContainer_t;
+
+typedef struct s_setVariable *setVariable_t;
+typedef struct s_setVariable {
+  container_t container;
+  type_t type;
+  double value;
+}s_setVariable_t;
+
+typedef struct s_addVariable *addVariable_t;
+typedef struct s_addVariable {
+  container_t container;
+  type_t type;
+  double value;
+}s_addVariable_t;
+
+typedef struct s_subVariable *subVariable_t;
+typedef struct s_subVariable {
+  container_t container;
+  type_t type;
+  double value;
+}s_subVariable_t;
+
+typedef struct s_setState *setState_t;
+typedef struct s_setState {
+  container_t container;
+  type_t type;
+  val_t value;
+}s_setState_t;
+
+typedef struct s_pushState *pushState_t;
+typedef struct s_pushState {
+  container_t container;
+  type_t type;
+  val_t value;
+  int size;
+  void* extra;
+}s_pushState_t;
+
+typedef struct s_popState *popState_t;
+typedef struct s_popState {
+  container_t container;
+  type_t type;
+  xbt_dynar_t extra;
+}s_popState_t;
+
+typedef struct s_resetState *resetState_t;
+typedef struct s_resetState {
+  container_t container;
+  type_t type;
+}s_resetState_t;
+
+typedef struct s_startLink *startLink_t;
+typedef struct s_startLink {
+  container_t container;
+  type_t type;
+  container_t sourceContainer;
+  char *value;
+  char *key;
+  int size;
+}s_startLink_t;
+
+typedef struct s_endLink *endLink_t;
+typedef struct s_endLink {
+  container_t container;
+  type_t type;
+  container_t destContainer;
+  char *value;
+  char *key;
+}s_endLink_t;
+
+typedef struct s_newEvent *newEvent_t;
+typedef struct s_newEvent {
+  container_t container;
+  type_t type;
+  val_t value;
+}s_newEvent_t;
+
 extern xbt_dict_t created_categories;
 extern xbt_dict_t declared_marks;
 extern xbt_dict_t user_host_variables;
@@ -110,6 +238,9 @@ extern "C" {
 void TRACE_header(int basic, int size);
 
 /* from paje.c */
+void TRACE_init(void);
+void TRACE_finalize(void);
+void TRACE_paje_init(void);
 void TRACE_paje_start(void);
 void TRACE_paje_end(void);
 void TRACE_paje_dump_buffer (int force);
@@ -126,7 +257,7 @@ XBT_PUBLIC(void) new_pajeAddVariable (double timestamp, container_t container, t
 XBT_PUBLIC(void) new_pajeSubVariable (double timestamp, container_t container, type_t type, double value);
 XBT_PUBLIC(void) new_pajeSetState (double timestamp, container_t container, type_t type, val_t value);
 XBT_PUBLIC(void) new_pajePushState (double timestamp, container_t container, type_t type, val_t value);
-XBT_PUBLIC(void) new_pajePushStateWithSize (double timestamp, container_t container, type_t type, val_t value, int size);
+XBT_PUBLIC(void) new_pajePushStateWithExtra (double timestamp, container_t container, type_t type, val_t value, void* extra);
 XBT_PUBLIC(void) new_pajePopState (double timestamp, container_t container, type_t type);
 XBT_PUBLIC(void) new_pajeResetState (double timestamp, container_t container, type_t type);
 XBT_PUBLIC(void) new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key);
@@ -218,14 +349,132 @@ XBT_PUBLIC(val_t)  PJ_value_get_or_new (const char *name, const char *color, typ
 XBT_PUBLIC(val_t)  PJ_value_get (const char *name, const type_t father);
 void PJ_value_free (val_t value);
 
+void print_pajeDefineContainerType(paje_event_t event);
+void print_pajeDefineVariableType(paje_event_t event);
+void print_pajeDefineStateType(paje_event_t event);
+void print_pajeDefineEventType(paje_event_t event);
+void print_pajeDefineLinkType(paje_event_t event);
+void print_pajeDefineEntityValue (paje_event_t event);
+void print_pajeCreateContainer(paje_event_t event);
+void print_pajeDestroyContainer(paje_event_t event);
+void print_pajeSetVariable(paje_event_t event);
+void print_pajeAddVariable(paje_event_t event);
+void print_pajeSubVariable(paje_event_t event);
+void print_pajeSetState(paje_event_t event);
+void print_pajePushState(paje_event_t event);
+void print_pajePopState(paje_event_t event);
+void print_pajeResetState(paje_event_t event);
+void print_pajeStartLink(paje_event_t event);
+void print_pajeEndLink(paje_event_t event);
+void print_pajeNewEvent (paje_event_t event);
+
+void print_TIPushState(paje_event_t event);
+void print_TICreateContainer(paje_event_t event);
+void print_TIDestroyContainer(paje_event_t event);
+void TRACE_TI_start(void);
+void TRACE_TI_end(void);
+void TRACE_TI_init(void);
+
+void print_NULL (paje_event_t event);
+void TRACE_paje_dump_buffer (int force);
+void dump_comment_file (const char *filename);
+void dump_comment (const char *comment);
+
+
+
+
+typedef struct instr_trace_writer {
+  void (*print_DefineContainerType) (paje_event_t event);
+  void (*print_DefineVariableType)(paje_event_t event);
+  void (*print_DefineStateType)(paje_event_t event);
+  void (*print_DefineEventType)(paje_event_t event);
+  void (*print_DefineLinkType)(paje_event_t event);
+  void (*print_DefineEntityValue)(paje_event_t event);
+  void (*print_CreateContainer)(paje_event_t event);
+  void (*print_DestroyContainer)(paje_event_t event);
+  void (*print_SetVariable)(paje_event_t event);
+  void (*print_AddVariable)(paje_event_t event);
+  void (*print_SubVariable)(paje_event_t event);
+  void (*print_SetState)(paje_event_t event);
+  void (*print_PushState)(paje_event_t event);
+  void (*print_PopState)(paje_event_t event);
+  void (*print_ResetState)(paje_event_t event);
+  void (*print_StartLink)(paje_event_t event);
+  void (*print_EndLink)(paje_event_t event);
+  void (*print_NewEvent) (paje_event_t event);
+} s_instr_trace_writer_t;
+
+
+
+struct s_instr_extra_data;
+typedef struct s_instr_extra_data *instr_extra_data;
+
+
+typedef enum{
+  TRACING_INIT,
+  TRACING_FINALIZE,
+  TRACING_COMM_SIZE,
+  TRACING_COMM_SPLIT,
+  TRACING_COMM_DUP,
+  TRACING_SEND,
+  TRACING_ISEND,
+  TRACING_SSEND,
+  TRACING_ISSEND,
+  TRACING_RECV,
+  TRACING_IRECV,
+  TRACING_SENDRECV,
+  TRACING_WAIT,
+  TRACING_WAITALL,
+  TRACING_WAITANY,
+  TRACING_BARRIER,
+  TRACING_BCAST,
+  TRACING_REDUCE,
+  TRACING_ALLREDUCE,
+  TRACING_ALLTOALL,
+  TRACING_ALLTOALLV,
+  TRACING_GATHER,
+  TRACING_GATHERV,
+  TRACING_SCATTER,
+  TRACING_SCATTERV,
+  TRACING_ALLGATHER,
+  TRACING_ALLGATHERV,
+  TRACING_REDUCE_SCATTER,
+  TRACING_COMPUTING,
+  TRACING_SCAN,
+  TRACING_EXSCAN
+} e_caller_type ;
+
+
+
+typedef struct s_instr_extra_data {
+  e_caller_type type;
+  int send_size;
+  int recv_size;
+  double comp_size;
+  int src;
+  int dst;
+  int root;
+  const char* datatype1;
+  const char* datatype2;
+  int * sendcounts;
+  int * recvcounts;
+  int num_processes;
+} s_instr_extra_data_t;
+
 #ifdef __cplusplus
 }
 #endif
 
+
 #endif /* HAVE_TRACING */
 
 #ifdef HAVE_JEDULE
 #include "instr/jedule/jedule_sd_binding.h"
 #endif
 
+
+
+
+
+
 #endif /* INSTR_PRIVATE_H_ */
diff --git a/src/instr/instr_trace.c b/src/instr/instr_trace.c
new file mode 100644 (file)
index 0000000..005ec35
--- /dev/null
@@ -0,0 +1,498 @@
+/* Copyright (c) 2010-2013. 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 "instr/instr_private.h"
+#include "xbt/virtu.h" /* sg_cmdline */
+
+#ifdef HAVE_TRACING
+
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(instr_trace, instr, "tracing event system");
+
+
+FILE *tracing_file = NULL;
+
+void print_NULL(paje_event_t event){}
+
+/* The active set of functions for the selected trace format
+ * By default, they all do nothing, hence the print_NULL to avoid segfaults */
+
+s_instr_trace_writer_t active_writer = {
+    print_NULL, print_NULL, print_NULL, print_NULL,
+    print_NULL, print_NULL, print_NULL, print_NULL,
+    print_NULL, print_NULL, print_NULL, print_NULL,
+    print_NULL, print_NULL, print_NULL, print_NULL,
+    print_NULL, print_NULL
+};
+
+xbt_dynar_t buffer = NULL;
+
+void dump_comment (const char *comment)
+{
+  if (!strlen(comment)) return;
+  fprintf (tracing_file, "# %s\n", comment);
+}
+
+void dump_comment_file (const char *filename)
+{
+  if (!strlen(filename)) return;
+  FILE *file = fopen (filename, "r");
+  if (!file){
+    THROWF (system_error, 1, "Comment file %s could not be opened for reading.", filename);
+  }
+  while (!feof(file)){
+    char c;
+    c = fgetc(file);
+    if (feof(file)) break;
+    fprintf (tracing_file, "# ");
+    while (c != '\n'){
+      fprintf (tracing_file, "%c", c);
+      c = fgetc(file);
+      if (feof(file)) break;
+    }
+    fprintf (tracing_file, "\n");
+  }
+  fclose(file);
+}
+
+void TRACE_init()
+{
+  buffer = xbt_dynar_new(sizeof(paje_event_t), NULL);
+}
+
+void TRACE_finalize()
+{
+  xbt_dynar_free(&buffer);
+}
+
+double TRACE_last_timestamp_to_dump = 0;
+//dumps the trace file until the timestamp TRACE_last_timestamp_to_dump
+void TRACE_paje_dump_buffer (int force)
+{
+  if (!TRACE_is_enabled()) return;
+  XBT_DEBUG("%s: dump until %f. starts", __FUNCTION__, TRACE_last_timestamp_to_dump);
+  if (force){
+    paje_event_t event;
+    unsigned int i;
+    xbt_dynar_foreach(buffer, i, event){
+      event->print (event);
+      event->free (event);
+    }
+    xbt_dynar_free (&buffer);
+    buffer = xbt_dynar_new (sizeof(paje_event_t), NULL);
+  }else{
+    paje_event_t event;
+    unsigned int cursor;
+    xbt_dynar_foreach(buffer, cursor, event) {
+      double head_timestamp = event->timestamp;
+      if (head_timestamp > TRACE_last_timestamp_to_dump){
+        break;
+      }
+      event->print (event);
+      event->free (event);
+    }
+    xbt_dynar_remove_n_at(buffer, cursor, 0);
+  }
+  XBT_DEBUG("%s: ends", __FUNCTION__);
+}
+
+/* internal do the instrumentation module */
+static void insert_into_buffer (paje_event_t tbi)
+{
+  if (TRACE_buffer() == 0){
+    tbi->print (tbi);
+    tbi->free (tbi);
+    return;
+  }
+
+  XBT_DEBUG("%s: insert event_type=%d, timestamp=%f, buffersize=%lu)",
+      __FUNCTION__, (int)tbi->event_type, tbi->timestamp, xbt_dynar_length(buffer));
+
+  unsigned int i;
+  for (i = xbt_dynar_length(buffer); i > 0; i--) {
+    paje_event_t e1 = *(paje_event_t*)xbt_dynar_get_ptr(buffer, i - 1);
+    if (e1->timestamp <= tbi->timestamp)
+      break;
+  }
+  xbt_dynar_insert_at(buffer, i, &tbi);
+  if (i == 0)
+    XBT_DEBUG("%s: inserted at beginning", __FUNCTION__);
+  else
+    XBT_DEBUG("%s: inserted at%s %u", __FUNCTION__,
+              (i == xbt_dynar_length(buffer) - 1 ? " end, pos =" : ""), i);
+}
+
+
+static void free_paje_event (paje_event_t event)
+{
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+  switch (event->event_type){
+  case PAJE_StartLink:
+    xbt_free (((startLink_t)(event->data))->value);
+    xbt_free (((startLink_t)(event->data))->key);
+    break;
+  case PAJE_EndLink:
+    xbt_free (((endLink_t)(event->data))->value);
+    xbt_free (((endLink_t)(event->data))->key);
+    break;
+  default:
+    break;
+  }
+  xbt_free (event->data);
+  xbt_free (event);
+}
+
+void new_pajeDefineContainerType(type_t type)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_DefineContainerType;
+  event->timestamp = 0;
+  event->print = active_writer.print_DefineContainerType;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_defineContainerType_t, 1);
+  ((defineContainerType_t)(event->data))->type = type;
+
+  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
+
+  //print it
+  event->print (event);
+  event->free (event);
+}
+
+void new_pajeDefineVariableType(type_t type)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_DefineVariableType;
+  event->timestamp = 0;
+  event->print = active_writer.print_DefineVariableType;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_defineVariableType_t, 1);
+  ((defineVariableType_t)(event->data))->type = type;
+
+  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
+
+  //print it
+  event->print (event);
+  event->free (event);
+}
+
+void new_pajeDefineStateType(type_t type)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_DefineStateType;
+  event->timestamp = 0;
+  event->print = active_writer.print_DefineStateType;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_defineStateType_t, 1);
+  ((defineStateType_t)(event->data))->type = type;
+
+  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
+
+  //print it
+  event->print (event);
+  event->free (event);
+}
+
+void new_pajeDefineEventType(type_t type)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_DefineEventType;
+  event->timestamp = 0;
+  event->print = active_writer.print_DefineEventType;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_defineEventType_t, 1);
+  ((defineEventType_t)(event->data))->type = type;
+
+  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
+
+  //print it
+  event->print (event);
+  event->free (event);
+}
+
+void new_pajeDefineLinkType(type_t type, type_t source, type_t dest)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_DefineLinkType;
+  event->timestamp = 0;
+  event->print = active_writer.print_DefineLinkType;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_defineLinkType_t, 1);
+  ((defineLinkType_t)(event->data))->type = type;
+  ((defineLinkType_t)(event->data))->source = source;
+  ((defineLinkType_t)(event->data))->dest = dest;
+
+  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
+
+  //print it
+  event->print (event);
+  event->free (event);
+}
+
+void new_pajeDefineEntityValue (val_t value)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_DefineEntityValue;
+  event->timestamp = 0;
+  event->print = active_writer.print_DefineEntityValue;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_defineEntityValue_t, 1);
+  ((defineEntityValue_t)(event->data))->value = value;
+
+  XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
+
+  //print it
+  event->print (event);
+  event->free (event);
+}
+
+void new_pajeCreateContainer (container_t container)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_CreateContainer;
+  event->timestamp = SIMIX_get_clock();
+  event->print = active_writer.print_CreateContainer;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_createContainer_t, 1);
+  ((createContainer_t)(event->data))->container = container;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  //print it
+  event->print (event);
+  event->free (event);
+}
+
+void new_pajeDestroyContainer (container_t container)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_DestroyContainer;
+  event->timestamp = SIMIX_get_clock();
+  event->print = active_writer.print_DestroyContainer;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_destroyContainer_t, 1);
+  ((destroyContainer_t)(event->data))->container = container;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  //print it
+  event->print (event);
+  event->free (event);
+}
+
+void new_pajeSetVariable (double timestamp, container_t container, type_t type, double value)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_SetVariable;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_SetVariable;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_setVariable_t, 1);
+  ((setVariable_t)(event->data))->type = type;
+  ((setVariable_t)(event->data))->container = container;
+  ((setVariable_t)(event->data))->value = value;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+
+void new_pajeAddVariable (double timestamp, container_t container, type_t type, double value)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_AddVariable;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_AddVariable;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_addVariable_t, 1);
+  ((addVariable_t)(event->data))->type = type;
+  ((addVariable_t)(event->data))->container = container;
+  ((addVariable_t)(event->data))->value = value;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+void new_pajeSubVariable (double timestamp, container_t container, type_t type, double value)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_SubVariable;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_SubVariable;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_subVariable_t, 1);
+  ((subVariable_t)(event->data))->type = type;
+  ((subVariable_t)(event->data))->container = container;
+  ((subVariable_t)(event->data))->value = value;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+void new_pajeSetState (double timestamp, container_t container, type_t type, val_t value)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_SetState;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_SetState;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_setState_t, 1);
+  ((setState_t)(event->data))->type = type;
+  ((setState_t)(event->data))->container = container;
+  ((setState_t)(event->data))->value = value;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+
+void new_pajePushStateWithExtra (double timestamp, container_t container, type_t type, val_t value, void* extra)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_PushState;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_PushState;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_pushState_t, 1);
+  ((pushState_t)(event->data))->type = type;
+  ((pushState_t)(event->data))->container = container;
+  ((pushState_t)(event->data))->value = value;
+  ((pushState_t)(event->data))->extra = extra;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+
+void new_pajePushState (double timestamp, container_t container, type_t type, val_t value)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_PushState;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_PushState;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_pushState_t, 1);
+  ((pushState_t)(event->data))->type = type;
+  ((pushState_t)(event->data))->container = container;
+  ((pushState_t)(event->data))->value = value;
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+void new_pajePopState (double timestamp, container_t container, type_t type)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_PopState;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_PopState;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_popState_t, 1);
+  ((popState_t)(event->data))->type = type;
+  ((popState_t)(event->data))->container = container;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+
+void new_pajeResetState (double timestamp, container_t container, type_t type)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_ResetState;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_ResetState;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_resetState_t, 1);
+  ((resetState_t)(event->data))->type = type;
+  ((resetState_t)(event->data))->container = container;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+void new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_StartLink;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_StartLink;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_startLink_t, 1);
+  ((startLink_t)(event->data))->type = type;
+  ((startLink_t)(event->data))->container = container;
+  ((startLink_t)(event->data))->sourceContainer = sourceContainer;
+  ((startLink_t)(event->data))->value = xbt_strdup(value);
+  ((startLink_t)(event->data))->key = xbt_strdup(key);
+  ((startLink_t)(event->data))->size = -1;
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+void new_pajeStartLinkWithSize (double timestamp, container_t container, type_t type, container_t sourceContainer, const char *value, const char *key, int size)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_StartLink;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_StartLink;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_startLink_t, 1);
+  ((startLink_t)(event->data))->type = type;
+  ((startLink_t)(event->data))->container = container;
+  ((startLink_t)(event->data))->sourceContainer = sourceContainer;
+  ((startLink_t)(event->data))->value = xbt_strdup(value);
+  ((startLink_t)(event->data))->key = xbt_strdup(key);
+  ((startLink_t)(event->data))->size = size;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+void new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer, const char *value, const char *key)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_EndLink;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_EndLink;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_endLink_t, 1);
+  ((endLink_t)(event->data))->type = type;
+  ((endLink_t)(event->data))->container = container;
+  ((endLink_t)(event->data))->destContainer = destContainer;
+  ((endLink_t)(event->data))->value = xbt_strdup(value);
+  ((endLink_t)(event->data))->key = xbt_strdup(key);
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+void new_pajeNewEvent (double timestamp, container_t container, type_t type, val_t value)
+{
+  paje_event_t event = xbt_new0(s_paje_event_t, 1);
+  event->event_type = PAJE_NewEvent;
+  event->timestamp = timestamp;
+  event->print = active_writer.print_NewEvent;
+  event->free = free_paje_event;
+  event->data = xbt_new0(s_newEvent_t, 1);
+  ((newEvent_t)(event->data))->type = type;
+  ((newEvent_t)(event->data))->container = container;
+  ((newEvent_t)(event->data))->value = value;
+
+  XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+
+  insert_into_buffer (event);
+}
+
+#endif /* HAVE_TRACING */
index f01b3c8..ea59370 100644 (file)
@@ -167,8 +167,6 @@ static void remove_acceptance_pair(int pair_num){
 
   int raw_mem_set = (mmalloc_get_current_heap() == raw_heap);
 
-  fprintf(stderr, "Search acceptance pair %d\n", pair_num);
-
   MC_SET_RAW_MEM;
 
   unsigned int cursor = 0;
@@ -466,6 +464,7 @@ void MC_ddfs(){
   mc_pair_t next_pair = NULL;
   xbt_dynar_t prop_values = NULL;
   mc_visited_pair_t reached_pair = NULL;
+  int counter_example_depth = 0;
   
   if(xbt_fifo_size(mc_stack_liveness) < _sg_mc_max_depth){
 
@@ -476,6 +475,7 @@ void MC_ddfs(){
         if((current_pair->automaton_state->type == 1) || (current_pair->automaton_state->type == 2)){ 
           if((reached_pair = is_reached_acceptance_pair(current_pair->num, current_pair->automaton_state, current_pair->atomic_propositions)) == NULL){
 
+            counter_example_depth = xbt_fifo_size(mc_stack_liveness);
             XBT_INFO("*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*");
             XBT_INFO("|             ACCEPTANCE CYCLE            |");
             XBT_INFO("*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*");
@@ -483,6 +483,7 @@ void MC_ddfs(){
             MC_show_stack_liveness(mc_stack_liveness);
             MC_dump_stack_liveness(mc_stack_liveness);
             MC_print_statistics(mc_stats);
+            XBT_INFO("Counter-example depth : %d", counter_example_depth);
             xbt_abort();
 
           }
index 894ae72..9e45fce 100644 (file)
@@ -425,9 +425,10 @@ xbt_dict_t MSG_host_get_storage_content(msg_host_t host)
   xbt_dict_t storage_list = simcall_host_get_storage_list(host);
 
   xbt_dict_foreach(storage_list,cursor,mount_name,storage_name){
-       storage = (msg_storage_t)xbt_lib_get_elm_or_null(storage_lib,storage_name);
-       xbt_dict_t content = simcall_storage_get_content(storage);
-       xbt_dict_set(contents,mount_name, content,NULL);
+    storage = (msg_storage_t)xbt_lib_get_elm_or_null(storage_lib,storage_name);
+    xbt_dict_t content = simcall_storage_get_content(storage);
+    xbt_dict_set(contents,mount_name, content,NULL);
   }
+  xbt_dict_free(&storage_list);
   return contents;
 }
index dc6cae3..0b816a1 100644 (file)
@@ -191,6 +191,16 @@ xbt_dict_t MSG_file_ls(const char *mount, const char *path)
   return simcall_file_ls(mount, path);
 }
 
+/*
+ * Set the file position indicator in the msg_file_t by adding offset bytes
+ * to the position specified by whence (either SEEK_SET, SEEK_CUR, or SEEK_END).
+ */
+msg_error_t MSG_file_seek (msg_file_t fd, sg_storage_size_t offset, int whence)
+{
+  THROW_UNIMPLEMENTED;
+  return MSG_OK;
+}
+
 /********************************* Storage **************************************/
 
 /** @addtogroup msg_storage_management
@@ -199,8 +209,6 @@ xbt_dict_t MSG_file_ls(const char *mount, const char *path)
  *
  */
 
-
-/* TODO: PV: to comment */
 msg_storage_t __MSG_storage_create(smx_storage_t storage)
 {
   const char *name = SIMIX_storage_get_name(storage);
@@ -340,3 +348,24 @@ sg_storage_size_t MSG_storage_get_size(msg_storage_t storage)
 {
   return SIMIX_storage_get_size(storage);
 }
+
+/*
+ * Rename the file in the contents of its associated storage.
+ */
+msg_error_t MSG_storage_file_rename(msg_storage_t storage, const char* src,  const char* dest)
+{
+  simcall_storage_file_rename(storage, src, dest);
+  return MSG_OK;
+}
+
+/*
+ * Move a file to another location. Depending on the values of dest, dest, mount,
+ * and fullname, this move can be local or remote and, within a host, on the same
+ * mounted disk or between mounted disks.
+ *
+ */
+msg_error_t MSG_storage_file_move (msg_file_t fd, msg_host_t dest, char* mount, char* fullname)
+{
+  THROW_UNIMPLEMENTED;
+  return MSG_OK;
+}
index 287cb9c..87b0c9d 100644 (file)
@@ -275,10 +275,9 @@ xbt_dynar_t SD_daxload(const char *filename)
   xbt_dynar_push(result, &root_task);
   end_task = SD_task_create_comp_seq("end", NULL, 0);
 
-  _XBT_GNUC_UNUSED int res;
-  res = dax_lex();
-  xbt_assert(!res, "Parse error in %s: %s", filename,
-              dax__parse_err_msg());
+  int res = dax_lex();
+  if (res != 0)
+    xbt_die("Parse error in %s: %s", filename, dax__parse_err_msg());
   dax__delete_buffer(input_buffer);
   fclose(in_file);
   dax_lex_destroy();
index ab69aec..11cf929 100644 (file)
@@ -55,6 +55,9 @@ static void sg_config_cmd_line(int *argc, char **argv)
 
       xbt_cfg_set_parse(_sg_cfg_set, opt);
       XBT_DEBUG("Did apply '%s' as config setting", opt);
+    } else if (!strcmp(argv[i], "--version")) {
+      printf("%s\n", SIMGRID_VERSION_STRING);
+      shall_exit = 1;
     } else if (!strcmp(argv[i], "--cfg-help") || !strcmp(argv[i], "--help")) {
       printf
           ("Description of the configuration accepted by this simulator:\n");
@@ -71,6 +74,8 @@ static void sg_config_cmd_line(int *argc, char **argv)
 #endif
 "\n"
 "You can also use --help-logs and --help-log-categories to see the details of logging output.\n"
+"\n"
+"You can also use --version to get SimGrid version information.\n"
 "\n"
         );
       shall_exit = 1;
@@ -618,12 +623,12 @@ void sg_config_init(int *argc, char **argv)
             "Context factory to use in SIMIX. Possible values: thread");
     const char *dflt_ctx_fact = "thread";
 #ifdef CONTEXT_UCONTEXT
-    strcat(description, ", ucontext");
     dflt_ctx_fact = "ucontext";
+    strcat(strcat(description, ", "), dflt_ctx_fact);
 #endif
 #ifdef HAVE_RAWCTX
-    strcat(description, ", raw");
     dflt_ctx_fact = "raw";
+    strcat(strcat(description, ", "), dflt_ctx_fact);
 #endif
     strcat(description, ".");
     xbt_cfg_register(&_sg_cfg_set, "contexts/factory", description,
@@ -635,6 +640,8 @@ void sg_config_init(int *argc, char **argv)
                      "Stack size of contexts in Kib",
                      xbt_cfgelm_int, 1, 1, _sg_cfg_cb_context_stack_size, NULL);
     xbt_cfg_setdefault_int(_sg_cfg_set, "contexts/stack_size", 128);
+    /* No, it was not set yet (the above setdefault() changed this to 1). */
+    smx_context_stack_size_was_set = 0;
 
     /* number of parallel threads for user processes */
     xbt_cfg_register(&_sg_cfg_set, "contexts/nthreads",
@@ -703,7 +710,7 @@ void sg_config_init(int *argc, char **argv)
     xbt_cfg_setdefault_boolean(_sg_cfg_set, "smpi/use_shared_malloc", "yes");
 
     xbt_cfg_register(&_sg_cfg_set, "smpi/cpu_threshold",
-                     "Minimal computation time (in seconds) not discarded.",
+                     "Minimal computation time (in seconds) not discarded, or -1 for infinity.",
                      xbt_cfgelm_double, 1, 1, NULL, NULL);
     xbt_cfg_setdefault_double(_sg_cfg_set, "smpi/cpu_threshold", 1e-6);
 
index e638bb7..707cf77 100644 (file)
@@ -127,7 +127,7 @@ XBT_INLINE int SIMIX_context_get_nthreads(void) {
  *
  * \param nb_threads the number of threads to use
  */
-XBT_INLINE void SIMIX_context_set_nthreads(int nb_threads) {
+void SIMIX_context_set_nthreads(int nb_threads) {
   if (nb_threads<=0) {  
      nb_threads = xbt_os_get_numcores();
      XBT_INFO("Auto-setting contexts/nthreads to %d",nb_threads);
index f177592..f3ba022 100644 (file)
@@ -290,6 +290,16 @@ xbt_dynar_t SIMIX_file_get_info(smx_process_t process, smx_file_t fd)
   return  surf_workstation_get_info(host, fd->surf_file);
 }
 
+void SIMIX_pre_storage_file_rename(smx_simcall_t simcall, smx_storage_t storage, const char* src, const char* dest)
+{
+  return SIMIX_storage_file_rename(simcall->issuer, storage, src, dest);
+}
+
+void SIMIX_storage_file_rename(smx_process_t process, smx_storage_t storage, const char* src, const char* dest)
+{
+  return  surf_storage_rename(storage, src, dest);
+}
+
 sg_storage_size_t SIMIX_pre_storage_get_free_size(smx_simcall_t simcall, const char* name)
 {
   return SIMIX_storage_get_free_size(simcall->issuer, name);
index a3fea00..864656b 100644 (file)
@@ -34,6 +34,7 @@ void SIMIX_pre_file_ls(smx_simcall_t simcall,
                        const char* mount, const char* path);
 sg_storage_size_t SIMIX_pre_file_get_size(smx_simcall_t simcall, smx_file_t fd);
 xbt_dynar_t SIMIX_pre_file_get_info(smx_simcall_t simcall, smx_file_t fd);
+void SIMIX_pre_storage_file_rename(smx_simcall_t simcall,smx_storage_t storage, const char* src, const char* dest);
 
 void* SIMIX_file_get_data(smx_file_t fd);
 void SIMIX_file_set_data(smx_file_t fd, void *data);
@@ -47,6 +48,7 @@ smx_action_t SIMIX_file_ls(smx_process_t process, const char *mount,
                            const char *path);
 sg_storage_size_t SIMIX_file_get_size(smx_process_t process, smx_file_t fd);
 xbt_dynar_t SIMIX_file_get_info(smx_process_t process, smx_file_t fd);
+void SIMIX_storage_file_rename(smx_process_t process, smx_storage_t storage, const char* src, const char* dest);
 
 sg_storage_size_t SIMIX_pre_storage_get_free_size(smx_simcall_t simcall,const char* name);
 sg_storage_size_t SIMIX_storage_get_free_size(smx_process_t process,const char* name);
index 5e849a6..6188ec6 100644 (file)
@@ -26,6 +26,7 @@ static smx_action_t SIMIX_fifo_get_comm(xbt_fifo_t fifo, e_smx_comm_type_t type,
                                         int (*match_fun)(void *, void *,smx_action_t),
                                         void *user_data, smx_action_t my_action);
 static void SIMIX_rdv_free(void *data);
+static void SIMIX_comm_start(smx_action_t action);
 
 void SIMIX_network_init(void)
 {
@@ -835,7 +836,7 @@ void SIMIX_waitany_remove_simcall_from_actions(smx_simcall_t simcall)
  *  \brief Starts the simulation of a communication action.
  *  \param action the communication action
  */
-XBT_INLINE void SIMIX_comm_start(smx_action_t action)
+static XBT_INLINE void SIMIX_comm_start(smx_action_t action)
 {
   /* If both the sender and the receiver are already there, start the communication */
   if (action->state == SIMIX_READY) {
index 72bcffa..fecdd3e 100644 (file)
@@ -34,7 +34,6 @@ int SIMIX_rdv_comm_count_by_host(smx_rdv_t rdv, smx_host_t host);
 smx_action_t SIMIX_rdv_get_head(smx_rdv_t rdv);
 void SIMIX_rdv_set_receiver(smx_rdv_t rdv, smx_process_t proc);
 smx_process_t SIMIX_rdv_get_receiver(smx_rdv_t rdv);
-void SIMIX_comm_start(smx_action_t action);
 smx_action_t SIMIX_comm_isend(smx_process_t src_proc, smx_rdv_t rdv,
                               double task_size, double rate,
                               void *src_buff, size_t src_buff_size,
index 87bce4a..89b6d68 100644 (file)
@@ -92,6 +92,7 @@
 #define TFPTR(n) (n, FPtr, fp, FPtr)
 #define TCPTR(n) (n, const void*, cp)
 #define TSIZE(n) (n, size_t, si)
+#define TSGSTSIZE(n) (n, sg_storage_size_t, sgstsi)
 #define TVOID(n) (n, void)
 #define TDSPEC(n,t) (n, t, dp, void*)
 #define TFSPEC(n,t) (n, t, fp, FPtr)
@@ -300,6 +301,7 @@ ACTION(SIMCALL_HOST_EXECUTION_SET_PRIORITY, host_execution_set_priority, WITH_AN
 ACTION(SIMCALL_HOST_EXECUTION_SET_BOUND, host_execution_set_bound, WITH_ANSWER, TVOID(result), TDSPEC(execution, smx_action_t), TDOUBLE(bound)) sep \
 ACTION(SIMCALL_HOST_EXECUTION_SET_AFFINITY, host_execution_set_affinity, WITH_ANSWER, TVOID(result), TDSPEC(execution, smx_action_t), TDSPEC(ws, smx_host_t), TULONG(mask)) sep \
 ACTION(SIMCALL_HOST_EXECUTION_WAIT, host_execution_wait, WITHOUT_ANSWER, TINT(result), TDSPEC(execution, smx_action_t)) sep \
+ACTION(SIMCALL_HOST_GET_STORAGE_LIST, host_get_storage_list, WITH_ANSWER, TDSPEC(result, xbt_dict_t), TDSPEC(host, smx_host_t)) sep \
 ACTION(SIMCALL_HOST_GET_PARAMS, host_get_params, WITH_ANSWER, TVOID(result), TDSPEC(ind_vm, smx_host_t), TDSPEC(params, ws_params_t)) sep \
 ACTION(SIMCALL_HOST_SET_PARAMS, host_set_params, WITH_ANSWER, TVOID(result), TDSPEC(ind_vm, smx_host_t), TDSPEC(params, ws_params_t)) sep \
 ACTION(SIMCALL_VM_CREATE, vm_create, WITH_ANSWER, TDPTR(result), TSTRING(name), TDSPEC(ind_pm, smx_host_t)) sep \
@@ -316,7 +318,6 @@ ACTION(SIMCALL_VM_RESUME,    vm_resume,    WITH_ANSWER, TVOID(result), TDSPEC(in
 ACTION(SIMCALL_VM_SHUTDOWN,  vm_shutdown,  WITH_ANSWER, TVOID(result), TDSPEC(ind_vm, smx_host_t)) sep \
 ACTION(SIMCALL_VM_SAVE,      vm_save,      WITH_ANSWER, TVOID(result), TDSPEC(ind_vm, smx_host_t)) sep \
 ACTION(SIMCALL_VM_RESTORE,   vm_restore,   WITH_ANSWER, TVOID(result), TDSPEC(ind_vm, smx_host_t)) sep \
-ACTION(SIMCALL_HOST_GET_STORAGE_LIST, host_get_storage_list, WITH_ANSWER, TDSPEC(result, xbt_dict_t), TDSPEC(host, smx_host_t)) sep \
 ACTION(SIMCALL_PROCESS_CREATE, process_create, WITH_ANSWER, TVOID(result), TDSPEC(process, smx_process_t*), TSTRING(name), TFSPEC(code, xbt_main_func_t), TDPTR(data), TSTRING(hostname), TDOUBLE(kill_time), TINT(argc), TDSPEC(argv, char**), TDSPEC(properties, xbt_dict_t), TINT(auto_restart)) sep \
 ACTION(SIMCALL_PROCESS_KILL, process_kill, WITH_ANSWER, TVOID(result), TDSPEC(process, smx_process_t)) sep \
 ACTION(SIMCALL_PROCESS_KILLALL, process_killall, WITH_ANSWER, TVOID(result), TINT(reset_pid)) sep \
@@ -391,11 +392,12 @@ ACTION(SIMCALL_FILE_UNLINK, file_unlink, WITH_ANSWER, TINT(result), TDSPEC(fd, s
 ACTION(SIMCALL_FILE_LS, file_ls, WITHOUT_ANSWER, TDSPEC(result, xbt_dict_t), TSTRING(mount), TSTRING(path)) sep \
 ACTION(SIMCALL_FILE_GET_SIZE, file_get_size, WITH_ANSWER, TSIZE(result), TDSPEC(fd, smx_file_t)) sep \
 ACTION(SIMCALL_FILE_GET_INFO, file_get_info, WITH_ANSWER, TDSPEC(result, xbt_dynar_t), TDSPEC(fd, smx_file_t)) sep \
+ACTION(SIMCALL_STORAGE_FILE_RENAME, storage_file_rename, WITH_ANSWER, TVOID(result), TDSPEC(storage, smx_storage_t), TSTRING(src), TSTRING(dest)) sep \
 ACTION(SIMCALL_STORAGE_GET_FREE_SIZE, storage_get_free_size, WITH_ANSWER, TSIZE(result), TSTRING(name)) sep \
 ACTION(SIMCALL_STORAGE_GET_USED_SIZE, storage_get_used_size, WITH_ANSWER, TSIZE(result), TSTRING(name)) sep \
 ACTION(SIMCALL_STORAGE_GET_PROPERTIES, storage_get_properties, WITH_ANSWER, TDSPEC(result, xbt_dict_t), TDSPEC(storage, smx_storage_t)) sep \
 ACTION(SIMCALL_STORAGE_GET_CONTENT, storage_get_content, WITH_ANSWER, TDSPEC(result, xbt_dict_t), TDSPEC(storage, smx_storage_t)) sep \
-ACTION(SIMCALL_ASR_GET_PROPERTIES, asr_get_properties, WITH_ANSWER, TDSPEC(result, xbt_dict_t), TSTRING(name)) sep
+ACTION(SIMCALL_ASR_GET_PROPERTIES, asr_get_properties, WITH_ANSWER, TDSPEC(result, xbt_dict_t), TSTRING(name)) sep 
 
 /* SIMCALL_COMM_IS_LATENCY_BOUNDED and SIMCALL_SET_CATEGORY make things complicated
  * because they are not always present */
@@ -462,6 +464,7 @@ union u_smx_scalar {
   float           f;
   double          d;
   size_t          si;
+  sg_storage_size_t  sgstsi;
   void*           dp;
   FPtr            fp;
   const void*     cp;
index a2261cd..5c8bfea 100644 (file)
@@ -1485,6 +1485,15 @@ xbt_dynar_t simcall_file_get_info(smx_file_t fd)
   return simcall_BODY_file_get_info(fd);
 }
 
+/**
+ * \ingroup simix_file_management
+ *
+ */
+void simcall_storage_file_rename(smx_storage_t storage, const char* src,  const char* dest)
+{
+  return simcall_BODY_storage_file_rename(storage, src, dest);
+}
+
 /**
  * \ingroup simix_storage_management
  * \brief Returns the free space size on a given storage element.
index b511fb9..3bbad64 100644 (file)
@@ -15,10 +15,7 @@ int smpi_coll_tuned_allgather_SMP_NTS(void *sbuf, int scount,
   rextent = smpi_datatype_get_extent(rtype);
   sextent = smpi_datatype_get_extent(stype);
   int tag = COLL_TAG_ALLGATHER;
-  MPI_Request request;
-  MPI_Request rrequest_array[128];
 
-  MPI_Status status;
   int i, send_offset, recv_offset;
   int intra_rank, inter_rank;
   intra_rank = rank % NUM_CORE;
@@ -41,7 +38,7 @@ int smpi_coll_tuned_allgather_SMP_NTS(void *sbuf, int scount,
   recv_offset = rank * rextent * rcount;
   smpi_mpi_sendrecv(sbuf, scount, stype, rank, tag,
                ((char *) rbuf + recv_offset), rcount, rtype, rank, tag, comm,
-               &status);
+               MPI_STATUS_IGNORE);
 
   //gather to root of each SMP
 
@@ -57,7 +54,7 @@ int smpi_coll_tuned_allgather_SMP_NTS(void *sbuf, int scount,
 
     smpi_mpi_sendrecv(sbuf, scount, stype, dst, tag,
                  ((char *) rbuf + recv_offset), rcount, rtype, src, tag, comm,
-                 &status);
+                 MPI_STATUS_IGNORE);
 
   }
 
@@ -67,6 +64,9 @@ int smpi_coll_tuned_allgather_SMP_NTS(void *sbuf, int scount,
 
   // root of each SMP
   if (intra_rank == 0) {
+    MPI_Request *rrequest_array = xbt_new(MPI_Request, inter_comm_size - 1);
+    MPI_Request *srequest_array = xbt_new(MPI_Request, inter_comm_size - 1);
+
     src = ((inter_rank - 1 + inter_comm_size) % inter_comm_size) * NUM_CORE;
     dst = ((inter_rank + 1) % inter_comm_size) * NUM_CORE;
 
@@ -75,27 +75,28 @@ int smpi_coll_tuned_allgather_SMP_NTS(void *sbuf, int scount,
       recv_offset =
           ((inter_rank - i - 1 +
             inter_comm_size) % inter_comm_size) * NUM_CORE * sextent * scount;
-      rrequest_array[i] = smpi_mpi_irecv((char *)rbuf+recv_offset, rcount * NUM_CORE, rtype, src, tag+i, comm);
+      rrequest_array[i] = smpi_mpi_irecv((char *)rbuf + recv_offset, rcount * NUM_CORE,
+                                         rtype, src, tag + i, comm);
     }
 
     // send first message
     send_offset =
         ((inter_rank +
           inter_comm_size) % inter_comm_size) * NUM_CORE * sextent * scount;
-    smpi_mpi_isend((char *) rbuf + send_offset, scount * NUM_CORE, stype,
-                   dst, tag, comm);
+    srequest_array[0] = smpi_mpi_isend((char *)rbuf + send_offset, scount * NUM_CORE,
+                                       stype, dst, tag, comm);
 
     // loop : recv-inter , send-inter, send-intra (linear-bcast)
     for (i = 0; i < inter_comm_size - 2; i++) {
       recv_offset =
           ((inter_rank - i - 1 +
             inter_comm_size) % inter_comm_size) * NUM_CORE * sextent * scount;
-      smpi_mpi_wait(&rrequest_array[i], &status);
-      smpi_mpi_isend((char *) rbuf + recv_offset, scount * NUM_CORE, stype,
-                     dst, tag + i + 1, comm);
+      smpi_mpi_wait(&rrequest_array[i], MPI_STATUS_IGNORE);
+      srequest_array[i + 1] = smpi_mpi_isend((char *)rbuf + recv_offset, scount * NUM_CORE,
+                                             stype, dst, tag + i + 1, comm);
       if (num_core_in_current_smp > 1) {
-        request = smpi_mpi_isend((char *) rbuf + recv_offset, scount * NUM_CORE, stype,
-                  (rank + 1), tag + i + 1, comm);
+        smpi_mpi_send((char *)rbuf + recv_offset, scount * NUM_CORE,
+                      stype, (rank + 1), tag + i + 1, comm);
       }
     }
 
@@ -105,11 +106,15 @@ int smpi_coll_tuned_allgather_SMP_NTS(void *sbuf, int scount,
           inter_comm_size) % inter_comm_size) * NUM_CORE * sextent * scount;
     //recv_offset = ((inter_rank + 1) % inter_comm_size) * NUM_CORE * sextent * scount;
     //i=inter_comm_size-2;
-    smpi_mpi_wait(&rrequest_array[i], &status);
+    smpi_mpi_wait(&rrequest_array[i], MPI_STATUS_IGNORE);
     if (num_core_in_current_smp > 1) {
-      request = smpi_mpi_isend((char *) rbuf + recv_offset, scount * NUM_CORE, stype,
-                (rank + 1), tag + i + 1, comm);
+      smpi_mpi_send((char *)rbuf + recv_offset, scount * NUM_CORE,
+                                  stype, (rank + 1), tag + i + 1, comm);
     }
+
+    smpi_mpi_waitall(inter_comm_size - 1, srequest_array, MPI_STATUSES_IGNORE);
+    xbt_free(rrequest_array);
+    xbt_free(srequest_array);
   }
   // last rank of each SMP
   else if (intra_rank == (num_core_in_current_smp - 1)) {
@@ -117,9 +122,8 @@ int smpi_coll_tuned_allgather_SMP_NTS(void *sbuf, int scount,
       recv_offset =
           ((inter_rank - i - 1 +
             inter_comm_size) % inter_comm_size) * NUM_CORE * sextent * scount;
-      request = smpi_mpi_irecv((char *) rbuf + recv_offset, (rcount * NUM_CORE), rtype,
-                rank - 1, tag + i + 1, comm);
-      smpi_mpi_wait(&request, &status);
+      smpi_mpi_recv((char *) rbuf + recv_offset, (rcount * NUM_CORE), rtype,
+                    rank - 1, tag + i + 1, comm, MPI_STATUS_IGNORE);
     }
   }
   // intermediate rank of each SMP
@@ -128,11 +132,10 @@ int smpi_coll_tuned_allgather_SMP_NTS(void *sbuf, int scount,
       recv_offset =
           ((inter_rank - i - 1 +
             inter_comm_size) % inter_comm_size) * NUM_CORE * sextent * scount;
-      request = smpi_mpi_irecv((char *) rbuf + recv_offset, (rcount * NUM_CORE), rtype,
-                rank - 1, tag + i + 1, comm);
-      smpi_mpi_wait(&request, &status);
-      request = smpi_mpi_isend((char *) rbuf + recv_offset, (scount * NUM_CORE), stype,
-                (rank + 1), tag + i + 1, comm);
+      smpi_mpi_recv((char *) rbuf + recv_offset, (rcount * NUM_CORE), rtype,
+                    rank - 1, tag + i + 1, comm, MPI_STATUS_IGNORE);
+      smpi_mpi_send((char *) rbuf + recv_offset, (scount * NUM_CORE), stype,
+                    (rank + 1), tag + i + 1, comm);
     }
   }
 
index 8391807..8094db0 100644 (file)
         /* Short or medium size message and power-of-two no. of processes. Use
-         * recursive doubling algorithm */   
+         * recursive doubling algorithm */
 #include "colls_private.h"
-int smpi_coll_tuned_allgatherv_mpich_rdb ( 
-    void *sendbuf,
-    int sendcount,
-    MPI_Datatype sendtype,
-    void *recvbuf,
-    int *recvcounts,
-    int *displs,
-    MPI_Datatype recvtype,
-    MPI_Comm comm)
+int smpi_coll_tuned_allgatherv_mpich_rdb (
+  void *sendbuf,
+  int sendcount,
+  MPI_Datatype sendtype,
+  void *recvbuf,
+  int *recvcounts,
+  int *displs,
+  MPI_Datatype recvtype,
+  MPI_Comm comm)
 {
-    int        comm_size, rank, j, i;
-    MPI_Status status;
-    MPI_Aint  recvtype_extent, recvtype_true_extent, recvtype_true_lb;
-    int curr_cnt, dst, total_count; 
-    void *tmp_buf;
-    int mask, dst_tree_root, my_tree_root, is_homogeneous, position,  
-        send_offset, recv_offset, last_recv_cnt=0, nprocs_completed, k,
-        offset, tmp_mask, tree_root;
-
-    comm_size = smpi_comm_size(comm);
-    rank = smpi_comm_rank(comm);
-    
-    total_count = 0;
-    for (i=0; i<comm_size; i++)
-        total_count += recvcounts[i];
-
-    if (total_count == 0) return MPI_ERR_COUNT;
-    
-    recvtype_extent=smpi_datatype_get_extent( recvtype);
-
-        is_homogeneous = 1;
-        
-        if (is_homogeneous) {
-            /* need to receive contiguously into tmp_buf because
-               displs could make the recvbuf noncontiguous */
-
-            smpi_datatype_extent(recvtype, &recvtype_true_lb, &recvtype_true_extent);
-
-            tmp_buf= (void*)xbt_malloc(total_count*(max(recvtype_true_extent,recvtype_extent)));
-
-            /* adjust for potential negative lower bound in datatype */
-            tmp_buf = (void *)((char*)tmp_buf - recvtype_true_lb);
-
-            /* copy local data into right location in tmp_buf */ 
-            position = 0;
-            for (i=0; i<rank; i++) position += recvcounts[i];
-            if (sendbuf != MPI_IN_PLACE)
-           {
-                smpi_datatype_copy(sendbuf, sendcount, sendtype,
-                                           ((char *)tmp_buf + position*
-                                            recvtype_extent), 
-                                           recvcounts[rank], recvtype);
-           }
-            else
-           {
-                /* if in_place specified, local data is found in recvbuf */ 
-                smpi_datatype_copy(((char *)recvbuf +
-                                            displs[rank]*recvtype_extent), 
-                                           recvcounts[rank], recvtype,
-                                           ((char *)tmp_buf + position*
-                                            recvtype_extent), 
-                                           recvcounts[rank], recvtype);
+  int        comm_size, rank, j, i;
+  MPI_Status status;
+  MPI_Aint  recvtype_extent, recvtype_true_extent, recvtype_true_lb;
+  int curr_cnt, dst, total_count;
+  void *tmp_buf;
+  int mask, dst_tree_root, my_tree_root, position,
+    send_offset, recv_offset, last_recv_cnt=0, nprocs_completed, k,
+    offset, tmp_mask, tree_root;
+
+  comm_size = smpi_comm_size(comm);
+  rank = smpi_comm_rank(comm);
+
+  total_count = 0;
+  for (i=0; i<comm_size; i++)
+    total_count += recvcounts[i];
+
+  if (total_count == 0) return MPI_ERR_COUNT;
+
+  recvtype_extent=smpi_datatype_get_extent( recvtype);
+
+  /* need to receive contiguously into tmp_buf because
+     displs could make the recvbuf noncontiguous */
+
+  smpi_datatype_extent(recvtype, &recvtype_true_lb, &recvtype_true_extent);
+
+  tmp_buf= (void*)xbt_malloc(total_count*(max(recvtype_true_extent,recvtype_extent)));
+
+  /* adjust for potential negative lower bound in datatype */
+  tmp_buf = (void *)((char*)tmp_buf - recvtype_true_lb);
+
+  /* copy local data into right location in tmp_buf */
+  position = 0;
+  for (i=0; i<rank; i++) position += recvcounts[i];
+  if (sendbuf != MPI_IN_PLACE)
+  {
+    smpi_datatype_copy(sendbuf, sendcount, sendtype,
+                       ((char *)tmp_buf + position*
+                        recvtype_extent),
+                       recvcounts[rank], recvtype);
+  }
+  else
+  {
+    /* if in_place specified, local data is found in recvbuf */
+    smpi_datatype_copy(((char *)recvbuf +
+                        displs[rank]*recvtype_extent),
+                       recvcounts[rank], recvtype,
+                       ((char *)tmp_buf + position*
+                        recvtype_extent),
+                       recvcounts[rank], recvtype);
+  }
+  curr_cnt = recvcounts[rank];
+
+  mask = 0x1;
+  i = 0;
+  while (mask < comm_size) {
+    dst = rank ^ mask;
+
+    /* find offset into send and recv buffers. zero out
+       the least significant "i" bits of rank and dst to
+       find root of src and dst subtrees. Use ranks of
+       roots as index to send from and recv into buffer */
+
+    dst_tree_root = dst >> i;
+    dst_tree_root <<= i;
+
+    my_tree_root = rank >> i;
+    my_tree_root <<= i;
+
+    if (dst < comm_size) {
+      send_offset = 0;
+      for (j=0; j<my_tree_root; j++)
+        send_offset += recvcounts[j];
+
+      recv_offset = 0;
+      for (j=0; j<dst_tree_root; j++)
+        recv_offset += recvcounts[j];
+
+      smpi_mpi_sendrecv(((char *)tmp_buf + send_offset * recvtype_extent),
+                        curr_cnt, recvtype, dst,
+                        COLL_TAG_ALLGATHERV,
+                        ((char *)tmp_buf + recv_offset * recvtype_extent),
+                        total_count - recv_offset, recvtype, dst,
+                        COLL_TAG_ALLGATHERV,
+                        comm, &status);
+      /* for convenience, recv is posted for a bigger amount
+         than will be sent */
+      last_recv_cnt=smpi_mpi_get_count(&status, recvtype);
+      curr_cnt += last_recv_cnt;
     }
-            curr_cnt = recvcounts[rank];
-            
-            mask = 0x1;
-            i = 0;
-            while (mask < comm_size) {
-                dst = rank ^ mask;
-                
-                /* find offset into send and recv buffers. zero out 
-                   the least significant "i" bits of rank and dst to 
-                   find root of src and dst subtrees. Use ranks of 
-                   roots as index to send from and recv into buffer */ 
-                
-                dst_tree_root = dst >> i;
-                dst_tree_root <<= i;
-                
-                my_tree_root = rank >> i;
-                my_tree_root <<= i;
-                
-                if (dst < comm_size) {
-                    send_offset = 0;
-                    for (j=0; j<my_tree_root; j++)
-                        send_offset += recvcounts[j];
-                    
-                    recv_offset = 0;
-                    for (j=0; j<dst_tree_root; j++)
-                        recv_offset += recvcounts[j];
-
-                    smpi_mpi_sendrecv(((char *)tmp_buf + send_offset * recvtype_extent),
-                                                 curr_cnt, recvtype, dst,
-                                                 COLL_TAG_ALLGATHERV,
-                                                 ((char *)tmp_buf + recv_offset * recvtype_extent),
-                                                 total_count - recv_offset, recvtype, dst,
-                                                 COLL_TAG_ALLGATHERV,
-                                                 comm, &status);
-                        /* for convenience, recv is posted for a bigger amount
-                           than will be sent */
-                        last_recv_cnt=smpi_mpi_get_count(&status, recvtype);
-                    curr_cnt += last_recv_cnt;
-                }
-                
-                /* if some processes in this process's subtree in this step
-                   did not have any destination process to communicate with
-                   because of non-power-of-two, we need to send them the
-                   data that they would normally have received from those
-                   processes. That is, the haves in this subtree must send to
-                   the havenots. We use a logarithmic
-                   recursive-halfing algorithm for this. */
-                
-                /* This part of the code will not currently be
-                 executed because we are not using recursive
-                 doubling for non power of two. Mark it as experimental
-                 so that it doesn't show up as red in the coverage
-                 tests. */  
-
-               /* --BEGIN EXPERIMENTAL-- */
-                if (dst_tree_root + mask > comm_size) {
-                    nprocs_completed = comm_size - my_tree_root - mask;
-                    /* nprocs_completed is the number of processes in this
-                       subtree that have all the data. Send data to others
-                       in a tree fashion. First find root of current tree
-                       that is being divided into two. k is the number of
-                       least-significant bits in this process's rank that
-                       must be zeroed out to find the rank of the root */ 
-                    j = mask;
-                    k = 0;
-                    while (j) {
-                        j >>= 1;
-                        k++;
-                    }
-                    k--;
-                    
-                    tmp_mask = mask >> 1;
-                    
-                    while (tmp_mask) {
-                        dst = rank ^ tmp_mask;
-                        
-                        tree_root = rank >> k;
-                        tree_root <<= k;
-                        
-                        /* send only if this proc has data and destination
-                           doesn't have data. at any step, multiple processes
-                           can send if they have the data */
-                        if ((dst > rank) && 
-                            (rank < tree_root + nprocs_completed)
-                            && (dst >= tree_root + nprocs_completed)) {
-
-                            offset = 0;
-                            for (j=0; j<(my_tree_root+mask); j++)
-                                offset += recvcounts[j];
-                            offset *= recvtype_extent;
-
-                            smpi_mpi_send(((char *)tmp_buf + offset),
-                                                     last_recv_cnt,
-                                                     recvtype, dst,
-                                                     COLL_TAG_ALLGATHERV, comm);
-                            /* last_recv_cnt was set in the previous
-                               receive. that's the amount of data to be
-                               sent now. */
-                        }
-                        /* recv only if this proc. doesn't have data and sender
-                           has data */
-                        else if ((dst < rank) && 
-                                 (dst < tree_root + nprocs_completed) &&
-                                 (rank >= tree_root + nprocs_completed)) {
-
-                            offset = 0;
-                            for (j=0; j<(my_tree_root+mask); j++)
-                                offset += recvcounts[j];
-
-                            smpi_mpi_recv(((char *)tmp_buf + offset * recvtype_extent),
-                                                     total_count - offset, recvtype,
-                                                     dst, COLL_TAG_ALLGATHERV,
-                                                     comm, &status);
-                                /* for convenience, recv is posted for a
-                                   bigger amount than will be sent */
-                                last_recv_cnt=smpi_mpi_get_count(&status, recvtype);
-                            curr_cnt += last_recv_cnt;
-                        }
-                        tmp_mask >>= 1;
-                        k--;
-                    }
-                }
-               /* --END EXPERIMENTAL-- */
-                
-                mask <<= 1;
-                i++;
-            }
-
-            /* copy data from tmp_buf to recvbuf */
-            position = 0;
-            for (j=0; j<comm_size; j++) {
-                if ((sendbuf != MPI_IN_PLACE) || (j != rank)) {
-                    /* not necessary to copy if in_place and
-                       j==rank. otherwise copy. */
-                    smpi_datatype_copy(((char *)tmp_buf + position*recvtype_extent),
-                                               recvcounts[j], recvtype,
-                                               ((char *)recvbuf + displs[j]*recvtype_extent),
-                                               recvcounts[j], recvtype);
-                }
-                position += recvcounts[j];
-            }
+
+    /* if some processes in this process's subtree in this step
+       did not have any destination process to communicate with
+       because of non-power-of-two, we need to send them the
+       data that they would normally have received from those
+       processes. That is, the haves in this subtree must send to
+       the havenots. We use a logarithmic
+       recursive-halfing algorithm for this. */
+
+    /* This part of the code will not currently be
+       executed because we are not using recursive
+       doubling for non power of two. Mark it as experimental
+       so that it doesn't show up as red in the coverage
+       tests. */
+
+    /* --BEGIN EXPERIMENTAL-- */
+    if (dst_tree_root + mask > comm_size) {
+      nprocs_completed = comm_size - my_tree_root - mask;
+      /* nprocs_completed is the number of processes in this
+         subtree that have all the data. Send data to others
+         in a tree fashion. First find root of current tree
+         that is being divided into two. k is the number of
+         least-significant bits in this process's rank that
+         must be zeroed out to find the rank of the root */
+      j = mask;
+      k = 0;
+      while (j) {
+        j >>= 1;
+        k++;
+      }
+      k--;
+
+      tmp_mask = mask >> 1;
+
+      while (tmp_mask) {
+        dst = rank ^ tmp_mask;
+
+        tree_root = rank >> k;
+        tree_root <<= k;
+
+        /* send only if this proc has data and destination
+           doesn't have data. at any step, multiple processes
+           can send if they have the data */
+        if ((dst > rank) &&
+            (rank < tree_root + nprocs_completed)
+            && (dst >= tree_root + nprocs_completed)) {
+
+          offset = 0;
+          for (j=0; j<(my_tree_root+mask); j++)
+            offset += recvcounts[j];
+          offset *= recvtype_extent;
+
+          smpi_mpi_send(((char *)tmp_buf + offset),
+                        last_recv_cnt,
+                        recvtype, dst,
+                        COLL_TAG_ALLGATHERV, comm);
+          /* last_recv_cnt was set in the previous
+             receive. that's the amount of data to be
+             sent now. */
         }
+        /* recv only if this proc. doesn't have data and sender
+           has data */
+        else if ((dst < rank) &&
+                 (dst < tree_root + nprocs_completed) &&
+                 (rank >= tree_root + nprocs_completed)) {
+
+          offset = 0;
+          for (j=0; j<(my_tree_root+mask); j++)
+            offset += recvcounts[j];
+
+          smpi_mpi_recv(((char *)tmp_buf + offset * recvtype_extent),
+                        total_count - offset, recvtype,
+                        dst, COLL_TAG_ALLGATHERV,
+                        comm, &status);
+          /* for convenience, recv is posted for a
+             bigger amount than will be sent */
+          last_recv_cnt=smpi_mpi_get_count(&status, recvtype);
+          curr_cnt += last_recv_cnt;
+        }
+        tmp_mask >>= 1;
+        k--;
+      }
+    }
+    /* --END EXPERIMENTAL-- */
+
+    mask <<= 1;
+    i++;
+  }
+
+  /* copy data from tmp_buf to recvbuf */
+  position = 0;
+  for (j=0; j<comm_size; j++) {
+    if ((sendbuf != MPI_IN_PLACE) || (j != rank)) {
+      /* not necessary to copy if in_place and
+         j==rank. otherwise copy. */
+      smpi_datatype_copy(((char *)tmp_buf + position*recvtype_extent),
+                         recvcounts[j], recvtype,
+                         ((char *)recvbuf + displs[j]*recvtype_extent),
+                         recvcounts[j], recvtype);
+    }
+    position += recvcounts[j];
+  }
+
   free(tmp_buf);
   return MPI_SUCCESS;
 }
index 19c6794..af317fb 100644 (file)
@@ -216,7 +216,7 @@ int smpi_coll_tuned_reduce_scatter_gather(void *sendbuf, void *recvbuf,
   }
 
 
-  else if (count >= comm_size) {
+  else /* (count >= comm_size) */ {
     tmp_buf = (void *) xbt_malloc(count * extent);
 
     //if ((rank != root))
index c65b6f9..9d30811 100644 (file)
@@ -145,13 +145,15 @@ smpi_coll_tuned_scatter_ompi_binomial(void *sbuf, int scount,
            total_send += mycount;
        }
 
-       if (NULL != tempbuf) 
-           free(tempbuf);
+
     } else {
        /* recv from parent on leaf nodes */
        smpi_mpi_recv(ptmp, rcount, rdtype, bmtree->tree_prev,
                                COLL_TAG_SCATTER, comm, &status);
     }
+
+    if (NULL != tempbuf)
+      free(tempbuf);
     //!FIXME : store the tree, as done in ompi, instead of calculating it each time ?
     xbt_free(bmtree);
 
index a94bd31..ded62ec 100644 (file)
@@ -1,6 +1,6 @@
 #include "colls_private.h"
-#include <limits.h>
 #include "mc/mc_private.h"
+#include <float.h>
 
 //attempt to do a quick autotuning version of the collective,
 
@@ -10,7 +10,7 @@
          if (!type){\
              type=PJ_type_event_new(#cat, PJ_type_get_root());\
          }\
-         char* cont_name=malloc(25*sizeof(char*));\
+         char cont_name[25];\
          sprintf(cont_name, "rank-%d", smpi_process_index());\
          val_t value = PJ_value_get_or_new(mpi_coll_##cat##_description[i].name,"1.0 1.0 1.0", type);\
          new_pajeNewEvent (SIMIX_get_clock(), PJ_container_get(cont_name), type, value);\
 #define AUTOMATIC_COLL_BENCH(cat, ret, args, args2)\
     ret smpi_coll_tuned_ ## cat ## _ ## automatic(COLL_UNPAREN args)\
 {\
-  double time1, time2, time_min=INT_MAX;\
+  double time1, time2, time_min=DBL_MAX;\
   int min_coll=-1, global_coll=-1;\
   int i;\
-  double buf_in, buf_out, max_min=INT_MAX;\
+  double buf_in, buf_out, max_min=DBL_MAX;\
   for (i = 0; mpi_coll_##cat##_description[i].name; i++){\
       if(!strcmp(mpi_coll_##cat##_description[i].name, "automatic"))continue;\
       if(!strcmp(mpi_coll_##cat##_description[i].name, "default"))continue;\
index 4bb6e41..c968bed 100644 (file)
@@ -7,6 +7,8 @@
 #include "private.h"
 #include <ctype.h>
 #include <wchar.h>
+#include <stdarg.h>
+#include <simgrid/sg_config.h>
 
 
 #ifdef HAVE_TRACING
@@ -41,6 +43,8 @@ static const char *smpi_colors[] ={
     "scatterv",      "0.52 0 0.52",
     "scatter",       "1 0.74 0.54",
     "computing",     "0 1 1",
+    "init",       "0 1 0",
+    "finalize",     "0 1 0",
     NULL, NULL,
 };
 
@@ -113,6 +117,16 @@ static char *TRACE_smpi_get_key(int src, int dst, char *key, int n)
 
 static xbt_dict_t process_category;
 
+static void cleanup_extra_data (instr_extra_data extra){
+  if(extra!=NULL){
+    if(extra->sendcounts!=NULL)
+      xbt_free(extra->sendcounts);
+    if(extra->recvcounts!=NULL)
+      xbt_free(extra->recvcounts);
+    xbt_free(extra);
+  }
+}
+
 void TRACE_internal_smpi_set_category (const char *category)
 {
   if (!TRACE_smpi_is_enabled()) return;
@@ -177,9 +191,12 @@ void TRACE_smpi_finalize(int rank)
   PJ_container_free (container);
 }
 
-void TRACE_smpi_collective_in(int rank, int root, const char *operation, int size)
+void TRACE_smpi_collective_in(int rank, int root, const char *operation, instr_extra_data extra)
 {
-  if (!TRACE_smpi_is_enabled()) return;
+  if (!TRACE_smpi_is_enabled()) {
+      cleanup_extra_data(extra);
+      return;
+  }
 
   char str[INSTR_DEFAULT_STR_SIZE];
   smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE);
@@ -187,9 +204,10 @@ void TRACE_smpi_collective_in(int rank, int root, const char *operation, int siz
   type_t type = PJ_type_get ("MPI_STATE", container->type);
   const char *color = instr_find_color (operation);
   val_t value = PJ_value_get_or_new (operation, color, type);
-  new_pajePushStateWithSize (SIMIX_get_clock(), container, type, value, size);
+   new_pajePushStateWithExtra (SIMIX_get_clock(), container, type, value, (void*)extra);
 }
 
+
 void TRACE_smpi_collective_out(int rank, int root, const char *operation)
 {
   if (!TRACE_smpi_is_enabled()) return;
@@ -218,17 +236,20 @@ void TRACE_smpi_computing_init(int rank)
   new_pajePushState (SIMIX_get_clock(), container, type, value);
 }
 
-void TRACE_smpi_computing_in(int rank)
+void TRACE_smpi_computing_in(int rank, instr_extra_data extra)
 {
   //do not forget to set the color first, otherwise this will explode
-  if (!TRACE_smpi_is_enabled()|| !TRACE_smpi_is_computing()) return;
+  if (!TRACE_smpi_is_enabled()|| !TRACE_smpi_is_computing()) {
+      cleanup_extra_data(extra);
+      return;
+  }
 
   char str[INSTR_DEFAULT_STR_SIZE];
   smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE);
   container_t container = PJ_container_get (str);
   type_t type = PJ_type_get ("MPI_STATE", container->type);
   val_t value = PJ_value_get_or_new ("computing", NULL, type);
-  new_pajePushState (SIMIX_get_clock(), container, type, value);
+  new_pajePushStateWithExtra  (SIMIX_get_clock(), container, type, value, (void*)extra);
 }
 
 void TRACE_smpi_computing_out(int rank)
@@ -241,10 +262,12 @@ void TRACE_smpi_computing_out(int rank)
   new_pajePopState (SIMIX_get_clock(), container, type);
 }
 
-void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation, int size)
+void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation, instr_extra_data extra)
 {
-  if (!TRACE_smpi_is_enabled()) return;
-
+  if (!TRACE_smpi_is_enabled()) {
+      cleanup_extra_data(extra);
+      return;
+  }
 
   char str[INSTR_DEFAULT_STR_SIZE];
   smpi_container(rank, str, INSTR_DEFAULT_STR_SIZE);
@@ -252,7 +275,7 @@ void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation, int si
   type_t type = PJ_type_get ("MPI_STATE", container->type);
   const char *color = instr_find_color (operation);
   val_t value = PJ_value_get_or_new (operation, color, type);
-  new_pajePushStateWithSize (SIMIX_get_clock(), container, type, value, size);
+  new_pajePushStateWithExtra (SIMIX_get_clock(), container, type, value, (void*)extra);
 }
 
 void TRACE_smpi_ptp_out(int rank, int src, int dst, const char *operation)
index 3d5ded9..26847a6 100644 (file)
@@ -7,6 +7,7 @@
 #ifndef SMPI_PRIVATE_H
 #define SMPI_PRIVATE_H
 
+#include "internal_config.h"
 #include "xbt.h"
 #include "xbt/xbt_os_time.h"
 #include "simgrid/simix.h"
@@ -113,6 +114,8 @@ smx_rdv_t smpi_process_remote_mailbox_small(int index);
 xbt_os_timer_t smpi_process_timer(void);
 void smpi_process_simulated_start(void);
 double smpi_process_simulated_elapsed(void);
+void smpi_process_set_sampling(int s);
+int smpi_process_get_sampling(void);
 
 void print_request(const char *message, MPI_Request request);
 
@@ -192,6 +195,8 @@ MPI_Request smpi_isend_init(void *buf, int count, MPI_Datatype datatype,
                             int dst, int tag, MPI_Comm comm);
 MPI_Request smpi_mpi_isend(void *buf, int count, MPI_Datatype datatype,
                            int dst, int tag, MPI_Comm comm);
+MPI_Request smpi_issend_init(void *buf, int count, MPI_Datatype datatype,
+                            int dst, int tag, MPI_Comm comm);
 MPI_Request smpi_mpi_issend(void *buf, int count, MPI_Datatype datatype,
                            int dst, int tag, MPI_Comm comm);
 MPI_Request smpi_irecv_init(void *buf, int count, MPI_Datatype datatype,
@@ -285,10 +290,11 @@ int smpi_coll_basic_alltoallv(void *sendbuf, int *sendcounts,
                               MPI_Comm comm);
 
 // utilities
+extern double smpi_cpu_threshold;
+extern double smpi_running_power;
 void smpi_bench_destroy(void);
 void smpi_bench_begin(void);
 void smpi_bench_end(void);
-void smpi_execute_flops(double flops);
 
 // f77 wrappers
 void mpi_init_(int*);
@@ -547,10 +553,22 @@ void mpi_comm_get_parent_ ( int*parent, int* ierr);
 /* from smpi_instr.c */
 void TRACE_internal_smpi_set_category (const char *category);
 const char *TRACE_internal_smpi_get_category (void);
-void TRACE_smpi_collective_in(int rank, int root, const char *operation, int size);
+void TRACE_smpi_collective_in(int rank, int root, const char *operation, instr_extra_data extra);
 void TRACE_smpi_collective_out(int rank, int root, const char *operation);
 void TRACE_smpi_computing_init(int rank);
 void TRACE_smpi_computing_out(int rank);
-void TRACE_smpi_computing_in(int rank);
+void TRACE_smpi_computing_in(int rank, instr_extra_data extra);
+void TRACE_smpi_alloc(void);
+void TRACE_smpi_release(void);
+void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation,  instr_extra_data extra);
+void TRACE_smpi_ptp_out(int rank, int src, int dst, const char *operation);
+void TRACE_smpi_send(int rank, int src, int dst, int size);
+void TRACE_smpi_recv(int rank, int src, int dst);
+void TRACE_smpi_init(int rank);
+void TRACE_smpi_finalize(int rank);
+
+
+const char* encode_datatype(MPI_Datatype datatype);
+
 
 #endif
index 2632bac..952db70 100644 (file)
@@ -77,7 +77,8 @@ xbt_dynar_t smpi_ois_values = NULL;
 
 static int factor_cmp(const void *pa, const void *pb)
 {
-  return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor);
+  return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor) ? 1 :
+         (((s_smpi_factor_t*)pa)->factor < ((s_smpi_factor_t*)pb)->factor) ? -1 : 0;
 }
 
 
@@ -86,13 +87,14 @@ static xbt_dynar_t parse_factor(const char *smpi_coef_string)
   char *value = NULL;
   unsigned int iter = 0;
   s_smpi_factor_t fact;
+  fact.nb_values=0;
   int i=0;
   xbt_dynar_t smpi_factor, radical_elements, radical_elements2 = NULL;
 
   smpi_factor = xbt_dynar_new(sizeof(s_smpi_factor_t), NULL);
   radical_elements = xbt_str_split(smpi_coef_string, ";");
   xbt_dynar_foreach(radical_elements, iter, value) {
-    fact.nb_values=0;
+    memset(&fact, 0, sizeof(s_smpi_factor_t));
     radical_elements2 = xbt_str_split(value, ":");
     if (xbt_dynar_length(radical_elements2) <2 || xbt_dynar_length(radical_elements2) > 5)
       xbt_die("Malformed radical for smpi factor!");
@@ -414,6 +416,7 @@ void smpi_mpi_start(MPI_Request request)
 void smpi_mpi_startall(int count, MPI_Request * requests)
 {
   int i;
+  if(requests==NULL) return;
 
   for(i = 0; i < count; i++) {
     smpi_mpi_start(requests[i]);
index f83d36b..ddd6832 100644 (file)
@@ -66,6 +66,9 @@ xbt_dict_t samples = NULL;         /* Allocated on first use */
 xbt_dict_t calls = NULL;           /* Allocated on first use */
 __thread int smpi_current_rank = 0;      /* Updated after each MPI call */
 
+double smpi_cpu_threshold;
+double smpi_running_power;
+
 typedef struct {
   int fd;
   int count;
@@ -123,11 +126,22 @@ void smpi_bench_destroy(void)
   xbt_dict_free(&calls);
 }
 
+XBT_PUBLIC(void) smpi_execute_flops_(double *flops);
+void smpi_execute_flops_(double *flops)
+{
+  smpi_execute_flops(*flops);
+}
+
+XBT_PUBLIC(void) smpi_execute_(double *duration);
+void smpi_execute_(double *duration)
+{
+  smpi_execute(*duration);
+}
+
 void smpi_execute_flops(double flops) {
   smx_action_t action;
   smx_host_t host;
   host = SIMIX_host_self();
-
   XBT_DEBUG("Handle real computation time: %f flops", flops);
   action = simcall_host_execute("computation", host, flops, 1, 0, 0);
 #ifdef HAVE_TRACING
@@ -136,16 +150,27 @@ void smpi_execute_flops(double flops) {
   simcall_host_execution_wait(action);
 }
 
-static void smpi_execute(double duration)
+void smpi_execute(double duration)
 {
-  /* FIXME: a global variable would be less expensive to consult than a call to xbt_cfg_get_double() right on the critical path */
-  if (duration >= sg_cfg_get_double("smpi/cpu_threshold")) {
-    XBT_DEBUG("Sleep for %f to handle real computation time", duration);
-    smpi_execute_flops(duration *
-               sg_cfg_get_double("smpi/running_power"));
+  if (duration >= smpi_cpu_threshold) {
+    XBT_DEBUG("Sleep for %g to handle real computation time", duration);
+    double flops = duration * smpi_running_power;
+#ifdef HAVE_TRACING
+    int rank = smpi_process_index();
+    instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+    extra->type=TRACING_COMPUTING;
+    extra->comp_size=flops;
+    TRACE_smpi_computing_in(rank, extra);
+#endif
+    smpi_execute_flops(flops);
+
+#ifdef HAVE_TRACING
+    TRACE_smpi_computing_out(rank);
+#endif
+
   } else {
-    XBT_DEBUG("Real computation took %f while option smpi/cpu_threshold is set to %f => ignore it",
-        duration, sg_cfg_get_double("smpi/cpu_threshold"));
+    XBT_DEBUG("Real computation took %g while option smpi/cpu_threshold is set to %g => ignore it",
+              duration, smpi_cpu_threshold);
   }
 }
 
@@ -158,15 +183,30 @@ void smpi_bench_begin(void)
 void smpi_bench_end(void)
 {
   xbt_os_timer_t timer = smpi_process_timer();
-
   xbt_os_threadtimer_stop(timer);
+  if (smpi_process_get_sampling()) {
+    XBT_CRITICAL("Cannot do recursive benchmarks.");
+    XBT_CRITICAL("Are you trying to make a call to MPI within a SMPI_SAMPLE_ block?");
+    xbt_backtrace_display_current();
+    xbt_die("Aborting.");
+  }
   smpi_execute(xbt_os_timer_elapsed(timer));
 }
 
 unsigned int smpi_sleep(unsigned int secs)
 {
+  smx_action_t action;
+
   smpi_bench_end();
-  smpi_execute_flops((double) secs*simcall_host_get_speed(SIMIX_host_self()));
+
+  double flops = (double) secs*simcall_host_get_speed(SIMIX_host_self());
+  XBT_DEBUG("Sleep for: %f flops", flops);
+  action = simcall_host_execute("computation", SIMIX_host_self(), flops, 1);
+  #ifdef HAVE_TRACING
+    simcall_set_category (action, TRACE_internal_smpi_get_category());
+  #endif
+  simcall_host_execution_wait(action);
+
   smpi_bench_begin();
   return secs;
 }
@@ -210,13 +250,13 @@ unsigned long long smpi_rastro_timestamp (void)
 
 /* ****************************** Functions related to the SMPI_SAMPLE_ macros ************************************/
 typedef struct {
-  int iters;        /* amount of requested iterations */
-  int count;        /* amount of iterations done so far */
   double threshold; /* maximal stderr requested (if positive) */
   double relstderr; /* observed stderr so far */
   double mean;      /* mean of benched times, to be used if the block is disabled */
   double sum;       /* sum of benched times (to compute the mean and stderr) */
   double sum_pow2;  /* sum of the square of the benched times (to compute the stderr) */
+  int iters;        /* amount of requested iterations */
+  int count;        /* amount of iterations done so far */
   int benching;     /* 1: we are benchmarking; 0: we have enough data, no bench anymore */
 } local_data_t;
 
@@ -247,6 +287,8 @@ void smpi_sample_1(int global, const char *file, int line, int iters, double thr
   local_data_t *data;
 
   smpi_bench_end();     /* Take time from previous, unrelated computation into account */
+  smpi_process_set_sampling(1);
+
   if (!samples)
     samples = xbt_dict_new_homogeneous(free);
 
@@ -282,6 +324,7 @@ int smpi_sample_2(int global, const char *file, int line)
 {
   char *loc = sample_location(global, file, line);
   local_data_t *data;
+  int res;
 
   xbt_assert(samples, "Y U NO use SMPI_SAMPLE_* macros? Stop messing directly with smpi_sample_* functions!");
   data = xbt_dict_get(samples, loc);
@@ -292,18 +335,18 @@ int smpi_sample_2(int global, const char *file, int line)
     // we need to run a new bench
     XBT_DEBUG("benchmarking: count:%d iter:%d stderr:%f thres:%f; mean:%f",
         data->count, data->iters, data->relstderr, data->threshold, data->mean);
-    smpi_bench_begin();
-    return 1;
+    res = 1;
   } else {
     // Enough data, no more bench (either we got enough data from previous visits to this benched nest, or we just ran one bench and need to bail out now that our job is done).
     // Just sleep instead
     XBT_DEBUG("No benchmark (either no need, or just ran one): count >= iter (%d >= %d) or stderr<thres (%f<=%f). apply the %fs delay instead",
         data->count, data->iters, data->relstderr, data->threshold, data->mean);
     smpi_execute(data->mean);
-
-    smpi_bench_begin(); // prepare to capture future, unrelated computations
-    return 0;
+    smpi_process_set_sampling(0);
+    res = 0; // prepare to capture future, unrelated computations
   }
+  smpi_bench_begin();
+  return res;
 }
 
 
@@ -397,7 +440,7 @@ void *smpi_shared_malloc(size_t size, const char *file, int line)
           case EEXIST:
             xbt_die("Please cleanup /dev/shm/%s", loc);
           default:
-            xbt_die("An unhandled error occured while opening %s: %s", loc, strerror(errno));
+            xbt_die("An unhandled error occured while opening %s. shm_open: %s", loc, strerror(errno));
         }
       }
       data = xbt_new(shared_data_t, 1);
@@ -406,7 +449,7 @@ void *smpi_shared_malloc(size_t size, const char *file, int line)
       data->loc = loc;
       mem = shm_map(fd, size, data);
       if (shm_unlink(loc) < 0) {
-        XBT_WARN("Could not early unlink %s: %s", loc, strerror(errno));
+        XBT_WARN("Could not early unlink %s. shm_unlink: %s", loc, strerror(errno));
       }
       xbt_dict_set(allocs, loc, data, NULL);
       XBT_DEBUG("Mapping %s at %p through %d", loc, mem, fd);
@@ -465,28 +508,28 @@ void smpi_shared_free(void *ptr)
 }
 #endif
 
-int smpi_shared_known_call(const char* func, const char* input) {
-   char* loc = bprintf("%s:%s", func, input);
-   xbt_ex_t ex;
-   int known;
+int smpi_shared_known_call(const char* func, const char* input)
+{
+  char* loc = bprintf("%s:%s", func, input);
+  xbt_ex_t ex;
+  int known = 0;
 
-   if(!calls) {
-      calls = xbt_dict_new_homogeneous(NULL);
-   }
-   TRY {
-      xbt_dict_get(calls, loc); /* Succeed or throw */
-      known = 1;
-   }
-   CATCH(ex) {
-      if(ex.category == not_found_error) {
-         known = 0;
-         xbt_ex_free(ex);
-      } else {
-         RETHROW;
-      }
-   }
-   free(loc);
-   return known;
+  if (!calls) {
+    calls = xbt_dict_new_homogeneous(NULL);
+  }
+  TRY {
+    xbt_dict_get(calls, loc); /* Succeed or throw */
+    known = 1;
+  }
+  TRY_CLEANUP {
+    xbt_free(loc);
+  }
+  CATCH(ex) {
+    if (ex.category != not_found_error)
+      RETHROW;
+    xbt_ex_free(ex);
+  }
+  return known;
 }
 
 void* smpi_shared_get_call(const char* func, const char* input) {
index e6db148..70fdb14 100644 (file)
@@ -143,7 +143,9 @@ int find_coll_description(s_mpi_coll_description_t * table,
         return i;
     }
   }
-  name_list = strdup(table[0].name);
+  if (!table[0].name)
+    xbt_die("No collective is valid! This is a bug.");
+  name_list = xbt_strdup(table[0].name);
   for (i = 1; table[i].name; i++) {
     name_list =
         xbt_realloc(name_list,
@@ -151,7 +153,7 @@ int find_coll_description(s_mpi_coll_description_t * table,
     strcat(name_list, ", ");
     strcat(name_list, table[i].name);
   }
-  xbt_die("Model '%s' is invalid! Valid models are: %s.", name, name_list);
+  xbt_die("Collective '%s' is invalid! Valid collectives are: %s.", name, name_list);
   return -1;
 }
 
diff --git a/src/smpi/smpi_dvfs.c b/src/smpi/smpi_dvfs.c
new file mode 100644 (file)
index 0000000..4a71979
--- /dev/null
@@ -0,0 +1,97 @@
+/* Copyright (c) 2013. 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 "xbt/log.h"
+#include "simgrid/simix.h"
+#include "smpi/smpi.h"
+
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_dvfs, smpi,
+                                "Logging specific to SMPI (experimental DVFS support)");
+
+/**
+ * \brief Return the speed of the processor (in flop/s) at a given pstate
+ *
+ * \param pstate_index pstate to test
+ * \return Returns the processor speed associated with pstate_index
+ */
+double smpi_get_host_power_peak_at(int pstate_index)
+{
+  return simcall_host_get_power_peak_at(SIMIX_host_self(), pstate_index);
+}
+
+/**
+ * \brief Return the current speed of the processor (in flop/s)
+ *
+ * \return Returns the current processor speed
+ */
+double smpi_get_host_current_power_peak(void)
+{
+  return simcall_host_get_current_power_peak(SIMIX_host_self());
+}
+
+/**
+ * \brief Return the number of pstates defined for host
+ */
+int smpi_get_host_nb_pstates(void)
+{
+  return simcall_host_get_nb_pstates(SIMIX_host_self());
+}
+
+/**
+ * \brief Sets the speed of the processor (in flop/s) at a given pstate
+ *
+ * \param pstate_index pstate to switch to
+ */
+void smpi_set_host_power_peak_at(int pstate_index)
+{
+  simcall_host_set_power_peak_at(SIMIX_host_self(), pstate_index);
+}
+
+/**
+ * \brief Return the total energy consumed by a host (in Joules)
+ *
+ * \return Returns the consumed energy
+ */
+double smpi_get_host_consumed_energy(void)
+{
+  return simcall_host_get_consumed_energy(SIMIX_host_self());
+}
+
+#include "smpi/smpif.h"
+
+#ifdef SMPI_F2C
+
+XBT_PUBLIC(doublereal) smpi_get_host_power_peak_at_(integer *pstate_index);
+doublereal smpi_get_host_power_peak_at_(integer *pstate_index)
+{
+  return (doublereal)smpi_get_host_power_peak_at((int)*pstate_index);
+}
+
+XBT_PUBLIC(doublereal) smpi_get_host_current_power_peak_(void);
+doublereal smpi_get_host_current_power_peak_(void)
+{
+  return smpi_get_host_current_power_peak();
+}
+
+XBT_PUBLIC(integer) smpi_get_host_nb_pstates_(void);
+integer smpi_get_host_nb_pstates_(void)
+{
+  return (integer)smpi_get_host_nb_pstates();
+}
+
+XBT_PUBLIC(void) smpi_set_host_power_peak_at_(integer *pstate_index);
+void smpi_set_host_power_peak_at_(integer *pstate_index)
+{
+  smpi_set_host_power_peak_at((int)*pstate_index);
+}
+
+XBT_PUBLIC(doublereal) smpi_get_host_consumed_energy_(void);
+doublereal smpi_get_host_consumed_energy_(void)
+{
+  return (doublereal)smpi_get_host_consumed_energy();
+}
+
+#endif
index d32614f..0f49e2e 100644 (file)
@@ -213,13 +213,10 @@ void mpi_finalize_(int* ierr) {
    running_processes--;
    if(running_processes==0){
      xbt_dict_free(&op_lookup);
-     op_lookup = NULL;
      xbt_dict_free(&datatype_lookup);
-     datatype_lookup = NULL;
      xbt_dict_free(&request_lookup);
-     request_lookup = NULL;
+     xbt_dict_free(&group_lookup);
      xbt_dict_free(&comm_lookup);
-     comm_lookup = NULL;
    }
 }
 
index 4ebd97a..b5b05af 100644 (file)
@@ -4,10 +4,6 @@
 /* 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 <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-
 #include "private.h"
 #include "smpi_mpi_dt_private.h"
 #include "mc/mc.h"
 #include "simix/smx_private.h"
 #include "simgrid/sg_config.h"
 
+#include <float.h>              /* DBL_MAX */
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_kernel, smpi,
                                 "Logging specific to SMPI (kernel)");
 
 typedef struct s_smpi_process_data {
-  int index;
-  intargc;
-  char*** argv;
+  double simulated;
+  int *argc;
+  char ***argv;
   smx_rdv_t mailbox;
   smx_rdv_t mailbox_small;
   xbt_os_timer_t timer;
-  double simulated;
   MPI_Comm comm_self;
-  void *data; /* user data */
+  void *data;                   /* user data */
+  int index;
   int initialized;
+  int sampling;                 /* inside an SMPI_SAMPLE_ block? */
 } s_smpi_process_data_t;
 
 static smpi_process_data_t *process_data = NULL;
@@ -38,19 +39,23 @@ static int process_count = 0;
 MPI_Comm MPI_COMM_WORLD = MPI_COMM_NULL;
 int MPI_UNIVERSE_SIZE;
 
-MPI_ErrhandlerMPI_ERRORS_RETURN = NULL;
-MPI_ErrhandlerMPI_ERRORS_ARE_FATAL = NULL;
-MPI_ErrhandlerMPI_ERRHANDLER_NULL = NULL;
+MPI_Errhandler *MPI_ERRORS_RETURN = NULL;
+MPI_Errhandler *MPI_ERRORS_ARE_FATAL = NULL;
+MPI_Errhandler *MPI_ERRHANDLER_NULL = NULL;
 
 #define MAILBOX_NAME_MAXLEN (5 + sizeof(int) * 2 + 1)
 
-static char* get_mailbox_name(char* str, int index) {
-  snprintf(str, MAILBOX_NAME_MAXLEN, "SMPI-%0*x", (int)(sizeof(int) * 2), index);
+static char *get_mailbox_name(char *str, int index)
+{
+  snprintf(str, MAILBOX_NAME_MAXLEN, "SMPI-%0*x", (int) (sizeof(int) * 2),
+           index);
   return str;
 }
 
-static char* get_mailbox_name_small(char* str, int index) {
-  snprintf(str, MAILBOX_NAME_MAXLEN, "small%0*x", (int)(sizeof(int) * 2), index);
+static char *get_mailbox_name_small(char *str, int index)
+{
+  snprintf(str, MAILBOX_NAME_MAXLEN, "small%0*x", (int) (sizeof(int) * 2),
+           index);
   return str;
 }
 
@@ -60,7 +65,7 @@ void smpi_process_init(int *argc, char ***argv)
   smpi_process_data_t data;
   smx_process_t proc;
 
-  if(argc && argv) {
+  if (argc && argv) {
     proc = SIMIX_process_self();
     index = atoi((*argv)[1]);
     data = smpi_process_remote_data(index);
@@ -73,7 +78,8 @@ void smpi_process_init(int *argc, char ***argv)
     (*argc)--;
     data->argc = argc;
     data->argv = argv;
-    simcall_rdv_set_receiver(data->mailbox_small, proc);// set the process attached to the mailbox
+    // set the process attached to the mailbox
+    simcall_rdv_set_receiver(data->mailbox_small, proc);
     XBT_DEBUG("<%d> New process in the game: %p", index, proc);
   }
 }
@@ -81,7 +87,7 @@ void smpi_process_init(int *argc, char ***argv)
 void smpi_process_destroy(void)
 {
   int index = smpi_process_index();
-  process_data[index]->index=-100;
+  process_data[index]->index = -100;
   XBT_DEBUG("<%d> Process left the game", index);
 }
 
@@ -101,7 +107,7 @@ void smpi_process_finalize(void)
  */
 int smpi_process_finalized()
 {
-   return (smpi_process_index()==-100);
+  return (smpi_process_index() == -100);
   // If finalized, this value has been set to -100;
 }
 
@@ -111,7 +117,8 @@ int smpi_process_finalized()
 int smpi_process_initialized(void)
 {
   int index = smpi_process_index();
-  return((index != -100) && (index!=MPI_UNDEFINED) && (process_data[index]->initialized));
+  return ((index != -100) && (index != MPI_UNDEFINED)
+          && (process_data[index]->initialized));
 }
 
 /**
@@ -120,44 +127,47 @@ int smpi_process_initialized(void)
 void smpi_process_mark_as_initialized(void)
 {
   int index = smpi_process_index();
-  if((index != -100)&& (index!=MPI_UNDEFINED))process_data[index]->initialized=1;
+  if ((index != -100) && (index != MPI_UNDEFINED))
+    process_data[index]->initialized = 1;
 }
 
 
 #ifdef SMPI_F2C
-int smpi_process_argc(void) {
+int smpi_process_argc(void)
+{
   smpi_process_data_t data = smpi_process_data();
-
   return data->argc ? *(data->argc) - 1 : 0;
 }
 
-int smpi_process_getarg(integer* index, char* dst, ftnlen len) {
+int smpi_process_getarg(integer * index, char *dst, ftnlen len)
+{
   smpi_process_data_t data = smpi_process_data();
-  chararg;
+  char *arg;
   ftnlen i;
 
-  if(!data->argc || !data->argv
-     || *index < 1 || *index >= *(data->argc)) {
+  if (!data->argc || !data->argv || *index < 1 || *index >= *(data->argc)) {
     return -1;
   }
   arg = (*data->argv)[*index];
-  for(i = 0; i < len && arg[i] != '\0'; i++) {
+  for (i = 0; i < len && arg[i] != '\0'; i++) {
     dst[i] = arg[i];
   }
-  for(; i < len; i++) {
+  for (; i < len; i++) {
     dst[i] = ' ';
   }
   return 0;
 }
 
-int smpi_global_size(void) {
-   char* value = getenv("SMPI_GLOBAL_SIZE");
+int smpi_global_size(void)
+{
+  char *value = getenv("SMPI_GLOBAL_SIZE");
 
-   if(!value) {
-     fprintf(stderr, "Please set env var SMPI_GLOBAL_SIZE to expected number of processes.\n");
-     xbt_abort();
-   }
-   return atoi(value);
+  if (!value) {
+    fprintf(stderr,
+            "Please set env var SMPI_GLOBAL_SIZE to expected number of processes.\n");
+    xbt_abort();
+  }
+  return atoi(value);
 }
 #endif
 
@@ -177,7 +187,8 @@ void smpi_process_set_user_data(void *data)
   process_data->data = data;
 }
 
-void* smpi_process_get_user_data(){
+void *smpi_process_get_user_data()
+{
   smpi_process_data_t process_data = smpi_process_data();
   return process_data->data;
 }
@@ -191,70 +202,86 @@ int smpi_process_index(void)
 {
   smpi_process_data_t data = smpi_process_data();
   //return -1 if not initialized
-  return data? data->index : MPI_UNDEFINED;
+  return data ? data->index : MPI_UNDEFINED;
 }
 
-smx_rdv_t smpi_process_mailbox(void) {
+smx_rdv_t smpi_process_mailbox(void)
+{
   smpi_process_data_t data = smpi_process_data();
-
   return data->mailbox;
 }
 
-smx_rdv_t smpi_process_mailbox_small(void) {
+smx_rdv_t smpi_process_mailbox_small(void)
+{
   smpi_process_data_t data = smpi_process_data();
-
   return data->mailbox_small;
 }
 
-smx_rdv_t smpi_process_remote_mailbox(int index) {
+smx_rdv_t smpi_process_remote_mailbox(int index)
+{
   smpi_process_data_t data = smpi_process_remote_data(index);
-
   return data->mailbox;
 }
 
 
-smx_rdv_t smpi_process_remote_mailbox_small(int index) {
+smx_rdv_t smpi_process_remote_mailbox_small(int index)
+{
   smpi_process_data_t data = smpi_process_remote_data(index);
-
   return data->mailbox_small;
 }
 
 xbt_os_timer_t smpi_process_timer(void)
 {
   smpi_process_data_t data = smpi_process_data();
-
   return data->timer;
 }
 
-void smpi_process_simulated_start(void) {
+void smpi_process_simulated_start(void)
+{
   smpi_process_data_t data = smpi_process_data();
-
   data->simulated = SIMIX_get_clock();
 }
 
-double smpi_process_simulated_elapsed(void) {
+double smpi_process_simulated_elapsed(void)
+{
   smpi_process_data_t data = smpi_process_data();
-
   return SIMIX_get_clock() - data->simulated;
 }
 
-MPI_Comm smpi_process_comm_self(void) {
+MPI_Comm smpi_process_comm_self(void)
+{
   smpi_process_data_t data = smpi_process_data();
-
   return data->comm_self;
 }
 
-void print_request(const char *message, MPI_Request request) {
-  XBT_DEBUG("%s  request %p  [buf = %p, size = %zu, src = %d, dst = %d, tag = %d, flags = %x]",
-         message, request, request->buf, request->size,
-         request->src, request->dst, request->tag, request->flags);
+void smpi_process_set_sampling(int s)
+{
+  smpi_process_data_t data = smpi_process_data();
+  data->sampling = s;
+}
+
+int smpi_process_get_sampling(void)
+{
+  smpi_process_data_t data = smpi_process_data();
+  return data->sampling;
+}
+
+void print_request(const char *message, MPI_Request request)
+{
+  XBT_DEBUG
+      ("%s  request %p  [buf = %p, size = %zu, src = %d, dst = %d, tag = %d, flags = %x]",
+       message, request, request->buf, request->size, request->src,
+       request->dst, request->tag, request->flags);
 }
 
-static void SMPI_comm_copy_buffer_callback(smx_action_t comm, void* buff, size_t buff_size)
+static void smpi_comm_copy_buffer_callback(smx_action_t comm,
+                                           void *buff, size_t buff_size)
 {
   XBT_DEBUG("Copy the data over");
   memcpy(comm->comm.dst_buff, buff, buff_size);
-  if (comm->comm.detached) { // if this is a detached send, the source buffer was duplicated by SMPI sender to make the original buffer available to the application ASAP
+  if (comm->comm.detached) {
+    // if this is a detached send, the source buffer was duplicated by SMPI
+    // sender to make the original buffer available to the application ASAP
     xbt_free(buff);
     //It seems that the request is used after the call there this should
     //be free somewhereelse  but where???
@@ -270,7 +297,7 @@ void smpi_global_init(void)
   MPI_Group group;
   char name[MAILBOX_NAME_MAXLEN];
 
-  SIMIX_comm_set_copy_data_callback(&SMPI_comm_copy_buffer_callback);
+  SIMIX_comm_set_copy_data_callback(&smpi_comm_copy_buffer_callback);
   process_count = SIMIX_process_count();
   process_data = xbt_new(smpi_process_data_t, process_count);
   for (i = 0; i < process_count; i++) {
@@ -279,13 +306,15 @@ void smpi_global_init(void)
     process_data[i]->argc = NULL;
     process_data[i]->argv = NULL;
     process_data[i]->mailbox = simcall_rdv_create(get_mailbox_name(name, i));
-    process_data[i]->mailbox_small = simcall_rdv_create(get_mailbox_name_small(name, i));
+    process_data[i]->mailbox_small =
+        simcall_rdv_create(get_mailbox_name_small(name, i));
     process_data[i]->timer = xbt_os_timer_new();
-    if(MC_is_active())
+    if (MC_is_active())
       MC_ignore_heap(process_data[i]->timer, xbt_os_timer_size());
     group = smpi_group_new(1);
     process_data[i]->comm_self = smpi_comm_new(group);
-    process_data[i]->initialized =0;
+    process_data[i]->initialized = 0;
+    process_data[i]->sampling = 0;
 
     smpi_group_set_mapping(group, i, 0);
   }
@@ -298,7 +327,8 @@ void smpi_global_init(void)
 
   //check correctness of MPI parameters
 
-  xbt_assert(sg_cfg_get_int("smpi/async_small_thres")<=sg_cfg_get_int("smpi/send_is_detached_thres"));
+  xbt_assert(sg_cfg_get_int("smpi/async_small_thres") <=
+             sg_cfg_get_int("smpi/send_is_detached_thres"));
 }
 
 void smpi_global_destroy(void)
@@ -307,7 +337,7 @@ void smpi_global_destroy(void)
   int i;
 
   smpi_bench_destroy();
-  while(smpi_group_unuse(smpi_comm_group(MPI_COMM_WORLD))>0);
+  while (smpi_group_unuse(smpi_comm_group(MPI_COMM_WORLD)) > 0);
   xbt_free(MPI_COMM_WORLD);
   MPI_COMM_WORLD = MPI_COMM_NULL;
   for (i = 0; i < count; i++) {
@@ -327,58 +357,65 @@ void smpi_global_destroy(void)
 /* Fortran specific stuff */
 /* With smpicc, the following weak symbols are used */
 /* With smpiff, the following weak symbols are replaced by those in libf2c */
-int __attribute__((weak)) xargc;
-char** __attribute__((weak)) xargv;
+int __attribute__ ((weak)) xargc;
+char ** __attribute__ ((weak)) xargv;
 
 #ifndef WIN32
-void __attribute__((weak)) user_main_(){
+void __attribute__ ((weak)) user_main_()
+{
   xbt_die("Should not be in this smpi_simulated_main");
   return;
 }
-int __attribute__((weak)) smpi_simulated_main_(int argc, char** argv) {
+
+int __attribute__ ((weak)) smpi_simulated_main_(int argc, char **argv)
+{
   smpi_process_init(&argc, &argv);
   user_main_();
   //xbt_die("Should not be in this smpi_simulated_main");
   return 0;
 }
 
-int __attribute__((weak)) main(int argc, char** argv) {
-   return smpi_main(smpi_simulated_main_,argc,argv);
+int __attribute__ ((weak)) main(int argc, char **argv)
+{
+  return smpi_main(smpi_simulated_main_, argc, argv);
 }
 
-int __attribute__((weak)) MAIN__(){
-  return smpi_main(smpi_simulated_main_,xargc, xargv);
+int __attribute__ ((weak)) MAIN__()
+{
+  return smpi_main(smpi_simulated_main_, xargc, xargv);
 };
 #endif
 
-int smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[])
+int smpi_main(int (*realmain) (int argc, char *argv[]), int argc, char *argv[])
 {
   srand(SMPI_RAND_SEED);
-  
-  if(getenv("SMPI_PRETEND_CC") != NULL) {
-  /* Hack to ensure that smpicc can pretend to be a simple compiler. Particularly handy to pass it to the configuration tools */
+
+  if (getenv("SMPI_PRETEND_CC") != NULL) {
+    /* Hack to ensure that smpicc can pretend to be a simple
+     * compiler. Particularly handy to pass it to the configuration tools */
     return 0;
   }
 
   /* Connect log categories.  See xbt/log.c */
-  XBT_LOG_CONNECT(smpi);  /* Keep this line as soon as possible in this
-                             function: xbt_log_appender_file.c depends on it
-                             DO NOT connect this in XBT or so, or it will be
-                             useless to xbt_log_appender_file.c */
+  XBT_LOG_CONNECT(smpi);        /* Keep this line as soon as possible in this
+                                   function: xbt_log_appender_file.c depends on it
+                                   DO NOT connect this in XBT or so, or it will be
+                                   useless to xbt_log_appender_file.c */
 #ifdef HAVE_TRACING
   XBT_LOG_CONNECT(instr_smpi);
 #endif
   XBT_LOG_CONNECT(smpi_base);
   XBT_LOG_CONNECT(smpi_bench);
   XBT_LOG_CONNECT(smpi_coll);
+  XBT_LOG_CONNECT(smpi_colls);
   XBT_LOG_CONNECT(smpi_comm);
+  XBT_LOG_CONNECT(smpi_dvfs);
   XBT_LOG_CONNECT(smpi_group);
   XBT_LOG_CONNECT(smpi_kernel);
   XBT_LOG_CONNECT(smpi_mpi);
   XBT_LOG_CONNECT(smpi_mpi_dt);
   XBT_LOG_CONNECT(smpi_pmpi);
   XBT_LOG_CONNECT(smpi_replay);
-  XBT_LOG_CONNECT(smpi_colls);
 
 #ifdef HAVE_TRACING
   TRACE_global_init(&argc, argv);
@@ -400,70 +437,81 @@ int smpi_main(int (*realmain) (int argc, char *argv[]),int argc, char *argv[])
   SIMIX_launch_application(argv[2]);
 
   int gather_id = find_coll_description(mpi_coll_gather_description,
-                                           sg_cfg_get_string("smpi/gather"));
+                                        sg_cfg_get_string("smpi/gather"));
   mpi_coll_gather_fun = (int (*)(void *, int, MPI_Datatype,
-                                   void*, int, MPI_Datatype, int, MPI_Comm))
-                          mpi_coll_gather_description[gather_id].coll;
+                                 void *, int, MPI_Datatype, int, MPI_Comm))
+      mpi_coll_gather_description[gather_id].coll;
 
   int allgather_id = find_coll_description(mpi_coll_allgather_description,
                                            sg_cfg_get_string("smpi/allgather"));
   mpi_coll_allgather_fun = (int (*)(void *, int, MPI_Datatype,
-                                   void*, int, MPI_Datatype, MPI_Comm))
-                          mpi_coll_allgather_description[allgather_id].coll;
+                                    void *, int, MPI_Datatype, MPI_Comm))
+      mpi_coll_allgather_description[allgather_id].coll;
 
   int allgatherv_id = find_coll_description(mpi_coll_allgatherv_description,
-                                           sg_cfg_get_string("smpi/allgatherv"));
-  mpi_coll_allgatherv_fun = (int (*)(void *, int, MPI_Datatype,
-                                   void*, int*, int*, MPI_Datatype, MPI_Comm))
-                          mpi_coll_allgatherv_description[allgatherv_id].coll;
+                                            sg_cfg_get_string("smpi/allgatherv"));
+  mpi_coll_allgatherv_fun = (int (*)(void *, int, MPI_Datatype, void *, int *,
+                                     int *, MPI_Datatype, MPI_Comm))
+      mpi_coll_allgatherv_description[allgatherv_id].coll;
 
   int allreduce_id = find_coll_description(mpi_coll_allreduce_description,
                                            sg_cfg_get_string("smpi/allreduce"));
-  mpi_coll_allreduce_fun = (int (*)(void *sbuf, void *rbuf, int rcount, \
-                                    MPI_Datatype dtype, MPI_Op op, MPI_Comm comm))
-                          mpi_coll_allreduce_description[allreduce_id].coll;
+  mpi_coll_allreduce_fun = (int (*)(void *sbuf, void *rbuf, int rcount,
+                                    MPI_Datatype dtype, MPI_Op op,
+                                    MPI_Comm comm))
+      mpi_coll_allreduce_description[allreduce_id].coll;
 
   int alltoall_id = find_coll_description(mpi_coll_alltoall_description,
                                           sg_cfg_get_string("smpi/alltoall"));
   mpi_coll_alltoall_fun = (int (*)(void *, int, MPI_Datatype,
-                                  void*, int, MPI_Datatype, MPI_Comm))
-                         mpi_coll_alltoall_description[alltoall_id].coll;
+                                   void *, int, MPI_Datatype, MPI_Comm))
+      mpi_coll_alltoall_description[alltoall_id].coll;
 
   int alltoallv_id = find_coll_description(mpi_coll_alltoallv_description,
-                                          sg_cfg_get_string("smpi/alltoallv"));
-  mpi_coll_alltoallv_fun = (int (*)(void *, int*, int*, MPI_Datatype,
-                                   void*, int*, int*, MPI_Datatype, MPI_Comm))
-                         mpi_coll_alltoallv_description[alltoallv_id].coll;
+                                           sg_cfg_get_string("smpi/alltoallv"));
+  mpi_coll_alltoallv_fun = (int (*)(void *, int *, int *, MPI_Datatype,
+                                    void *, int *, int *, MPI_Datatype,
+                                    MPI_Comm))
+      mpi_coll_alltoallv_description[alltoallv_id].coll;
 
   int bcast_id = find_coll_description(mpi_coll_bcast_description,
-                                          sg_cfg_get_string("smpi/bcast"));
-  mpi_coll_bcast_fun = (int (*)(void *buf, int count, MPI_Datatype datatype, \
-                               int root, MPI_Comm com))
-                      mpi_coll_bcast_description[bcast_id].coll;
+                                       sg_cfg_get_string("smpi/bcast"));
+  mpi_coll_bcast_fun = (int (*)(void *buf, int count, MPI_Datatype datatype,
+                                int root, MPI_Comm com))
+      mpi_coll_bcast_description[bcast_id].coll;
 
   int reduce_id = find_coll_description(mpi_coll_reduce_description,
-                                          sg_cfg_get_string("smpi/reduce"));
-  mpi_coll_reduce_fun = (int (*)(void *buf, void *rbuf, int count, MPI_Datatype datatype, \
-                                 MPI_Op op, int root, MPI_Comm comm))
-                       mpi_coll_reduce_description[reduce_id].coll;
-
-  int reduce_scatter_id = find_coll_description(mpi_coll_reduce_scatter_description,
-                                           sg_cfg_get_string("smpi/reduce_scatter"));
-  mpi_coll_reduce_scatter_fun = (int (*)(void *sbuf, void *rbuf, int *rcounts,\
-                    MPI_Datatype dtype,MPI_Op  op,MPI_Comm  comm))
-                          mpi_coll_reduce_scatter_description[reduce_scatter_id].coll;
+                                        sg_cfg_get_string("smpi/reduce"));
+  mpi_coll_reduce_fun = (int (*)(void *buf, void *rbuf, int count,
+                                 MPI_Datatype datatype, MPI_Op op,
+                                 int root, MPI_Comm comm))
+      mpi_coll_reduce_description[reduce_id].coll;
+
+  int reduce_scatter_id =
+      find_coll_description(mpi_coll_reduce_scatter_description,
+                            sg_cfg_get_string("smpi/reduce_scatter"));
+  mpi_coll_reduce_scatter_fun = (int (*)(void *sbuf, void *rbuf, int *rcounts,
+                                         MPI_Datatype dtype, MPI_Op op,
+                                         MPI_Comm comm))
+      mpi_coll_reduce_scatter_description[reduce_scatter_id].coll;
 
   int scatter_id = find_coll_description(mpi_coll_scatter_description,
-                                           sg_cfg_get_string("smpi/scatter"));
-  mpi_coll_scatter_fun = (int (*)(void *sendbuf, int sendcount, MPI_Datatype sendtype,\
-                void *recvbuf, int recvcount, MPI_Datatype recvtype,\
-                int root, MPI_Comm comm))
-                          mpi_coll_scatter_description[scatter_id].coll;
+                                         sg_cfg_get_string("smpi/scatter"));
+  mpi_coll_scatter_fun = (int (*)(void *sendbuf, int sendcount,
+                                  MPI_Datatype sendtype, void *recvbuf,
+                                  int recvcount, MPI_Datatype recvtype,
+                                  int root, MPI_Comm comm))
+      mpi_coll_scatter_description[scatter_id].coll;
 
   int barrier_id = find_coll_description(mpi_coll_barrier_description,
-                                           sg_cfg_get_string("smpi/barrier"));
+                                         sg_cfg_get_string("smpi/barrier"));
   mpi_coll_barrier_fun = (int (*)(MPI_Comm comm))
-                          mpi_coll_barrier_description[barrier_id].coll;
+      mpi_coll_barrier_description[barrier_id].coll;
+
+  smpi_cpu_threshold = sg_cfg_get_double("smpi/cpu_threshold");
+  smpi_running_power = sg_cfg_get_double("smpi/running_power");
+  if (smpi_cpu_threshold < 0)
+    smpi_cpu_threshold = DBL_MAX;
 
   smpi_global_init();
 
index 0892c28..ac393b2 100644 (file)
@@ -31,8 +31,11 @@ int PMPI_Init(int *argc, char ***argv)
 #ifdef HAVE_TRACING
   int rank = smpi_process_index();
   TRACE_smpi_init(rank);
-
   TRACE_smpi_computing_init(rank);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_INIT;
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, extra);
+  TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
 #endif
   smpi_bench_begin();
   return MPI_SUCCESS;
@@ -40,11 +43,16 @@ int PMPI_Init(int *argc, char ***argv)
 
 int PMPI_Finalize(void)
 {
-  smpi_process_finalize();
   smpi_bench_end();
 #ifdef HAVE_TRACING
   int rank = smpi_process_index();
-  TRACE_smpi_computing_out(rank);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_FINALIZE;
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, extra);
+#endif
+  smpi_process_finalize();
+#ifdef HAVE_TRACING
+  TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
   TRACE_smpi_finalize(smpi_process_index());
 #endif
   smpi_process_destroy();
@@ -115,10 +123,6 @@ int PMPI_Abort(MPI_Comm comm, int errorcode)
 {
   smpi_bench_end();
   smpi_process_destroy();
-#ifdef HAVE_TRACING
-  int rank = smpi_process_index();
-  TRACE_smpi_computing_out(rank);
-#endif
   // FIXME: should kill all processes in comm instead
   simcall_process_kill(SIMIX_process_self());
   return MPI_SUCCESS;
@@ -127,7 +131,13 @@ int PMPI_Abort(MPI_Comm comm, int errorcode)
 double PMPI_Wtime(void)
 {
   double time;
-  time = SIMIX_get_clock();
+  if (smpi_process_initialized() && !smpi_process_finalized() && !smpi_process_get_sampling()) {
+    smpi_bench_end();
+    time = SIMIX_get_clock();
+    smpi_bench_begin();
+  } else {
+    time = SIMIX_get_clock();
+  }
   return time;
 }
 
@@ -554,7 +564,7 @@ int PMPI_Group_excl(MPI_Group group, int n, int *ranks, MPI_Group * newgroup)
       newsize = oldsize - n;
       *newgroup = smpi_group_new(newsize);
 
-      int* to_exclude=xbt_new(int, smpi_group_size(group));
+      int* to_exclude=xbt_new0(int, smpi_group_size(group));
       for(i=0; i<oldsize; i++)
         to_exclude[i]=0;
       for(i=0; i<n; i++)
@@ -1047,7 +1057,14 @@ int PMPI_Irecv(void *buf, int count, MPI_Datatype datatype, int src,
 #ifdef HAVE_TRACING
     int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
     int src_traced = smpi_group_index(smpi_comm_group(comm), src);
-    TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, count*smpi_datatype_size(datatype));
+
+    instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+    extra->type = TRACING_IRECV;
+    extra->send_size = count;
+    extra->src = src_traced;
+    extra->dst = rank;
+    extra->datatype1 = encode_datatype(datatype);
+    TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, extra);
 #endif
 
     *request = smpi_mpi_irecv(buf, count, datatype, src, tag, comm);
@@ -1093,9 +1110,15 @@ int PMPI_Isend(void *buf, int count, MPI_Datatype datatype, int dst,
 
 #ifdef HAVE_TRACING
     int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-    TRACE_smpi_computing_out(rank);
     int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
-    TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
+
+    instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+    extra->type = TRACING_ISEND;
+    extra->send_size = count;
+    extra->src = rank;
+    extra->dst = dst_traced;
+    extra->datatype1 = encode_datatype(datatype);
+    TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, extra);
     TRACE_smpi_send(rank, rank, dst_traced, count*smpi_datatype_size(datatype));
 #endif
 
@@ -1105,7 +1128,6 @@ int PMPI_Isend(void *buf, int count, MPI_Datatype datatype, int dst,
 #ifdef HAVE_TRACING
     TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
     (*request)->send = 1;
-    TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -1142,9 +1164,14 @@ int PMPI_Issend(void* buf, int count, MPI_Datatype datatype,
 
 #ifdef HAVE_TRACING
     int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-    TRACE_smpi_computing_out(rank);
     int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
-    TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
+    instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+    extra->type = TRACING_ISSEND;
+    extra->send_size = count;
+    extra->src = rank;
+    extra->dst = dst_traced;
+    extra->datatype1 = encode_datatype(datatype);
+    TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, extra);
     TRACE_smpi_send(rank, rank, dst_traced, count*smpi_datatype_size(datatype));
 #endif
 
@@ -1154,7 +1181,6 @@ int PMPI_Issend(void* buf, int count, MPI_Datatype datatype,
 #ifdef HAVE_TRACING
     TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
     (*request)->send = 1;
-    TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -1190,8 +1216,13 @@ int PMPI_Recv(void *buf, int count, MPI_Datatype datatype, int src, int tag,
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
   int src_traced = smpi_group_index(smpi_comm_group(comm), src);
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, count*smpi_datatype_size(datatype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_RECV;
+  extra->send_size = count;
+  extra->src = src_traced;
+  extra->dst = rank;
+  extra->datatype1 = encode_datatype(datatype);
+  TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, extra);
 #endif
 
     smpi_mpi_recv(buf, count, datatype, src, tag, comm, status);
@@ -1199,10 +1230,11 @@ int PMPI_Recv(void *buf, int count, MPI_Datatype datatype, int src, int tag,
 
 #ifdef HAVE_TRACING
   //the src may not have been known at the beginning of the recv (MPI_ANY_SOURCE)
-  if(status!=MPI_STATUS_IGNORE)src_traced = smpi_group_index(smpi_comm_group(comm), status->MPI_SOURCE);
+  if(status!=MPI_STATUS_IGNORE){
+    src_traced = smpi_group_index(smpi_comm_group(comm), status->MPI_SOURCE);
+    TRACE_smpi_recv(rank, src_traced, rank);
+  }
   TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__);
-  TRACE_smpi_recv(rank, src_traced, rank);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -1235,9 +1267,14 @@ int PMPI_Send(void *buf, int count, MPI_Datatype datatype, int dst, int tag,
 
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
   int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
-  TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_SEND;
+  extra->send_size = count;
+  extra->src = rank;
+  extra->dst = dst_traced;
+  extra->datatype1 = encode_datatype(datatype);
+  TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, extra);
   TRACE_smpi_send(rank, rank, dst_traced,count*smpi_datatype_size(datatype));
 #endif
 
@@ -1246,7 +1283,6 @@ int PMPI_Send(void *buf, int count, MPI_Datatype datatype, int dst, int tag,
 
 #ifdef HAVE_TRACING
   TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -1279,10 +1315,14 @@ int PMPI_Ssend(void* buf, int count, MPI_Datatype datatype, int dst, int tag, MP
 
  #ifdef HAVE_TRACING
    int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-   TRACE_smpi_computing_out(rank);
    int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
-   TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
-   TRACE_smpi_send(rank, rank, dst_traced,count*smpi_datatype_size(datatype));
+   instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+   extra->type = TRACING_SSEND;
+   extra->send_size = count;
+   extra->src = rank;
+   extra->dst = dst_traced;
+   extra->datatype1 = encode_datatype(datatype);
+   TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, extra);   TRACE_smpi_send(rank, rank, dst_traced,count*smpi_datatype_size(datatype));
  #endif
 
      smpi_mpi_ssend(buf, count, datatype, dst, tag, comm);
@@ -1290,7 +1330,6 @@ int PMPI_Ssend(void* buf, int count, MPI_Datatype datatype, int dst, int tag, MP
 
  #ifdef HAVE_TRACING
    TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
-   TRACE_smpi_computing_in(rank);
  #endif
    }
 
@@ -1329,10 +1368,18 @@ int PMPI_Sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
 
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
   int dst_traced = smpi_group_index(smpi_comm_group(comm), dst);
   int src_traced = smpi_group_index(smpi_comm_group(comm), src);
-  TRACE_smpi_ptp_in(rank, src_traced, dst_traced, __FUNCTION__, sendcount*smpi_datatype_size(sendtype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_SENDRECV;
+  extra->send_size = sendcount;
+  extra->recv_size = recvcount;
+  extra->src = src_traced;
+  extra->dst = dst_traced;
+  extra->datatype1 = encode_datatype(sendtype);
+  extra->datatype2 = encode_datatype(recvtype);
+
+  TRACE_smpi_ptp_in(rank, src_traced, dst_traced, __FUNCTION__, extra);
   TRACE_smpi_send(rank, rank, dst_traced,sendcount*smpi_datatype_size(sendtype));
 #endif
 
@@ -1344,7 +1391,6 @@ int PMPI_Sendrecv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
 #ifdef HAVE_TRACING
   TRACE_smpi_ptp_out(rank, src_traced, dst_traced, __FUNCTION__);
   TRACE_smpi_recv(rank, src_traced, rank);
-  TRACE_smpi_computing_in(rank);
 #endif
 
   }
@@ -1366,7 +1412,7 @@ int PMPI_Sendrecv_replace(void *buf, int count, MPI_Datatype datatype,
       retval = MPI_ERR_COUNT;
   } else {
     int size = smpi_datatype_get_extent(datatype) * count;
-    recvbuf = xbt_new(char, size);
+    recvbuf = xbt_new0(char, size);
     retval =
         MPI_Sendrecv(buf, count, datatype, dst, sendtag, recvbuf, count,
                      datatype, src, recvtag, comm, status);
@@ -1491,13 +1537,14 @@ int PMPI_Wait(MPI_Request * request, MPI_Status * status)
     int rank = request && (*request)->comm != MPI_COMM_NULL
       ? smpi_process_index()
       : -1;
-    TRACE_smpi_computing_out(rank);
 
     int src_traced = (*request)->src;
     int dst_traced = (*request)->dst;
     MPI_Comm comm = (*request)->comm;
     int is_wait_for_receive = (*request)->recv;
-    TRACE_smpi_ptp_in(rank, src_traced, dst_traced, __FUNCTION__,-1);
+    instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+    extra->type = TRACING_WAIT;
+    TRACE_smpi_ptp_in(rank, src_traced, dst_traced, __FUNCTION__, extra);
 #endif
 
     smpi_mpi_wait(request, status);
@@ -1513,7 +1560,6 @@ int PMPI_Wait(MPI_Request * request, MPI_Status * status)
           src_traced;
       TRACE_smpi_recv(rank, src_traced, dst_traced);
     }
-    TRACE_smpi_computing_in(rank);
 #endif
 
   }
@@ -1524,16 +1570,17 @@ int PMPI_Wait(MPI_Request * request, MPI_Status * status)
 
 int PMPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status * status)
 {
-  int retval = 0;
+  if (index == NULL)
+    return MPI_ERR_ARG;
 
   smpi_bench_end();
 #ifdef HAVE_TRACING
   //save requests information for tracing
   int i;
-  int *srcs = xbt_new(int, count);
-  int *dsts = xbt_new(int, count);
-  int *recvs = xbt_new(int, count);
-  MPI_Comm *comms = xbt_new(MPI_Comm, count);
+  int *srcs = xbt_new0(int, count);
+  int *dsts = xbt_new0(int, count);
+  int *recvs = xbt_new0(int, count);
+  MPI_Comm *comms = xbt_new0(MPI_Comm, count);
 
   for (i = 0; i < count; i++) {
     MPI_Request req = requests[i];      //already received requests are no longer valid
@@ -1545,17 +1592,13 @@ int PMPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status * sta
     }
   }
   int rank_traced = smpi_process_index();
-  TRACE_smpi_computing_out(rank_traced);
-
-  TRACE_smpi_ptp_in(rank_traced, -1, -1, __FUNCTION__,count);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_WAITANY;
+  extra->send_size=count;
+  TRACE_smpi_ptp_in(rank_traced, -1, -1, __FUNCTION__,extra);
 
 #endif
-  if (index == NULL) {
-    retval = MPI_ERR_ARG;
-  } else {
-    *index = smpi_mpi_waitany(count, requests, status);
-    retval = MPI_SUCCESS;
-  }
+  *index = smpi_mpi_waitany(count, requests, status);
 #ifdef HAVE_TRACING
   if(*index!=MPI_UNDEFINED){
     int src_traced = srcs[*index];
@@ -1576,10 +1619,9 @@ int PMPI_Waitany(int count, MPI_Request requests[], int *index, MPI_Status * sta
     xbt_free(comms);
 
   }
-  TRACE_smpi_computing_in(rank_traced);
 #endif
   smpi_bench_begin();
-  return retval;
+  return MPI_SUCCESS;
 }
 
 int PMPI_Waitall(int count, MPI_Request requests[], MPI_Status status[])
@@ -1589,11 +1631,11 @@ int PMPI_Waitall(int count, MPI_Request requests[], MPI_Status status[])
 #ifdef HAVE_TRACING
   //save information from requests
   int i;
-  int *srcs = xbt_new(int, count);
-  int *dsts = xbt_new(int, count);
-  int *recvs = xbt_new(int, count);
-  int *valid = xbt_new(int, count);
-  MPI_Comm *comms = xbt_new(MPI_Comm, count);
+  int *srcs = xbt_new0(int, count);
+  int *dsts = xbt_new0(int, count);
+  int *recvs = xbt_new0(int, count);
+  int *valid = xbt_new0(int, count);
+  MPI_Comm *comms = xbt_new0(MPI_Comm, count);
 
   //int valid_count = 0;
   for (i = 0; i < count; i++) {
@@ -1609,9 +1651,10 @@ int PMPI_Waitall(int count, MPI_Request requests[], MPI_Status status[])
     }
   }
   int rank_traced = smpi_process_index();
-  TRACE_smpi_computing_out(rank_traced);
-
-  TRACE_smpi_ptp_in(rank_traced, -1, -1, __FUNCTION__,count);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_WAITALL;
+  extra->send_size=count;
+  TRACE_smpi_ptp_in(rank_traced, -1, -1, __FUNCTION__,extra);
 #endif
   int retval = smpi_mpi_waitall(count, requests, status);
 #ifdef HAVE_TRACING
@@ -1638,7 +1681,6 @@ int PMPI_Waitall(int count, MPI_Request requests[], MPI_Status status[])
   xbt_free(valid);
   xbt_free(comms);
 
-  TRACE_smpi_computing_in(rank_traced);
 #endif
   smpi_bench_begin();
   return retval;
@@ -1688,15 +1730,20 @@ int PMPI_Bcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm c
   } else {
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
   int root_traced = smpi_group_index(smpi_comm_group(comm), root);
-  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
+
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_BCAST;
+  extra->send_size = count;
+  extra->root = root_traced;
+  extra->datatype1 = encode_datatype(datatype);
+  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__, extra);
+
 #endif
     mpi_coll_bcast_fun(buf, count, datatype, root, comm);
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -1715,14 +1762,14 @@ int PMPI_Barrier(MPI_Comm comm)
   } else {
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, smpi_comm_size(comm));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_BARRIER;
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, extra);
 #endif
     mpi_coll_barrier_fun(comm);
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -1757,9 +1804,16 @@ int PMPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
     }
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
   int root_traced = smpi_group_index(smpi_comm_group(comm), root);
-  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,sendcount*smpi_datatype_size(sendtmptype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_GATHER;
+  extra->send_size = sendtmpcount;
+  extra->recv_size = recvcount;
+  extra->root = root_traced;
+  extra->datatype1 = encode_datatype(sendtmptype);
+  extra->datatype2 = encode_datatype(recvtype);
+
+  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__, extra);
 #endif
     mpi_coll_gather_fun(sendtmpbuf, sendtmpcount, sendtmptype, recvbuf, recvcount,
                     recvtype, root, comm);
@@ -1768,7 +1822,6 @@ int PMPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -1804,16 +1857,27 @@ int PMPI_Gatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
 
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
   int root_traced = smpi_group_index(smpi_comm_group(comm), root);
-  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,sendcount*smpi_datatype_size(sendtmptype));
+  int i=0;
+  int size = smpi_comm_size(comm);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_GATHERV;
+  extra->send_size = sendtmpcount;
+  extra->recvcounts= xbt_malloc(size*sizeof(int));
+  for(i=0; i< size; i++)//copy data to avoid bad free
+    extra->recvcounts[i] = recvcounts[i];
+  extra->num_processes = size;
+  extra->root = root_traced;
+  extra->datatype1 = encode_datatype(sendtmptype);
+  extra->datatype2 = encode_datatype(recvtype);
+
+  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,extra);
 #endif
     smpi_mpi_gatherv(sendtmpbuf, sendtmpcount, sendtmptype, recvbuf, recvcounts,
                      displs, recvtype, root, comm);
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -1845,8 +1909,14 @@ int PMPI_Allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype,
     }
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,sendcount*smpi_datatype_size(sendtype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_ALLGATHER;
+  extra->send_size = sendcount;
+  extra->recv_size = recvcount;
+  extra->datatype1 = encode_datatype(sendtype);
+  extra->datatype2 = encode_datatype(recvtype);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, extra);
 #endif
     mpi_coll_allgather_fun(sendbuf, sendcount, sendtype, recvbuf, recvcount,
                            recvtype, comm);
@@ -1886,15 +1956,25 @@ int PMPI_Allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype,
     }
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,sendcount*smpi_datatype_size(sendtype));
+  int i=0;
+  int size = smpi_comm_size(comm);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_ALLGATHERV;
+  extra->send_size = sendcount;
+  extra->recvcounts= xbt_malloc(size*sizeof(int));
+  for(i=0; i< size; i++)//copy data to avoid bad free
+    extra->recvcounts[i] = recvcounts[i];
+  extra->num_processes = size;
+  extra->datatype1 = encode_datatype(sendtype);
+  extra->datatype2 = encode_datatype(recvtype);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
     mpi_coll_allgatherv_fun(sendbuf, sendcount, sendtype, recvbuf, recvcounts,
                         displs, recvtype, comm);
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -1923,17 +2003,22 @@ int PMPI_Scatter(void *sendbuf, int sendcount, MPI_Datatype sendtype,
     }
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
   int root_traced = smpi_group_index(smpi_comm_group(comm), root);
-
-  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,sendcount*smpi_datatype_size(recvtype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_SCATTER;
+  extra->send_size = sendcount;
+  extra->recv_size= recvcount;
+  extra->root = root_traced;
+  extra->datatype1 = encode_datatype(sendtype);
+  extra->datatype2 = encode_datatype(recvtype);
+
+  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,extra);
 #endif
     mpi_coll_scatter_fun(sendbuf, sendcount, sendtype, recvbuf, recvcount,
                      recvtype, root, comm);
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -1963,18 +2048,28 @@ int PMPI_Scatterv(void *sendbuf, int *sendcounts, int *displs,
     }
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
   int root_traced = smpi_group_index(smpi_comm_group(comm), root);
-  int count=0, i;
-  for(i=0; i<smpi_comm_size(comm);i++)count+=sendcounts[i];
-  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__, count*smpi_datatype_size(sendtype));
+  int i=0;
+  int size = smpi_comm_size(comm);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_SCATTERV;
+  extra->recv_size = recvcount;
+  extra->sendcounts= xbt_malloc(size*sizeof(int));
+  for(i=0; i< size; i++)//copy data to avoid bad free
+    extra->sendcounts[i] = sendcounts[i];
+  extra->num_processes = size;
+  extra->root = root_traced;
+  extra->datatype1 = encode_datatype(sendtype);
+  extra->datatype2 = encode_datatype(recvtype);
+
+  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,extra);
+
 #endif
     smpi_mpi_scatterv(sendbuf, sendcounts, displs, sendtype, recvbuf,
                       recvcount, recvtype, root, comm);
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -1996,16 +2091,20 @@ int PMPI_Reduce(void *sendbuf, void *recvbuf, int count,
   } else {
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
   int root_traced = smpi_group_index(smpi_comm_group(comm), root);
-  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__, count*smpi_datatype_size(datatype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_REDUCE;
+  extra->send_size = count;
+  extra->datatype1 = encode_datatype(datatype);
+  extra->root = root_traced;
+
+  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,extra);
 #endif
     mpi_coll_reduce_fun(sendbuf, recvbuf, count, datatype, op, root, comm);
 
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -2050,8 +2149,12 @@ int PMPI_Allreduce(void *sendbuf, void *recvbuf, int count,
     }
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, count*smpi_datatype_size(datatype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_ALLREDUCE;
+  extra->send_size = count;
+  extra->datatype1 = encode_datatype(datatype);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
     mpi_coll_allreduce_fun(sendtmpbuf, recvbuf, count, datatype, op, comm);
 
@@ -2062,7 +2165,6 @@ int PMPI_Allreduce(void *sendbuf, void *recvbuf, int count,
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -2086,14 +2188,17 @@ int PMPI_Scan(void *sendbuf, void *recvbuf, int count,
   } else {
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, count*smpi_datatype_size(datatype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_SCAN;
+  extra->send_size = count;
+  extra->datatype1 = encode_datatype(datatype);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
     smpi_mpi_scan(sendbuf, recvbuf, count, datatype, op, comm);
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -2116,14 +2221,17 @@ int PMPI_Exscan(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype,
   } else {
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, count*smpi_datatype_size(datatype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_EXSCAN;
+  extra->send_size = count;
+  extra->datatype1 = encode_datatype(datatype);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
     smpi_mpi_exscan(sendbuf, recvbuf, count, datatype, op, comm);
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -2148,10 +2256,18 @@ int PMPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts,
   } else {
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  int count=0, i;
-  for(i=0; i<smpi_comm_size(comm);i++)count+=recvcounts[i];
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, count*smpi_datatype_size(datatype));
+  int i=0;
+  int size = smpi_comm_size(comm);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_REDUCE_SCATTER;
+  extra->send_size = 0;
+  extra->recvcounts= xbt_malloc(size*sizeof(int));
+  for(i=0; i< size; i++)//copy data to avoid bad free
+    extra->recvcounts[i] = recvcounts[i];
+  extra->num_processes = size;
+  extra->datatype1 = encode_datatype(datatype);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
     void* sendtmpbuf=sendbuf;
     if(sendbuf==MPI_IN_PLACE){
@@ -2163,7 +2279,6 @@ int PMPI_Reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts,
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -2186,12 +2301,21 @@ int PMPI_Reduce_scatter_block(void *sendbuf, void *recvbuf, int recvcount,
   } else if (recvcount < 0) {
     retval = MPI_ERR_ARG;
   } else {
+    int count=smpi_comm_size(comm);
+
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, recvcount*smpi_comm_size(comm)*smpi_datatype_size(datatype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_REDUCE_SCATTER;
+  extra->send_size = 0;
+  extra->recvcounts= xbt_malloc(count*sizeof(int));
+  for(i=0; i< count; i++)//copy data to avoid bad free
+    extra->recvcounts[i] = recvcount;
+  extra->num_processes = count;
+  extra->datatype1 = encode_datatype(datatype);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
-    int count=smpi_comm_size(comm);
     int* recvcounts=(int*)xbt_malloc(count);
     for (i=0; i<count;i++)recvcounts[i]=recvcount;
     mpi_coll_reduce_scatter_fun(sendbuf, recvbuf, recvcounts,
@@ -2200,7 +2324,6 @@ int PMPI_Reduce_scatter_block(void *sendbuf, void *recvbuf, int recvcount,
     retval = MPI_SUCCESS;
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -2224,13 +2347,18 @@ int PMPI_Alltoall(void *sendbuf, int sendcount, MPI_Datatype sendtype,
   } else {
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, sendcount*smpi_datatype_size(sendtype));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_ALLTOALL;
+  extra->send_size = sendcount;
+  extra->recv_size = recvcount;
+  extra->datatype1 = encode_datatype(sendtype);
+  extra->datatype2 = encode_datatype(recvtype);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
     retval = mpi_coll_alltoall_fun(sendbuf, sendcount, sendtype, recvbuf, recvcount, recvtype, comm);
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
@@ -2257,10 +2385,28 @@ int PMPI_Alltoallv(void *sendbuf, int *sendcounts, int *senddisps,
   } else {
 #ifdef HAVE_TRACING
   int rank = comm != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  int i, size=0;
-  for(i=0; i< smpi_comm_size(comm);i++)size+=sendcounts[i];
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, size*smpi_datatype_size(sendtype));
+  int i=0;
+  int size = smpi_comm_size(comm);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_ALLTOALLV;
+  extra->send_size = 0;
+  extra->recv_size = 0;
+  extra->recvcounts= xbt_malloc(size*sizeof(int));
+  extra->sendcounts= xbt_malloc(size*sizeof(int));
+
+  for(i=0; i< size; i++){//copy data to avoid bad free
+    extra->send_size += sendcounts[i];
+    extra->recv_size += recvcounts[i];
+
+    extra->sendcounts[i] = sendcounts[i];
+    extra->recvcounts[i] = recvcounts[i];
+  }
+  extra->num_processes = size;
+
+  extra->datatype1 = encode_datatype(sendtype);
+  extra->datatype2 = encode_datatype(recvtype);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
     retval =
         mpi_coll_alltoallv_fun(sendbuf, sendcounts, senddisps, sendtype,
@@ -2268,7 +2414,6 @@ int PMPI_Alltoallv(void *sendbuf, int *sendcounts, int *senddisps,
                                   comm);
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
   }
 
index fbfb107..816ad8c 100644 (file)
@@ -27,11 +27,6 @@ static void log_timed_action (const char *const *action, double clock){
   }
 }
 
-typedef struct {
-  xbt_dynar_t irecvs; /* of MPI_Request */
-} s_smpi_replay_globals_t, *smpi_replay_globals_t;
-
-
 /* Helper function */
 static double parse_double(const char *string)
 {
@@ -77,18 +72,41 @@ static MPI_Datatype decode_datatype(const char *const action)
    return MPI_CURRENT_TYPE;
 }
 
+
+const char* encode_datatype(MPI_Datatype datatype)
+{
+
+  //default type for output is set to MPI_BYTE
+  // MPI_DEFAULT_TYPE is not set for output, use directly MPI_BYTE
+  if (datatype==MPI_BYTE){
+      return "";
+  }
+  if(datatype==MPI_DOUBLE)
+      return "0";
+  if(datatype==MPI_INT)
+      return "1";
+  if(datatype==MPI_CHAR)
+      return "2";
+  if(datatype==MPI_SHORT)
+      return "3";
+  if(datatype==MPI_LONG)
+    return "4";
+  if(datatype==MPI_FLOAT)
+      return "5";
+
+  // default - not implemented.
+  // do not warn here as we pass in this function even for other trace formats
+  return "-1";
+}
+
 static void action_init(const char *const *action)
 {
   int i;
   XBT_DEBUG("Initialize the counters");
-  smpi_replay_globals_t globals =  xbt_new(s_smpi_replay_globals_t, 1);
-  globals->irecvs = xbt_dynar_new(sizeof(MPI_Request),NULL);
 
   if(action[2]) MPI_DEFAULT_TYPE= MPI_DOUBLE; // default MPE dataype 
   else MPI_DEFAULT_TYPE= MPI_BYTE; // default TAU datatype
 
-  smpi_process_set_user_data((void*) globals);
-
   /* start a simulated timer */
   smpi_process_simulated_start();
   /*initialize the number of active processes */
@@ -98,21 +116,13 @@ static void action_init(const char *const *action)
     reqq=xbt_new0(xbt_dynar_t,active_processes);
 
     for(i=0;i<active_processes;i++){
-      reqq[i]=xbt_dynar_new(sizeof(MPI_Request),NULL);
+      reqq[i]=xbt_dynar_new(sizeof(MPI_Request),&xbt_free_ref);
     }
   }
 }
 
 static void action_finalize(const char *const *action)
 {
-  smpi_replay_globals_t globals =
-      (smpi_replay_globals_t) smpi_process_get_user_data();
-  if (globals){
-    XBT_DEBUG("There are %lu irecvs in the dynar",
-         xbt_dynar_length(globals->irecvs));
-    xbt_dynar_free_container(&(globals->irecvs));
-  }
-  free(globals);
 }
 
 static void action_comm_size(const char *const *action)
@@ -140,7 +150,18 @@ static void action_comm_dup(const char *const *action)
 static void action_compute(const char *const *action)
 {
   double clock = smpi_process_simulated_elapsed();
-  smpi_execute_flops(parse_double(action[2]));
+  double flops= parse_double(action[2]);
+#ifdef HAVE_TRACING
+  int rank = smpi_comm_rank(MPI_COMM_WORLD);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type=TRACING_COMPUTING;
+  extra->comp_size=flops;
+  TRACE_smpi_computing_in(rank, extra);
+#endif
+  smpi_execute_flops(flops);
+#ifdef HAVE_TRACING
+  TRACE_smpi_computing_out(rank);
+#endif
 
   log_timed_action (action, clock);
 }
@@ -159,9 +180,15 @@ static void action_send(const char *const *action)
 
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
-  TRACE_smpi_computing_out(rank);
+
   int dst_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), to);
-  TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, size*smpi_datatype_size(MPI_CURRENT_TYPE));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_SEND;
+  extra->send_size = size;
+  extra->src = rank;
+  extra->dst = dst_traced;
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, extra);
   TRACE_smpi_send(rank, rank, dst_traced, size*smpi_datatype_size(MPI_CURRENT_TYPE));
 #endif
 
@@ -171,7 +198,6 @@ static void action_send(const char *const *action)
 
   #ifdef HAVE_TRACING
   TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
 
 }
@@ -188,9 +214,14 @@ static void action_Isend(const char *const *action)
 
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
-  TRACE_smpi_computing_out(rank);
   int dst_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), to);
-  TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, size*smpi_datatype_size(MPI_CURRENT_TYPE));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_ISEND;
+  extra->send_size = size;
+  extra->src = rank;
+  extra->dst = dst_traced;
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  TRACE_smpi_ptp_in(rank, rank, dst_traced, __FUNCTION__, extra);
   TRACE_smpi_send(rank, rank, dst_traced, size*smpi_datatype_size(MPI_CURRENT_TYPE));
 #endif
 
@@ -199,7 +230,6 @@ static void action_Isend(const char *const *action)
 #ifdef HAVE_TRACING
   TRACE_smpi_ptp_out(rank, rank, dst_traced, __FUNCTION__);
   request->send = 1;
-  TRACE_smpi_computing_in(rank);
 #endif
 
   xbt_dynar_push(reqq[smpi_comm_rank(MPI_COMM_WORLD)],&request);
@@ -219,9 +249,14 @@ static void action_recv(const char *const *action) {
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
   int src_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), from);
-  TRACE_smpi_computing_out(rank);
 
-  TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, size*smpi_datatype_size(MPI_CURRENT_TYPE));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_RECV;
+  extra->send_size = size;
+  extra->src = src_traced;
+  extra->dst = rank;
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, extra);
 #endif
 
   smpi_mpi_recv(NULL, size, MPI_CURRENT_TYPE, from, 0, MPI_COMM_WORLD, &status);
@@ -229,7 +264,6 @@ static void action_recv(const char *const *action) {
 #ifdef HAVE_TRACING
   TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__);
   TRACE_smpi_recv(rank, src_traced, rank);
-  TRACE_smpi_computing_in(rank);
 #endif
 
   log_timed_action (action, clock);
@@ -242,16 +276,19 @@ static void action_Irecv(const char *const *action)
   double clock = smpi_process_simulated_elapsed();
   MPI_Request request;
 
-  smpi_replay_globals_t globals =
-     (smpi_replay_globals_t) smpi_process_get_user_data();
-
   if(action[4]) MPI_CURRENT_TYPE=decode_datatype(action[4]);
   else MPI_CURRENT_TYPE= MPI_DEFAULT_TYPE;
 
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
   int src_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), from);
-  TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, size*smpi_datatype_size(MPI_CURRENT_TYPE));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_IRECV;
+  extra->send_size = size;
+  extra->src = src_traced;
+  extra->dst = rank;
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  TRACE_smpi_ptp_in(rank, src_traced, rank, __FUNCTION__, extra);
 #endif
 
   request = smpi_mpi_irecv(NULL, size, MPI_CURRENT_TYPE, from, 0, MPI_COMM_WORLD);
@@ -260,7 +297,6 @@ static void action_Irecv(const char *const *action)
   TRACE_smpi_ptp_out(rank, src_traced, rank, __FUNCTION__);
   request->recv = 1;
 #endif
-  xbt_dynar_push(globals->irecvs,&request);
   xbt_dynar_push(reqq[smpi_comm_rank(MPI_COMM_WORLD)],&request);
 
   log_timed_action (action, clock);
@@ -270,24 +306,24 @@ static void action_wait(const char *const *action){
   double clock = smpi_process_simulated_elapsed();
   MPI_Request request;
   MPI_Status status;
-  smpi_replay_globals_t globals =
-      (smpi_replay_globals_t) smpi_process_get_user_data();
 
-  xbt_assert(xbt_dynar_length(globals->irecvs),
-      "action wait not preceded by any irecv: %s",
+  xbt_assert(xbt_dynar_length(reqq[smpi_comm_rank(MPI_COMM_WORLD)]),
+      "action wait not preceded by any irecv or isend: %s",
       xbt_str_join_array(action," "));
-  request = xbt_dynar_pop_as(globals->irecvs,MPI_Request);
+  request = xbt_dynar_pop_as(reqq[smpi_comm_rank(MPI_COMM_WORLD)],MPI_Request);
+  xbt_assert(request != NULL, "found null request in reqq");
 #ifdef HAVE_TRACING
-  int rank = request && request->comm != MPI_COMM_NULL
+  int rank = request->comm != MPI_COMM_NULL
       ? smpi_comm_rank(request->comm)
       : -1;
-  TRACE_smpi_computing_out(rank);
 
   MPI_Group group = smpi_comm_group(request->comm);
   int src_traced = smpi_group_rank(group, request->src);
   int dst_traced = smpi_group_rank(group, request->dst);
   int is_wait_for_receive = request->recv;
-  TRACE_smpi_ptp_in(rank, src_traced, dst_traced, __FUNCTION__, -1);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_WAIT;
+  TRACE_smpi_ptp_in(rank, src_traced, dst_traced, __FUNCTION__, extra);
 #endif
   smpi_mpi_wait(&request, &status);
 #ifdef HAVE_TRACING
@@ -295,7 +331,6 @@ static void action_wait(const char *const *action){
   if (is_wait_for_receive) {
     TRACE_smpi_recv(rank, src_traced, dst_traced);
   }
-  TRACE_smpi_computing_in(rank);
 #endif
 
   log_timed_action (action, clock);
@@ -345,10 +380,11 @@ static void action_waitall(const char *const *action){
     }
    }
    int rank_traced = smpi_process_index();
-   TRACE_smpi_computing_out(rank_traced);
-
-   TRACE_smpi_ptp_in(rank_traced, -1, -1, __FUNCTION__, count_requests);
-  #endif
+   instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+   extra->type = TRACING_WAITALL;
+   extra->send_size=count_requests;
+   TRACE_smpi_ptp_in(rank_traced, -1, -1, __FUNCTION__,extra);
+ #endif
 
     smpi_mpi_waitall(count_requests, requests, status);
 
@@ -367,10 +403,9 @@ static void action_waitall(const char *const *action){
    xbt_dynar_free(&srcs);
    xbt_dynar_free(&dsts);
    xbt_dynar_free(&recvs);
-   TRACE_smpi_computing_in(rank_traced);
   #endif
 
-   xbt_dynar_reset(reqq[smpi_comm_rank(MPI_COMM_WORLD)]);
+   xbt_dynar_free_container(&(reqq[smpi_comm_rank(MPI_COMM_WORLD)]));
   }
   log_timed_action (action, clock);
 }
@@ -379,13 +414,13 @@ static void action_barrier(const char *const *action){
   double clock = smpi_process_simulated_elapsed();
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, smpi_comm_size(MPI_COMM_WORLD));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_BARRIER;
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, extra);
 #endif
   smpi_mpi_barrier(MPI_COMM_WORLD);
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
 
   log_timed_action (action, clock);
@@ -412,15 +447,20 @@ static void action_bcast(const char *const *action)
 
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
-  TRACE_smpi_computing_out(rank);
-  int root_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), 0);
-  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,size*smpi_datatype_size(MPI_CURRENT_TYPE));
+  int root_traced = smpi_group_index(smpi_comm_group(MPI_COMM_WORLD), root);
+
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_BCAST;
+  extra->send_size = size;
+  extra->root = root_traced;
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__, extra);
+
 #endif
 
-  smpi_mpi_bcast(NULL, size, MPI_CURRENT_TYPE, root, MPI_COMM_WORLD);
+  mpi_coll_bcast_fun(NULL, size, MPI_CURRENT_TYPE, root, MPI_COMM_WORLD);
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
 
   log_timed_action (action, clock);
@@ -443,15 +483,20 @@ static void action_reduce(const char *const *action)
 
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
-  TRACE_smpi_computing_out(rank);
-  int root_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), 0);
-  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,comm_size*smpi_datatype_size(MPI_CURRENT_TYPE));
+  int root_traced = smpi_group_rank(smpi_comm_group(MPI_COMM_WORLD), root);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_REDUCE;
+  extra->send_size = comm_size;
+  extra->comp_size = comp_size;
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  extra->root = root_traced;
+
+  TRACE_smpi_collective_in(rank, root_traced, __FUNCTION__,extra);
 #endif
    mpi_coll_reduce_fun(NULL, NULL, comm_size, MPI_CURRENT_TYPE, MPI_OP_NULL, root, MPI_COMM_WORLD);
    smpi_execute_flops(comp_size);
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, root_traced, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
 
   log_timed_action (action, clock);
@@ -467,15 +512,19 @@ static void action_allReduce(const char *const *action) {
   double clock = smpi_process_simulated_elapsed();
 #ifdef HAVE_TRACING
   int rank = smpi_comm_rank(MPI_COMM_WORLD);
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,comp_size*smpi_datatype_size(MPI_CURRENT_TYPE));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_ALLREDUCE;
+  extra->send_size = comm_size;
+  extra->comp_size = comp_size;
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
   mpi_coll_reduce_fun(NULL, NULL, comm_size, MPI_CURRENT_TYPE, MPI_OP_NULL, 0, MPI_COMM_WORLD);
   smpi_execute_flops(comp_size);
   mpi_coll_bcast_fun(NULL, comm_size, MPI_CURRENT_TYPE, 0, MPI_COMM_WORLD);
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
 
   log_timed_action (action, clock);
@@ -501,15 +550,20 @@ static void action_allToAll(const char *const *action) {
 
 #ifdef HAVE_TRACING
   int rank = smpi_process_index();
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,send_size*smpi_datatype_size(MPI_CURRENT_TYPE));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_ALLTOALL;
+  extra->send_size = send_size;
+  extra->recv_size = recv_size;
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  extra->datatype2 = encode_datatype(MPI_CURRENT_TYPE2);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
 
   mpi_coll_alltoall_fun(send, send_size, MPI_CURRENT_TYPE, recv, recv_size, MPI_CURRENT_TYPE2, MPI_COMM_WORLD);
 
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
 
   log_timed_action (action, clock);
@@ -544,7 +598,7 @@ static void action_gather(const char *const *action) {
     MPI_CURRENT_TYPE2=MPI_DEFAULT_TYPE;
   }
   void *send = calloc(send_size, smpi_datatype_size(MPI_CURRENT_TYPE));
-  void *recv = calloc(recv_size, smpi_datatype_size(MPI_CURRENT_TYPE2));
+  void *recv = NULL;
 
   int root=atoi(action[4]);
   int rank = smpi_process_index();
@@ -553,8 +607,15 @@ static void action_gather(const char *const *action) {
     recv = calloc(recv_size*comm_size, smpi_datatype_size(MPI_CURRENT_TYPE2));
 
 #ifdef HAVE_TRACING
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,send_size*smpi_datatype_size(MPI_CURRENT_TYPE));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_GATHER;
+  extra->send_size = send_size;
+  extra->recv_size = recv_size;
+  extra->root = root;
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  extra->datatype2 = encode_datatype(MPI_CURRENT_TYPE2);
+
+  TRACE_smpi_collective_in(rank, root, __FUNCTION__, extra);
 #endif
 smpi_mpi_gather(send, send_size, MPI_CURRENT_TYPE,
                 recv, recv_size, MPI_CURRENT_TYPE2,
@@ -562,7 +623,6 @@ smpi_mpi_gather(send, send_size, MPI_CURRENT_TYPE,
 
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
 
   log_timed_action (action, clock);
@@ -571,6 +631,79 @@ smpi_mpi_gather(send, send_size, MPI_CURRENT_TYPE,
 }
 
 
+
+static void action_gatherv(const char *const *action) {
+  /*
+ The structure of the gatherv action for the rank 0 (total 4 processes)
+ is the following:
+ 0 gather 68 68 10 10 10 0 0 0
+
+  where:
+  1) 68 is the sendcount
+  2) 68 10 10 10 is the recvcounts
+  3) 0 is the root node
+  4) 0 is the send datatype id, see decode_datatype()
+  5) 0 is the recv datatype id, see decode_datatype()
+  */
+  double clock = smpi_process_simulated_elapsed();
+  int comm_size = smpi_comm_size(MPI_COMM_WORLD);
+  int send_size = parse_double(action[2]);
+  int *disps = xbt_new0(int, comm_size);
+  int *recvcounts = xbt_new0(int, comm_size);
+  int i=0,recv_sum=0;
+
+  MPI_Datatype MPI_CURRENT_TYPE2;
+  if(action[4+comm_size]) {
+    MPI_CURRENT_TYPE=decode_datatype(action[4+comm_size]);
+    MPI_CURRENT_TYPE2=decode_datatype(action[5+comm_size]);
+  } else {
+    MPI_CURRENT_TYPE=MPI_DEFAULT_TYPE;
+    MPI_CURRENT_TYPE2=MPI_DEFAULT_TYPE;
+  }
+  void *send = calloc(send_size, smpi_datatype_size(MPI_CURRENT_TYPE));
+  void *recv = NULL;
+  for(i=0;i<comm_size;i++) {
+    recvcounts[i] = atoi(action[i+3]);
+    recv_sum=recv_sum+recvcounts[i];
+    disps[i] = 0;
+  }
+
+  int root=atoi(action[3+comm_size]);
+  int rank = smpi_process_index();
+
+  if(rank==root)
+    recv = calloc(recv_sum, smpi_datatype_size(MPI_CURRENT_TYPE2));
+
+#ifdef HAVE_TRACING
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_GATHERV;
+  extra->send_size = send_size;
+  extra->recvcounts= xbt_malloc(comm_size*sizeof(int));
+  for(i=0; i< comm_size; i++)//copy data to avoid bad free
+    extra->recvcounts[i] = recvcounts[i];
+  extra->root = root;
+  extra->num_processes = comm_size;
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  extra->datatype2 = encode_datatype(MPI_CURRENT_TYPE2);
+
+  TRACE_smpi_collective_in(rank, root, __FUNCTION__, extra);
+#endif
+smpi_mpi_gatherv(send, send_size, MPI_CURRENT_TYPE,
+                recv, recvcounts, disps, MPI_CURRENT_TYPE2,
+                root, MPI_COMM_WORLD);
+
+#ifdef HAVE_TRACING
+  TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
+#endif
+
+  log_timed_action (action, clock);
+  xbt_free(recvcounts);
+  xbt_free(send);
+  xbt_free(recv);
+  xbt_free(disps);
+
+}
+
 static void action_reducescatter(const char *const *action) {
 
     /*
@@ -608,8 +741,18 @@ static void action_reducescatter(const char *const *action) {
   }
 
 #ifdef HAVE_TRACING
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, recv_sum*smpi_datatype_size(MPI_CURRENT_TYPE));
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_REDUCE_SCATTER;
+  extra->send_size = 0;
+  extra->recvcounts= xbt_malloc(comm_size*sizeof(int));
+  for(i=0; i< comm_size; i++)//copy data to avoid bad free
+    extra->recvcounts[i] = recvcounts[i];
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  extra->comp_size = comp_size;
+  extra->num_processes = comm_size;
+
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
    mpi_coll_reduce_fun(NULL, NULL, recv_sum, MPI_CURRENT_TYPE, MPI_OP_NULL,
        root, MPI_COMM_WORLD);
@@ -620,9 +763,9 @@ static void action_reducescatter(const char *const *action) {
 
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
-
+  xbt_free(recvcounts);
+  xbt_free(disps);
   log_timed_action (action, clock);
 }
 
@@ -668,16 +811,24 @@ static void action_allgatherv(const char *const *action) {
   void *recvbuf = calloc(recv_sum, smpi_datatype_size(MPI_CURRENT_TYPE2));  
 
 #ifdef HAVE_TRACING
-  int rank = MPI_COMM_WORLD != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,sendcount*smpi_datatype_size(MPI_CURRENT_TYPE));
+  int rank = smpi_process_index();
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_ALLGATHERV;
+  extra->send_size = sendcount;
+  extra->recvcounts= xbt_malloc(comm_size*sizeof(int));
+  for(i=0; i< comm_size; i++)//copy data to avoid bad free
+    extra->recvcounts[i] = recvcounts[i];
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  extra->datatype2 = encode_datatype(MPI_CURRENT_TYPE2);
+  extra->num_processes = comm_size;
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
 
 mpi_coll_allgatherv_fun(sendbuf, sendcount, MPI_CURRENT_TYPE, recvbuf, recvcounts, disps, MPI_CURRENT_TYPE2, MPI_COMM_WORLD);
 
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
 
   log_timed_action (action, clock);
@@ -735,18 +886,29 @@ static void action_allToAllv(const char *const *action) {
 
 
 #ifdef HAVE_TRACING
-  int rank = MPI_COMM_WORLD != MPI_COMM_NULL ? smpi_process_index() : -1;
-  TRACE_smpi_computing_out(rank);
-  int count=0;
-  for(i=0;i<comm_size;i++) count+=sendcounts[i];
-  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,count*smpi_datatype_size(MPI_CURRENT_TYPE));
+  int rank = smpi_process_index();
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_ALLTOALLV;
+  extra->recvcounts= xbt_malloc(comm_size*sizeof(int));
+  extra->sendcounts= xbt_malloc(comm_size*sizeof(int));
+  extra->num_processes = comm_size;
+
+  for(i=0; i< comm_size; i++){//copy data to avoid bad free
+    extra->send_size += sendcounts[i];
+    extra->sendcounts[i] = sendcounts[i];
+    extra->recv_size += recvcounts[i];
+    extra->recvcounts[i] = recvcounts[i];
+  }
+  extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE);
+  extra->datatype2 = encode_datatype(MPI_CURRENT_TYPE2);
+
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__,extra);
 #endif
     mpi_coll_alltoallv_fun(sendbuf, sendcounts, senddisps, MPI_CURRENT_TYPE,
                                recvbuf, recvcounts, recvdisps, MPI_CURRENT_TYPE,
                                MPI_COMM_WORLD);
 #ifdef HAVE_TRACING
   TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
-  TRACE_smpi_computing_in(rank);
 #endif
 
   log_timed_action (action, clock);
@@ -759,7 +921,18 @@ static void action_allToAllv(const char *const *action) {
 }
 
 void smpi_replay_init(int *argc, char***argv){
-  PMPI_Init(argc, argv);
+  smpi_process_init(argc, argv);
+  smpi_process_mark_as_initialized();
+#ifdef HAVE_TRACING
+  int rank = smpi_process_index();
+  TRACE_smpi_init(rank);
+  TRACE_smpi_computing_init(rank);
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_INIT;
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, extra);
+  TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
+#endif
+
   if (!smpi_process_index()){
     _xbt_replay_action_init();
     xbt_replay_action_register("init",       action_init);
@@ -780,6 +953,7 @@ void smpi_replay_init(int *argc, char***argv){
     xbt_replay_action_register("allToAll",   action_allToAll);
     xbt_replay_action_register("allToAllV",  action_allToAllv);
     xbt_replay_action_register("gather",  action_gather);
+    xbt_replay_action_register("gatherV",  action_gatherv);
     xbt_replay_action_register("allGatherV",  action_allgatherv);
     xbt_replay_action_register("reduceScatter",  action_reducescatter);
     xbt_replay_action_register("compute",    action_compute);
@@ -791,19 +965,44 @@ void smpi_replay_init(int *argc, char***argv){
 int smpi_replay_finalize(){
   double sim_time= 1.;
   /* One active process will stop. Decrease the counter*/
-  active_processes--;
   XBT_DEBUG("There are %lu elements in reqq[*]",
             xbt_dynar_length(reqq[smpi_comm_rank(MPI_COMM_WORLD)]));
-  xbt_dynar_free(&reqq[smpi_comm_rank(MPI_COMM_WORLD)]);
+  if (!xbt_dynar_is_empty(reqq[smpi_comm_rank(MPI_COMM_WORLD)])){
+    int count_requests=xbt_dynar_length(reqq[smpi_comm_rank(MPI_COMM_WORLD)]);
+    MPI_Request requests[count_requests];
+    MPI_Status status[count_requests];
+    unsigned int i;
+
+    xbt_dynar_foreach(reqq[smpi_comm_rank(MPI_COMM_WORLD)],i,requests[i]);
+    smpi_mpi_waitall(count_requests, requests, status);
+    active_processes--;
+  } else {
+    active_processes--;
+  }
+
+  xbt_dynar_free_container(&(reqq[smpi_comm_rank(MPI_COMM_WORLD)]));
+
   if(!active_processes){
     /* Last process alive speaking */
     /* end the simulated timer */
     sim_time = smpi_process_simulated_elapsed();
-    XBT_INFO("Simulation time %g", sim_time);
+    XBT_INFO("Simulation time %f", sim_time);
     _xbt_replay_action_exit();
     xbt_free(reqq);
     reqq = NULL;
   }
   smpi_mpi_barrier(MPI_COMM_WORLD);
-  return PMPI_Finalize();
+#ifdef HAVE_TRACING
+  int rank = smpi_process_index();
+  instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1);
+  extra->type = TRACING_FINALIZE;
+  TRACE_smpi_collective_in(rank, -1, __FUNCTION__, extra);
+#endif
+  smpi_process_finalize();
+#ifdef HAVE_TRACING
+  TRACE_smpi_collective_out(rank, -1, __FUNCTION__);
+  TRACE_smpi_finalize(smpi_process_index());
+#endif
+  smpi_process_destroy();
+  return MPI_SUCCESS;
 }
index 36ddd2b..5c465c7 100755 (executable)
@@ -1,42 +1,49 @@
-#! /bin/bash
+#! /bin/sh
 
 CC=@CMAKE_C_COMPILER@
 
 INCLUDEARGS="@includeflag@"
 CMAKE_LINKARGS="-L@libdir@"
 
+@SMPITOOLS_SH@
+
+list_set CFLAGS
+list_set LINKARGS
 if [ "@WIN32@" != "1" ]; then
-  CFLAGS="-Dmain=smpi_simulated_main_"
-  LINKARGS="-lsimgrid"
+    list_add CFLAGS "-Dmain=smpi_simulated_main_"
+    list_add LINKARGS "-lsimgrid"
 else
-  CFLAGS="-include @includedir@/smpi/smpi_main.h"
-  LINKARGS="@libdir@\libsimgrid.dll"
+    list_add CFLAGS "-include" "@includedir@/smpi/smpi_main.h"
+    list_add LINKARGS "@libdir@\libsimgrid.dll"
 fi
 
-CMDLINE=""
-while [ -n "$1" ]; do
-  ARG="$1"
-  shift
-  case "${ARG}" in
-   -c)
-      CMAKE_LINKARGS=""
-      LINKARGS=""
-      CMDLINE="${CMDLINE} -c "
-      ;;
-   *.c)
-      SRCFILE="$(readlink -f ${ARG} 2>/dev/null)"
-      if [ -z $SRCFILE ] ; then
-         SRCFILE="$ARG"
-      fi
-      CMDLINE="${CMDLINE} ${SRCFILE} "
-      ;;
-   *)
-      CMDLINE="${CMDLINE} ${ARG} "
+list_set CMDLINE "${CC}"
+list_add_not_empty CMDLINE "${CFLAGS}"
+while [ $# -gt 0 ]; do
+    ARG="$1"
+    shift
+    case "${ARG}" in
+        -c)
+            CMAKE_LINKARGS=""
+            LINKARGS=""
+            list_add CMDLINE "-c"
+            ;;
+        *.c)
+            SRCFILE="$(readlink -f ${ARG} 2>/dev/null)"
+            if [ -z "$SRCFILE" ] ; then
+                SRCFILE="$ARG"
+            fi
+            list_add CMDLINE "${SRCFILE}"
+            ;;
+        *)
+            list_add CMDLINE "${ARG}"
       ;;
   esac
 done
 
-CMDLINE="${CC} ${CFLAGS} ${CMDLINE} ${INCLUDEARGS} ${CMAKE_LINKARGS} ${LINKARGS}"
+list_add_not_empty CMDLINE ${INCLUDEARGS}
+list_add_not_empty CMDLINE ${CMAKE_LINKARGS}
+list_add_not_empty CMDLINE "${LINKARGS}"
 
-#echo "${CMDLINE}"
-${CMDLINE}
+eval $(list_get CMDLINE)
+"$@"
index 99bd888..25c88b3 100644 (file)
@@ -1,42 +1,51 @@
-#! /bin/bash
+#! /bin/sh
 
-CC=gfortran
+F90=@GFORTRAN_EXE@
 
 INCLUDEARGS="@includeflag@"
 CMAKE_LINKARGS="-L@libdir@"
 
-FFLAGS="-ff2c  -fno-second-underscore"
-LINKARGS="-lsimgrid -lm -lgfortran"
+@SMPITOOLS_SH@
+
+list_set FFLAGS "-ff2c" "-fno-second-underscore"
+list_set LINKARGS "-lsimgrid" "-lm" "-lgfortran"
+list_set TMPFILES
 main_name=main
 
-declare -a TMPFILES
-trap 'rm -f "${TMPFILES[@]}"' EXIT
-
-CMDLINE=""
-while [ -n "$1" ]; do
-  ARG="$1"
-  shift
-  case "${ARG}" in
-   -c)
-      CMAKE_LINKARGS=""
-      LINKARGS=""
-      CMDLINE="${CMDLINE} -c "
-      ;;
-   *.f90|*.F90)
-      TMPFILE=$(mktemp "${ARG}_XXXXXX.f90")
-      TMPFILES+=( "${TMPFILE}" )
+cleanup () {
+    eval $(list_get TMPFILES)
+    rm -f "$@"
+}
+trap 'cleanup' EXIT
+
+list_set CMDLINE "${F90}"
+list_add_not_empty CMDLINE "${FFLAGS}"
+while [ $# -gt 0 ]; do
+    ARG="$1"
+    shift
+    case "${ARG}" in
+        -c)
+            CMAKE_LINKARGS=""
+            LINKARGS=""
+            list_add CMDLINE "-c"
+            ;;
+        *.f90|*.F90)
+            TMPFILE=$(mymktemp "${ARG}" ".f90")
+            list_add TMPFILES "${TMPFILE}"
       #replace "program main_name by subroutine user\_main (and the end clause as well)"
-      sed 's/[[:space:]]*program[[:space:]]*\([a-zA-Z0-9\-\_]*\)/subroutine user\_main /gI;s/[[:space:]]*use[[:space:]]*mpi/\include \"mpif\.h\" /gI'  ${ARG} > ${TMPFILE}
-      SRCFILE="${TMPFILE}"
-      CMDLINE="${CMDLINE} ${SRCFILE} "
-      ;;
-   *)
-      CMDLINE="${CMDLINE} ${ARG} "
-      ;;
-  esac
+            sed 's/[[:space:]]*program[[:space:]]*\([a-zA-Z0-9\-\_]*\)/subroutine user\_main /gI;s/[[:space:]]*use[[:space:]]*mpi/\include \"mpif\.h\" /gI' "${ARG}" > "${TMPFILE}"
+            SRCFILE="${TMPFILE}"
+            list_add CMDLINE "${SRCFILE}"
+            ;;
+        *)
+            list_add CMDLINE "${ARG}"
+            ;;
+    esac
 done
 
-CMDLINE="${CC} ${FFLAGS} ${CMDLINE} ${INCLUDEARGS} ${CMAKE_LINKARGS} ${LINKARGS}"
+list_add_not_empty CMDLINE ${INCLUDEARGS}
+list_add_not_empty CMDLINE ${CMAKE_LINKARGS}
+list_add_not_empty CMDLINE "${LINKARGS}"
 
-#echo "${CMDLINE}"
-${CMDLINE}
+eval $(list_get CMDLINE)
+"$@"
index 301802c..d393bd0 100644 (file)
@@ -1,42 +1,64 @@
-#! /bin/bash
+#! /bin/sh
+
 prefix="@exec_prefix@"
+smpicc="$prefix/bin/smpicc"
+smpif2c="$prefix/bin/smpif2c"
+
+@SMPITOOLS_SH@
 
-ARGS="-DMAIN__=user_main -Diargc_=smpi_process_argc -Dgetarg_=smpi_process_getarg"
-LINKARGS="-lf2c"
-SRCFILES=""
-
-while [ -n "$1" ]; do
-  ARG="$1"
-  shift
-  case "${ARG}" in
-    *.f)
-      SRCFILE="$(readlink -f ${ARG} 2>/dev/null)"
-       if [ -z $SRCFILE ] ; then
-         SRCFILE="$ARG"
-       fi
-       SRCFILES="${SRCFILES} ${SRCFILE}"
-       ;;
-    *)
-      if [ "${ARG}" = "-c" ]; then
-          LINKARGS=""
-      fi
-      ARGS="${ARGS} ${ARG}"
-      ;;
-  esac
+list_set ARGS "-DMAIN__=user_main" "-Diargc_=smpi_process_argc" "-Dgetarg_=smpi_process_getarg"
+list_set LINKARGS "-L@F2C_LIBRARY_PATH@" "-lf2c" "-lm"
+list_set SRCFILES
+
+while [ $# -gt 0 ]; do
+    ARG="$1"
+    shift
+    case "${ARG}" in
+        *.f)
+            SRCFILE="$(readlink -f ${ARG} 2>/dev/null)"
+            if [ -z "$SRCFILE" ] ; then
+                SRCFILE="$ARG"
+            fi
+            list_add SRCFILES "${SRCFILE}"
+            ;;
+        *)
+            if [ "${ARG}" = "-c" ]; then
+                LINKARGS=""
+            fi
+            list_add ARGS "${ARG}"
+            ;;
+    esac
 done
-ARGS="${ARGS} ${LINKARGS}"
-
-if [ -n "${SRCFILES}" ]
-then
-   for SRCFILE in "${SRCFILES}"
-   do
-      TMPFILE=${SRCFILE}\_$RANDOM.f
-      cp ${SRCFILE} ${TMPFILE}
-      CFILE="${TMPFILE%.f}.c"
-      #echo "$prefix/bin/smpif2c ${TMPFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE} && rm ${TMPFILE}"
-      $prefix/bin/smpif2c ${TMPFILE} && $prefix/bin/smpicc ${ARGS} ${CFILE} && rm ${CFILE} && rm ${TMPFILE}
-   done
+list_add_not_empty ARGS "${LINKARGS}"
+
+build () {
+    local SRCFILE
+    SRCFILE="$1"
+    TMPFILE=$(mymktemp "${SRCFILE}" ".f")
+    CFILE="${TMPFILE%.f}.c"
+
+    eval $(list_get ARGS)
+
+    cp "${SRCFILE}" "${TMPFILE}" \
+        && "$smpif2c" "${TMPFILE}" \
+        && "$smpicc" "$@" "${CFILE}" \
+        && rm -f "${CFILE}" \
+        && rm -f "${TMPFILE}" \
+        || exit $?
+
+    # When the file is compiled with "-c" and no output file is specified with
+    # "-o", rename the output.  FIXME: do it properly.
+    if [ -f "${CFILE%.c}.o" ]; then
+        mv "${CFILE%.c}.o" "${SRCFILE%.f}.o"
+    fi
+}
+
+if [ -n "${SRCFILES}" ]; then
+    eval $(list_get SRCFILES)
+    for SRCFILE in "$@"; do
+        build "$SRCFILE"
+    done
 else
-   #echo "$prefix/bin/smpicc ${ARGS}"
-   $prefix/bin/smpicc ${ARGS}
+    eval $(list_get ARGS)
+    "$smpicc" "$@"
 fi
index 26f9b88..bc97526 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/bash
+#! /bin/sh
 
 @CMAKE_SMPI_COMMAND@
 
@@ -18,7 +18,7 @@ POWER="${DEFAULT_POWER}"
 SIMOPTS="--cfg=maxmin/precision:1e-9 --cfg=network/model:SMPI --cfg=network/TCP_gamma:4194304"
 
 #usage to print the way this script should be called
-function usage () {
+usage () {
 cat <<EOF
 Usage: $0 [OPTIONS] -platform <xmldesc> -hostfile <hostfile> program [program-options]
 Options:
@@ -27,7 +27,8 @@ Options:
   -map                       # display the machine on which each process rank is mapped
   -np <numprocs>             # use that amount of processes from the hostfile.
                              # By default, all processes of the hostfile are used.
-  -trace                     # activate tracing
+  -trace-ti                  # activate time independant tracing (for replay, default in smpi_simgrid.txt)
+  -trace                     # activate tracing (Paje, default in smpi_simgrid.trace)
   -trace-comment <comment>   # put a comment on the top of the trace file
   -trace-comment-file <file> # put file contents on the top of the trace file as comment
   -trace-grouped             # group MPI processes by location
@@ -51,6 +52,7 @@ fi
 
 EXTOPT=""
 WRAPPER=""
+HOSTFILE=""
 
 while true; do
   case "$1" in
@@ -98,6 +100,12 @@ while true; do
       shift 1
    ;;
 
+   "-trace-ti")
+      TRACE_ACTIVE="true"
+      TRACE_TI_ACTIVE="true"
+      shift 1
+   ;;
+
    "-trace-comment")
       TRACE_COMMENT="$2"
       shift 2
@@ -227,20 +235,26 @@ if [ -z "${PLATFORM}" ]; then
 <AS id="AS0" routing="Full">
 PLATFORMHEAD
 
-for (( i=${NUMPROCS}; $i ; i=$i-1 )) do
+i=${NUMPROCS}
+while [ $i -gt 0 ]; do
   echo "  <host id=\"host$i\" power=\"${POWER}\"/>" >> ${PLATFORMTMP}
   echo "  <link id=\"loop$i\" bandwidth=\"${LOOPBACK_BANDWIDTH}\" latency=\"${LOOPBACK_LATENCY}\"/>" >> ${PLATFORMTMP}
   echo "  <link id=\"link$i\" bandwidth=\"${NETWORK_BANDWIDTH}\" latency=\"${NETWORK_LATENCY}\"/>" >> ${PLATFORMTMP}
+  i=$((i - 1))
 done
 
-for (( i=${NUMPROCS}; $i ; i=$i-1 )) do
-  for (( j=${NUMPROCS}; $j ; j=$j-1 )) do
+i=${NUMPROCS}
+while [ $i -gt 0 ]; do
+  j=${NUMPROCS}
+  while [ $j -gt 0 ]; do
     if [ $i -eq $j ]; then
       echo "  <route src=\"host$i\" dst=\"host$j\"><link_ctn id=\"loop$i\"/></route>" >> ${PLATFORMTMP}
     else
       echo "  <route src=\"host$i\" dst=\"host$j\"><link_ctn id=\"link$i\"/><link_ctn id=\"link$j\"/></route>" >> ${PLATFORMTMP}
     fi
+    j=$((j - 1))
   done
+  i=$((i - 1))
 done
 
 cat >> ${PLATFORMTMP} <<PLATFORMFOOT
@@ -266,15 +280,15 @@ APPLICATIONHEAD
 
 ##---- cache hostnames of hostfile---------------
 if [ -n "${HOSTFILE}" ] && [ -f ${HOSTFILE} ]; then
-       hostnames=(`cat ${HOSTFILE} | tr \\\n " "`)
-      NUMHOSTS=`cat ${HOSTFILE} | wc -l`
+  hostnames=$(cat ${HOSTFILE} | tr '\n\r' '  ')
+  NUMHOSTS=$(cat ${HOSTFILE} | wc -l)
 fi
 
 if [ "${EXTOPT}" = "smpi_replay" ]; then
   APP_TRACES=$PROC_ARGS
   if [ -n "${APP_TRACES}" ] && [ -f "${APP_TRACES}" ]; then
-     hosttraces=(`cat ${APP_TRACES} | tr \\\n " "`)
-     NUMTRACES=`cat ${APP_TRACES} | wc -l`
+     hosttraces=$(cat ${APP_TRACES} | tr '\n\r' '  ' )
+     NUMTRACES=$(cat ${APP_TRACES} | wc -l)
   else
      printf "File not found: %s\n", "${APP_TRACES:-\${APP_TRACES\}}" >&2
      exit 1
@@ -305,25 +319,25 @@ fi
 for i in ${SEQ}
 do
   if [ -n "${HOSTFILE}" ]; then
-       j=$(( $i % ${NUMHOSTS} ))
+       j=$(( $i % ${NUMHOSTS} + 1 ))
   fi
   ##---- optional display of ranks to process mapping
   if [ -n "${MAPOPT}" ]; then
-       echo "[rank $i] -> ${hostnames[$j]}"
+       echo "[rank $i] -> $(echo $hostnames|cut -d' ' -f$j)"
   fi
 
-  if [ -z "${hostnames[$j]}" ]; then
-       host="host"$(($j+1))
+  if [ -z "$(echo $hostnames|cut -d' ' -f$j)" ]; then
+       host="host"$($j)
   else
-       host="${hostnames[$j]}"
+       host="$(echo $hostnames|cut -d' ' -f$j)"
   fi
   echo "  <process host=\"${host}\" function=\"$i\"> <!-- function name used only for logging -->" >> ${APPLICATIONTMP}
   echo "    <argument value=\"$i\"/> <!-- rank -->" >> ${APPLICATIONTMP}
   if [ "${EXTOPT}" = "smpi_replay" ]; then
     if  [ ${NUMTRACES} -gt 1 ]; then
-      echo "    <argument value=\"${hosttraces[$j]}\"/>" >> ${APPLICATIONTMP}
+      echo "    <argument value=\"$(echo $hosttraces|cut -d' ' -f$j)\"/>" >> ${APPLICATIONTMP}
     else
-      echo "    <argument value=\"${hosttraces[0]}\"/>" >> ${APPLICATIONTMP}
+      echo "    <argument value=\"$(echo $hosttraces|cut -d' ' -f1)\"/>" >> ${APPLICATIONTMP}
     fi
   else 
     for ARG in $PROC_ARGS; do
@@ -341,10 +355,17 @@ APPLICATIONFOOT
 ##---------------------- SMPI TRACING OPTIONS ---------------------------------
 if [ -n "${TRACE_ACTIVE}" ]; then
   #define trace filename
-  if [ -z "${TRACE_FILENAME}" ]; then
-    TRACE_FILENAME="smpi_simgrid.trace"
+  if [ -n "${TRACE_TI_ACTIVE}" ]; then
+    if [ -z "${TRACE_FILENAME}" ]; then
+      TRACE_FILENAME="smpi_simgrid.txt"
+    fi
+    TRACEOPTIONS="--cfg=tracing:yes --cfg=tracing/filename:${TRACE_FILENAME} --cfg=tracing/smpi:yes --cfg=tracing/smpi/format:TI --cfg=tracing/smpi/computing:yes"
+  else
+    if [ -z "${TRACE_FILENAME}" ]; then
+      TRACE_FILENAME="smpi_simgrid.trace"
+    fi
+    TRACEOPTIONS="--cfg=tracing:yes --cfg=tracing/filename:${TRACE_FILENAME} --cfg=tracing/smpi:yes"
   fi
-  TRACEOPTIONS="--cfg=tracing:1 --cfg=tracing/filename:${TRACE_FILENAME} --cfg=tracing/smpi:1"
 
   if [ -n "${TRACE_COMMENT}" ]; then
     TRACEOPTIONS="${TRACEOPTIONS} --cfg=tracing/comment:${TRACE_COMMENT}"
@@ -355,11 +376,11 @@ if [ -n "${TRACE_ACTIVE}" ]; then
   fi
 
   if [ -n "${TRACE_GROUPED}" ]; then
-    TRACEOPTIONS="${TRACEOPTIONS} --cfg=tracing/smpi/group:1"
+    TRACEOPTIONS="${TRACEOPTIONS} --cfg=tracing/smpi/group:yes"
   fi
 
   if [ -n "${TRACE_RESOURCE}" ]; then
-    TRACEOPTIONS="${TRACEOPTIONS} --cfg=tracing/categorized:1 --cfg=tracing/uncategorized:1"
+    TRACEOPTIONS="${TRACEOPTIONS} --cfg=tracing/categorized:yes --cfg=tracing/uncategorized:yes"
   fi
 
   if [ -n "${TRACE_VIVA}" ]; then
diff --git a/src/smpi/smpitools.sh b/src/smpi/smpitools.sh
new file mode 100644 (file)
index 0000000..17eb6f4
--- /dev/null
@@ -0,0 +1,67 @@
+SAVEIFS="$IFS"
+LISTSEP="$(printf '\b')"
+
+# Create a temporary file, with its name of the form $1_XXX$2, where XXX is
+# replaced by an unique string.
+# $1: prefix, $2: suffix
+mymktemp () {
+    tmp=$(mktemp --suffix="$2" "$1_XXXXXXXXXX" 2> /dev/null)
+    if [ -z "$tmp" ]; then
+        # mktemp failed (unsupported --suffix ?), try unsafe mode
+        tmp=$(mktemp -u "$1_XXXXXXXXXX" 2> /dev/null)
+        if [ -z "$tmp" ]; then
+            # mktemp failed again (doesn't exist ?), try very unsafe mode
+            if [ -z "${mymktemp_seq}" ]; then
+                mymktemp_seq=$(date +%d%H%M%S)
+            fi
+            tmp="$1_$$x${mymktemp_seq}"
+            mymktemp_seq=$((mymktemp_seq + 1))
+        fi
+        tmp="${tmp}$2"
+        # create temp file, and exit if it existed before
+        sh -C -c "true > \"${tmp}\"" || exit 1
+    fi
+    echo "${tmp}"
+}
+
+# Add a word to the end of a list (words separated by LISTSEP)
+# $1: list, $2...: words to add
+list_add () {
+    local list content newcontent
+    list="$1"
+    shift
+    if [ $# -gt 0 ]; then
+        eval content=\"\${$list}\"
+        IFS="$LISTSEP"
+        newcontent="$*"
+        IFS="$SAVEIFS"
+        if [ -z "$content" ]; then
+            content="$newcontent"
+        else
+            content="$content${LISTSEP}$newcontent"
+        fi
+        eval $list=\"\${content}\"
+    fi
+}
+
+# Like list_add, but only if first word to add ($2) is not empty
+list_add_not_empty () {
+    if [ -n "$2" ]; then
+        list_add "$@"
+    fi
+}
+
+# Set contents of a list (words separated by LISTSEP)
+# $1: list, $2...: words to set
+list_set () {
+    eval $1=""
+    list_add "$@"
+}
+
+# Get the content of a list: positional parameters ($1, $2, ...) are set to the
+# content of the list
+# $1: list
+# usage:  eval $(list_get list)
+list_get () {
+    printf 'IFS="$LISTSEP"; eval set -- \\$%s; IFS="$SAVEIFS"' "$1"
+}
index 00d24c4..5eee02a 100644 (file)
@@ -93,7 +93,7 @@ void lmm_system_free(lmm_system_t sys)
   free(sys);
 }
 
-XBT_INLINE void lmm_variable_disable(lmm_system_t sys, lmm_variable_t var)
+static XBT_INLINE void lmm_variable_disable(lmm_system_t sys, lmm_variable_t var)
 {
   int i;
   int n;
index 82c219a..c959b37 100644 (file)
@@ -81,7 +81,8 @@ static double constant_bandwidth_constraint(double rate, double bound,
 
 static int factor_cmp(const void *pa, const void *pb)
 {
-  return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor);
+  return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor) ? 1 : 
+         (((s_smpi_factor_t*)pa)->factor < ((s_smpi_factor_t*)pb)->factor) ? -1 : 0;
 }
 
 
index 8984495..0522c26 100644 (file)
@@ -226,6 +226,24 @@ static sg_storage_size_t storage_get_size(void *storage){
   return ((storage_t)storage_resource)->size;
 }
 
+static void storage_file_rename(void *storage, const char *src, const char *dest)
+{
+  void *storage_resource = surf_storage_resource_priv(storage);
+
+  sg_storage_size_t *psize, *new_psize;
+  psize = (sg_storage_size_t*) xbt_dict_get_or_null(((storage_t)storage_resource)->content,src);
+  new_psize = xbt_new(sg_storage_size_t, 1);
+  *new_psize = *psize;
+  if (psize){// src file exists
+    xbt_dict_remove(((storage_t)storage_resource)->content, src);
+    xbt_dict_set(((storage_t)storage_resource)->content, dest, new_psize,NULL);
+    XBT_DEBUG("Change file name from %s to %s, size '%" PRIu64 "'",src, dest, *psize);
+  }
+  else
+    XBT_DEBUG("File %s doesn't exist",src);
+}
+
+
 static void* storage_create_resource(const char* id, const char* model,
     const char* type_id, const char* content_name, const char* content_type, xbt_dict_t properties){
   storage_t storage = NULL;
@@ -539,6 +557,7 @@ static void surf_storage_model_init_internal(void)
   surf_storage_model->extension.storage.get_properties = storage_get_properties;
   surf_storage_model->extension.storage.get_content = storage_get_content;
   surf_storage_model->extension.storage.get_size = storage_get_size;
+  surf_storage_model->extension.storage.rename = storage_file_rename;
   if (!storage_maxmin_system) {
     storage_maxmin_system = lmm_system_new(storage_selective_update);
   }
index 1244418..d0b2766 100644 (file)
@@ -596,6 +596,21 @@ StorageActionPtr StorageLmm::write(surf_file_t fd, sg_storage_size_t size)
   return action;
 }
 
+void StorageLmm::rename(const char *src, const char *dest)
+{
+  sg_storage_size_t *psize, *new_psize;
+  psize = (sg_storage_size_t*) xbt_dict_get_or_null(p_content,src);
+  new_psize = xbt_new(sg_storage_size_t, 1);
+  *new_psize = *psize;
+  if (psize){// src file exists
+    xbt_dict_remove(p_content, src);
+    xbt_dict_set(p_content, dest, new_psize,NULL);
+    XBT_DEBUG("Change file name from %s to %s, size '%" PRIu64 "'",src, dest, *psize);
+  }
+  else
+    XBT_DEBUG("File %s doesn't exist",src);
+}
+
 xbt_dict_t StorageLmm::getContent()
 {
   /* For the moment this action has no cost, but in the future we could take in account access latency of the disk */
index cceebf5..bf16cef 100644 (file)
@@ -60,6 +60,8 @@ public:
   virtual StorageActionPtr ls(const char *path)=0;
   virtual StorageActionPtr read(surf_file_t fd, sg_storage_size_t size)=0;
   virtual StorageActionPtr write(surf_file_t fd, sg_storage_size_t size)=0;
+  virtual void rename(const char *src, const char *dest)=0;
+
   virtual xbt_dict_t getContent()=0;
   virtual sg_storage_size_t getSize()=0;
 
@@ -82,6 +84,7 @@ public:
   sg_storage_size_t getSize();
   StorageActionPtr read(surf_file_t fd, sg_storage_size_t size);//FIXME:why we have a useless param ptr ??
   StorageActionPtr write(surf_file_t fd, sg_storage_size_t size);//FIXME:why we have a useless param ptr ??
+  void rename(const char *src, const char *dest);
 
   lmm_constraint_t p_constraintWrite;    /* Constraint for maximum write bandwidth*/
   lmm_constraint_t p_constraintRead;     /* Constraint for maximum write bandwidth*/
index e6947fe..f208537 100644 (file)
@@ -237,7 +237,9 @@ int find_model_description(s_surf_model_description_t * table,
     if (!strcmp(name, table[i].name)) {
       return i;
     }
-  name_list = strdup(table[0].name);
+  if (!table[0].name)
+    xbt_die("No model is valid! This is a bug.");
+  name_list = xbt_strdup(table[0].name);
   for (i = 1; table[i].name; i++) {
     name_list =
         xbt_realloc(name_list,
index 3085b04..b23ea89 100644 (file)
@@ -437,6 +437,10 @@ sg_storage_size_t surf_storage_get_size(surf_resource_t resource){
   return dynamic_cast<StoragePtr>(static_cast<ResourcePtr>(surf_storage_resource_priv(resource)))->getSize();
 }
 
+void surf_storage_rename(surf_resource_t resource, const char* src, const char* dest){
+  dynamic_cast<StoragePtr>(static_cast<ResourcePtr>(surf_storage_resource_priv(resource)))->rename(src, dest);
+}
+
 surf_action_t surf_cpu_execute(surf_resource_t cpu, double size){
   return get_casted_cpu(cpu)->execute(size);
 }
index 452e269..873cae5 100644 (file)
 #include "storage_private.h"
 #include "surf/surf_resource.h"
 #include "simgrid/sg_config.h"
+<<<<<<< HEAD
+#include <inttypes.h>
+
+typedef struct workstation_CLM03 {
+  s_surf_resource_t generic_resource;   /* Must remain first to add this to a trace */
+  void *net_elm;
+  xbt_dynar_t storage;
+} s_workstation_CLM03_t, *workstation_CLM03_t;
+||||||| merged common ancestors
+
+typedef struct workstation_CLM03 {
+  s_surf_resource_t generic_resource;   /* Must remain first to add this to a trace */
+  void *net_elm;
+  xbt_dynar_t storage;
+} s_workstation_CLM03_t, *workstation_CLM03_t;
+=======
 #include "workstation_private.h"
 #include "vm_workstation_private.h"
 #include "cpu_cas01_private.h"
 #include "maxmin_private.h"
+>>>>>>> surf++
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_workstation, surf,
                                 "Logging specific to the SURF workstation module");
index 1fbf4e5..1df0120 100644 (file)
@@ -7,6 +7,8 @@
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include "xbt/automaton.h"
+#include <errno.h>
+#include <string.h>             /* strerror */
 
 static xbt_automaton_t parsed_automaton;
 char* state_id_src;
@@ -92,8 +94,11 @@ static xbt_automaton_exp_label_t new_label(int type, ...){
 
 #include "parserPromela.tab.cacc"
 
-void xbt_automaton_load(xbt_automaton_t a, const char *file){
+void xbt_automaton_load(xbt_automaton_t a, const char *file)
+{
   parsed_automaton = a;
   yyin = fopen(file, "r");
+  if (yyin == NULL)
+    xbt_die("Failed to open automaton file `%s': %s", file, strerror(errno));
   yyparse();
 }
index be839e3..3984e43 100644 (file)
@@ -171,8 +171,9 @@ XBT_INLINE void xbt_dict_set_ext(xbt_dict_t dict,
   xbt_dictelm_t current, previous = NULL;
   xbt_assert(dict);
 
-  XBT_DEBUG("ADD %.*s hash = %u, size = %d, & = %u", key_len, key, hash_code,
-         dict->table_size, hash_code & dict->table_size);
+  XBT_CDEBUG(xbt_dict,
+             "ADD %.*s hash = %u, size = %d, & = %u", key_len, key, hash_code,
+             dict->table_size, hash_code & dict->table_size);
   current = dict->table[hash_code & dict->table_size];
   while (current != NULL &&
          (hash_code != current->hash_code || key_len != current->key_len
@@ -194,9 +195,9 @@ XBT_INLINE void xbt_dict_set_ext(xbt_dict_t dict,
       previous->next = current;
     }
   } else {
-    XBT_DEBUG("Replace %.*s by %.*s under key %.*s",
-           key_len, (char *) current->content,
-           key_len, (char *) data, key_len, (char *) key);
+    XBT_CDEBUG(xbt_dict, "Replace %.*s by %.*s under key %.*s",
+               key_len, (char *) current->content,
+               key_len, (char *) data, key_len, (char *) key);
     /* there is already an element with the same key: overwrite it */
     xbt_dictelm_set_data(dict, current, data, free_ctn);
   }
index 790536c..c39e65d 100644 (file)
@@ -81,9 +81,9 @@ XBT_INLINE void xbt_dict_cursor_rewind(xbt_dict_cursor_t cursor)
 XBT_INLINE void xbt_dict_cursor_first(const xbt_dict_t dict,
                                       xbt_dict_cursor_t * cursor)
 {
-  XBT_DEBUG("xbt_dict_cursor_first");
+  XBT_CDEBUG(xbt_dict_cursor, "xbt_dict_cursor_first");
   if (!*cursor) {
-    XBT_DEBUG("Create the cursor on first use");
+    XBT_CDEBUG(xbt_dict_cursor, "Create the cursor on first use");
     *cursor = xbt_dict_cursor_new(dict);
   } else {
     xbt_dict_cursor_rewind(*cursor);
@@ -102,7 +102,7 @@ XBT_INLINE void xbt_dict_cursor_step(xbt_dict_cursor_t cursor)
   xbt_dictelm_t current;
   int line;
 
-  XBT_DEBUG("xbt_dict_cursor_step");
+  XBT_CDEBUG(xbt_dict_cursor, "xbt_dict_cursor_step");
   xbt_assert(cursor);
 
   current = cursor->current;
@@ -111,17 +111,17 @@ XBT_INLINE void xbt_dict_cursor_step(xbt_dict_cursor_t cursor)
   if (cursor->dict != NULL) {
 
     if (current != NULL) {
-      XBT_DEBUG("current is not null, take the next element");
+      XBT_CDEBUG(xbt_dict_cursor, "current is not null, take the next element");
       current = current->next;
-      XBT_DEBUG("next element: %p", current);
+      XBT_CDEBUG(xbt_dict_cursor, "next element: %p", current);
     }
 
     while (current == NULL && ++line <= cursor->dict->table_size) {
-      XBT_DEBUG("current is NULL, take the next line");
+      XBT_CDEBUG(xbt_dict_cursor, "current is NULL, take the next line");
       current = cursor->dict->table[line];
-      XBT_DEBUG("element in the next line: %p", current);
+      XBT_CDEBUG(xbt_dict_cursor, "element in the next line: %p", current);
     }
-    XBT_DEBUG("search finished, current = %p, line = %d", current, line);
+    XBT_CDEBUG(xbt_dict_cursor, "search finished, current = %p, line = %d", current, line);
 
     cursor->current = current;
     cursor->line = line;
@@ -139,7 +139,7 @@ XBT_INLINE int xbt_dict_cursor_get_or_free(xbt_dict_cursor_t * cursor,
 
   xbt_dictelm_t current;
 
-  XBT_DEBUG("xbt_dict_get_or_free");
+  XBT_CDEBUG(xbt_dict_cursor, "xbt_dict_get_or_free");
 
 
   if (!cursor || !(*cursor))
index 7517190..247a834 100644 (file)
@@ -149,7 +149,7 @@ XBT_INLINE void xbt_dynar_reset(xbt_dynar_t const dynar)
 {
   _sanity_check_dynar(dynar);
 
-  XBT_DEBUG("Reset the dynar %p", (void *) dynar);
+  XBT_CDEBUG(xbt_dyn, "Reset the dynar %p", (void *) dynar);
   if (dynar->free_f) {
     xbt_dynar_map(dynar, dynar->free_f);
   }
@@ -557,7 +557,7 @@ XBT_INLINE void xbt_dynar_push(xbt_dynar_t const dynar,
 XBT_INLINE void *xbt_dynar_pop_ptr(xbt_dynar_t const dynar)
 {
   _check_populated_dynar(dynar);
-  XBT_DEBUG("Pop %p", (void *) dynar);
+  XBT_CDEBUG(xbt_dyn, "Pop %p", (void *) dynar);
   dynar->used--;
   return _xbt_dynar_elm(dynar, dynar->used);
 }
@@ -567,7 +567,7 @@ XBT_INLINE void xbt_dynar_pop(xbt_dynar_t const dynar, void *const dst)
 {
 
   /* sanity checks done by remove_at */
-  XBT_DEBUG("Pop %p", (void *) dynar);
+  XBT_CDEBUG(xbt_dyn, "Pop %p", (void *) dynar);
   xbt_dynar_remove_at(dynar, dynar->used - 1, dst);
 }
 
@@ -638,11 +638,7 @@ XBT_INLINE void xbt_dynar_cursor_rm(xbt_dynar_t dynar,
 XBT_INLINE void xbt_dynar_sort(xbt_dynar_t dynar,
                                int_f_cpvoid_cpvoid_t compar_fn)
 {
-#ifdef HAVE_MERGESORT
-  mergesort(dynar->data, dynar->used, dynar->elmsize, compar_fn);
-#else
   qsort(dynar->data, dynar->used, dynar->elmsize, compar_fn);
-#endif
 }
 
 /** @brief Sorts a dynar according to their color assuming elements can have only three colors.
@@ -707,7 +703,7 @@ XBT_INLINE void * xbt_dynar_to_array (xbt_dynar_t dynar)
 /*
  * Return 0 if d1 and d2 are equal and 1 if not equal
  */
-XBT_INLINE int xbt_dynar_compare(xbt_dynar_t d1, xbt_dynar_t d2,
+int xbt_dynar_compare(xbt_dynar_t d1, xbt_dynar_t d2,
           int(*compar)(const void *, const void *))
 {
   int i ;
index e28cc7e..adaa88d 100644 (file)
@@ -429,7 +429,7 @@ XBT_INLINE xbt_fifo_item_t xbt_fifo_new_item(void)
  */
 XBT_INLINE xbt_fifo_item_t xbt_fifo_newitem(void)
 {
-  XBT_WARN("This function is deprecated. Use xbt_fifo_new_item.");
+  XBT_CWARN(xbt_fifo, "This function is deprecated. Use xbt_fifo_new_item.");
   return xbt_fifo_new_item();
 }
 
@@ -469,7 +469,7 @@ XBT_INLINE void xbt_fifo_free_item(xbt_fifo_item_t b)
  */
 XBT_INLINE void xbt_fifo_freeitem(xbt_fifo_item_t b)
 {
-  XBT_WARN("This function is deprecated. Use xbt_fifo_free_item.");
+  XBT_CWARN(xbt_fifo, "This function is deprecated. Use xbt_fifo_free_item.");
   xbt_fifo_free_item(b);
   return;
 }
@@ -509,7 +509,7 @@ XBT_INLINE xbt_fifo_item_t xbt_fifo_get_last_item(xbt_fifo_t l)
  */
 XBT_INLINE xbt_fifo_item_t xbt_fifo_getFirstItem(xbt_fifo_t l)
 {
-  XBT_WARN("This function is deprecated. Use xbt_fifo_get_first_item.");
+  XBT_CWARN(xbt_fifo, "This function is deprecated. Use xbt_fifo_get_first_item.");
   return xbt_fifo_get_first_item(l);
 }
 
@@ -530,7 +530,7 @@ XBT_INLINE xbt_fifo_item_t xbt_fifo_get_next_item(xbt_fifo_item_t i)
  */
 xbt_fifo_item_t xbt_fifo_getNextItem(xbt_fifo_item_t i)
 {
-  XBT_WARN("This function is deprecated. Use xbt_fifo_get_next_item.");
+  XBT_CWARN(xbt_fifo, "This function is deprecated. Use xbt_fifo_get_next_item.");
   return xbt_fifo_get_next_item(i);
 }
 
index fd81fda..b692dba 100644 (file)
@@ -607,6 +607,8 @@ static void xbt_log_connect_categories(void)
   XBT_LOG_CONNECT(instr_routing);
   XBT_LOG_CONNECT(instr_sd);
   XBT_LOG_CONNECT(instr_surf);
+  XBT_LOG_CONNECT(instr_trace);
+  XBT_LOG_CONNECT(instr_TI_trace);
 #endif
 
   /* jedule */
index b202c9b..2a1a586 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2012. The SimGrid Team.
+/* Copyright (c) 2010-2013. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -55,7 +55,7 @@ static void mm_gnuld_legacy_init(void) { /* This function is called from mmalloc
  * To that extend, we have a little area here living in .BSS that we return if asked for memory before the malloc is resolved.
  */
 int allocated_junk=0; /* keep track of whether our little area was already given to someone */
-char junkarea[512];
+char junkarea[4096];
 
 /* This version use mmalloc if there is a current heap, or the legacy implem if not */
 void *malloc(size_t n) {
@@ -83,10 +83,10 @@ void *malloc(size_t n) {
             "Panic: real malloc symbol not resolved yet, and I already gave my little private memory chunk away. "
             "Damn LD, we must extend our code to have several such areas.\n");
         exit(1);
-      } else if (n>512) {
+      } else if (n > sizeof junkarea) {
         fprintf(stderr,
-            "Panic: real malloc symbol not resolved yet, and I need %zu bytes while my little private memory chunk is only 512 bytes wide. "
-            "Damn LD, we must fix our code to extend this area.\n",n);
+            "Panic: real malloc symbol not resolved yet, and I need %zu bytes while my little private memory chunk is only %zu bytes wide. "
+            "Damn LD, we must fix our code to extend this area.\n", n, sizeof junkarea);
         exit(1);
       } else {
         allocated_junk = 1;
index 93fee90..c6b858e 100644 (file)
@@ -23,6 +23,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_sync_os, xbt,
 /* ********************************* PTHREAD IMPLEMENTATION ************************************ */
 #ifdef HAVE_PTHREAD_H
 
+#include <limits.h>
 #include <semaphore.h>
 
 #ifdef HAVE_MUTEX_TIMEDLOCK
@@ -194,18 +195,35 @@ xbt_os_thread_t xbt_os_thread_create(const char *name,
 
 void xbt_os_thread_setstacksize(int stack_size)
 {
-  size_t def=0;
-  if(stack_size<0)xbt_die("stack size is negative, maybe it exceeds MAX_INT?\n");
-  pthread_attr_init(&attr);
-  pthread_attr_getstacksize (&attr, &def);
-  int res = pthread_attr_setstacksize (&attr, stack_size);
-  if ( res!=0 ) {
-    if(res==EINVAL)XBT_WARN("Thread stack size is either < PTHREAD_STACK_MIN, > the max limit of the system, or perhaps not a multiple of PTHREAD_STACK_MIN - The parameter was ignored");
-    else XBT_WARN("unknown error in pthread stacksize setting");
+  size_t sz;
+  int res;
+
+  if (stack_size < 0)
+    xbt_die("stack size %d is negative, maybe it exceeds MAX_INT?", stack_size);
 
-    pthread_attr_setstacksize (&attr, def);
+  sz = stack_size;
+  pthread_attr_init(&attr);
+  res = pthread_attr_setstacksize(&attr, sz);
+
+#ifdef PTHREAD_STACK_MIN
+  if (res == EINVAL) {
+    /* Invalid size, try again with a multiple of PTHREAD_STACK_MIN. */
+    size_t rem = sz % PTHREAD_STACK_MIN;
+    if (rem != 0 || sz == 0) {
+      size_t sz2 = sz - rem + PTHREAD_STACK_MIN;
+      XBT_DEBUG("pthread_attr_setstacksize failed for %#zx, try again with %#zx",
+                sz, sz2);
+      sz = sz2;
+      res = pthread_attr_setstacksize(&attr, sz);
+    }
   }
-  thread_attr_inited=1;
+#endif
+
+  if (res == EINVAL)
+    XBT_WARN("invalid stack size (maybe too big): %#zx", sz);
+  else if (res != 0)
+    XBT_WARN("unknown error %d in pthread stacksize setting: %#zx", res, sz);
+  thread_attr_inited = 1;
 }
 
 const char *xbt_os_thread_name(xbt_os_thread_t t)
index f378ca1..6b06a6b 100644 (file)
@@ -19,7 +19,7 @@
 
 //Freebsd doesn't provide this clock_gettime flag yet, because it was added too recently (after 1993)
 #ifdef __FreeBSD__
-#define CLOCK_PROCESS_CPUTTIME_ID CLOCK_PROF
+#define CLOCK_PROCESS_CPUTIME_ID CLOCK_PROF
 #endif
 
 double xbt_os_time(void)
index f539ed1..c2c5bd2 100644 (file)
@@ -10,6 +10,8 @@
 #include "xbt/log.h"
 #include "xbt/str.h"
 #include "xbt/replay.h"
+#include <ctype.h>
+#include <wchar.h>
 
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(replay,xbt,"Replay trace reader");
 
@@ -31,6 +33,16 @@ static size_t action_len = 0;
 
 static char **action_get_action(char *name);
 
+static char *str_tolower (const char *str)
+{
+  char *ret = xbt_strdup (str);
+  int i, n = strlen (ret);
+  for (i = 0; i < n; i++)
+    ret[i] = tolower (str[i]);
+  return ret;
+}
+
+
 xbt_replay_reader_t xbt_replay_reader_new(const char *filename)
 {
   xbt_replay_reader_t res = xbt_new0(s_xbt_replay_reader_t,1);
@@ -96,7 +108,9 @@ void xbt_replay_reader_free(xbt_replay_reader_t *reader)
  */
 void xbt_replay_action_register(const char *action_name, action_fun function)
 {
-  xbt_dict_set(action_funs, action_name, function, NULL);
+  char* lowername = str_tolower (action_name);
+  xbt_dict_set(action_funs, lowername, function, NULL);
+  xbt_free(lowername);
 }
 
 /** \ingroup XBT_replay
@@ -106,7 +120,9 @@ void xbt_replay_action_register(const char *action_name, action_fun function)
  */
 void xbt_replay_action_unregister(const char *action_name)
 {
-  xbt_dict_remove(action_funs, action_name);
+  char* lowername = str_tolower (action_name);
+  xbt_dict_remove(action_funs, lowername);
+  xbt_free(lowername);
 }
 
 void _xbt_replay_action_init(void)
@@ -135,8 +151,10 @@ int xbt_replay_action_runner(int argc, char *argv[])
   if (action_fp) {              // A unique trace file
     char **evt;
     while ((evt = action_get_action(argv[0]))) {
+      char* lowername = str_tolower (evt[1]);
       action_fun function =
-        (action_fun)xbt_dict_get(action_funs, evt[1]);
+        (action_fun)xbt_dict_get(action_funs, lowername);
+      xbt_free(lowername);
       function((const char **)evt);
       for (i=0;evt[i]!= NULL;i++)
         free(evt[i]);
@@ -152,7 +170,9 @@ int xbt_replay_action_runner(int argc, char *argv[])
     xbt_replay_reader_t reader = xbt_replay_reader_new(argv[1]);
     while ((evt=xbt_replay_reader_get(reader))) {
       if (!strcmp(argv[0],evt[0])) {
-        action_fun function = (action_fun)xbt_dict_get(action_funs, evt[1]);
+        char* lowername = str_tolower (evt[1]);
+        action_fun function = (action_fun)xbt_dict_get(action_funs, lowername);
+        xbt_free(lowername);
         function(evt);
       } else {
         XBT_WARN("%s: Ignore trace element not for me",
@@ -193,7 +213,7 @@ static char **action_get_action(char *name)
 
       // if it's for me, I'm done
       evtname = xbt_dynar_get_as(evt, 0, char *);
-      if (!strcmp(name, evtname)) {
+      if (!strcasecmp(name, evtname)) {
         return xbt_dynar_to_array(evt);
       } else {
         // Else, I have to store it for the relevant colleague
index 8f2c3fc..55b0bcc 100644 (file)
@@ -2,18 +2,18 @@ cmake_minimum_required(VERSION 2.6)
 
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
 
-add_executable(storage storage.c)
+add_executable(storage_basic storage_basic.c)
 
 ### Add definitions for compile
 if(NOT WIN32)
-  target_link_libraries(storage simgrid m pthread )
+  target_link_libraries(storage_basic simgrid m pthread )
 else()
-  target_link_libraries(storage simgrid)
+  target_link_libraries(storage_basic simgrid)
 endif()
 
 set(tesh_files
   ${tesh_files}
-  ${CMAKE_CURRENT_SOURCE_DIR}/storage.tesh
+  ${CMAKE_CURRENT_SOURCE_DIR}/storage_basic.tesh
   PARENT_SCOPE
   )
 set(xml_files
@@ -24,7 +24,7 @@ set(xml_files
   )
 set(teshsuite_src
   ${teshsuite_src}
-  ${CMAKE_CURRENT_SOURCE_DIR}/storage.c
+  ${CMAKE_CURRENT_SOURCE_DIR}/storage_basic.c
   PARENT_SCOPE
   )
 set(bin_files
similarity index 95%
rename from teshsuite/msg/storage/storage.tesh
rename to teshsuite/msg/storage/storage_basic.tesh
index 11c12a9..c73c642 100644 (file)
@@ -1,4 +1,4 @@
-$ msg/storage/storage --cfg=path:${srcdir:=.} ${srcdir:=.}/msg/storage/platform.xml ${srcdir:=.}/msg/storage/deployment.xml 0 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
+$ msg/storage/storage_basic --cfg=path:${srcdir:=.} ${srcdir:=.}/msg/storage/platform.xml ${srcdir:=.}/msg/storage/deployment.xml 0 "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n"
 > [  0.000000] (1:server@server) *** Storage info of: server ***
 > [  0.000000] (1:server@server) *** Dump a storage element ***
 > [  0.000000] (1:server@server) Print the content of the storage element: sdisk1
index a43a67d..e24465c 100644 (file)
@@ -101,6 +101,7 @@ set(tesh_files
   ${CMAKE_CURRENT_SOURCE_DIR}/reduce_scatter_coll.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/struct.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/vector.tesh
+  ${CMAKE_CURRENT_SOURCE_DIR}/TI_output.tesh
   PARENT_SCOPE
   )
 set(xml_files
diff --git a/teshsuite/smpi/TI_output.tesh b/teshsuite/smpi/TI_output.tesh
new file mode 100644 (file)
index 0000000..081f8fe
--- /dev/null
@@ -0,0 +1,180 @@
+$ rm -rf ./out_ti.txt_files
+$ rm -rf ./out_in_ti.txt_files
+
+p Test output of time independent tracing
+p generate a trace with pingpong, and replay itself, then check that output trace of the second run is the same as in the first (once sorted) 
+! setenv LD_LIBRARY_PATH=../../lib
+! output sort
+$ ../../smpi_script/bin/smpirun -trace-ti --cfg=tracing/filename:out_in_ti.txt --cfg=smpi/cpu_threshold:-1 -map -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../../examples/msg/small_platform.xml -np 4 ./pingpong -q
+>     *** Ping-pong test (MPI_Send/MPI_Recv) ***
+> == pivot=0 : pingpong [0] <--> [1]
+> == pivot=1 : pingpong [1] <--> [2]
+> == pivot=2 : pingpong [2] <--> [3]
+> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_simgrid.txt'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/format' to 'TI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/computing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'out_in_ti.txt'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
+> [0] About to send 1st message '99' to process [1] 
+> [0] Received reply message '100' from process [1] 
+> [1] About to send 1st message '100' to process [2] 
+> [1] About to send back message '100' to process [0] 
+> [1] Received 1st message '99' from process [0] 
+> [1] Received reply message '101' from process [2] 
+> [1] increment message's value to  '100'
+> [2] About to send 1st message '101' to process [3] 
+> [2] About to send back message '101' to process [1] 
+> [2] Received 1st message '100' from process [1] 
+> [2] Received reply message '102' from process [3] 
+> [2] increment message's value to  '101'
+> [3] About to send back message '102' to process [2] 
+> [3] Received 1st message '101' from process [2] 
+> [3] increment message's value to  '102'
+> [rank 0] -> Tremblay
+> [rank 1] -> Jupiter
+> [rank 2] -> Fafard
+> [rank 3] -> Ginette
+
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.:critical -trace-ti --cfg=tracing/filename:out_ti.txt --cfg=smpi/cpu_threshold:-1  -map -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../../examples/msg/small_platform.xml -np 4 ../../examples/smpi/smpi_replay ./out_in_ti.txt
+> [rank 0] -> Tremblay
+> [rank 1] -> Jupiter
+> [rank 2] -> Fafard
+> [rank 3] -> Ginette
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_simgrid.txt'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/format' to 'TI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/computing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'out_ti.txt'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/cpu_threshold' to '-1'
+> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
+> [Jupiter:1:(0) 0.016798] [smpi_replay/INFO] Simulation time 0.016798
+
+! output sort
+$ find ./out_ti.txt_files -type f -exec cat {} \;
+> 0 init
+> 0 send 1 1 1
+> 0 recv 1 1 1
+> 0 finalize
+> 1 init
+> 1 recv 0 1 1
+> 1 send 0 1 1
+> 1 send 2 1 1
+> 1 recv 2 1 1
+> 1 finalize
+> 2 init
+> 2 recv 1 1 1
+> 2 send 1 1 1
+> 2 send 3 1 1
+> 2 recv 3 1 1
+> 2 finalize
+> 3 init
+> 3 recv 2 1 1
+> 3 send 2 1 1
+> 3 finalize
+
+! output sort
+$ find ./out_in_ti.txt_files -type f -exec cat {} \;
+> 0 init
+> 0 send 1 1 1
+> 0 recv 1 1 1
+> 0 finalize
+> 1 init
+> 1 recv 0 1 1
+> 1 send 0 1 1
+> 1 send 2 1 1
+> 1 recv 2 1 1
+> 1 finalize
+> 2 init
+> 2 recv 1 1 1
+> 2 send 1 1 1
+> 2 send 3 1 1
+> 2 recv 3 1 1
+> 2 finalize
+> 3 init
+> 3 recv 2 1 1
+> 3 send 2 1 1
+> 3 finalize
+
+$ rm -rf ./out_ti.txt_files
+$ rm -rf ./out_in_ti.txt_files
+$ rm out_ti.txt
+$ rm out_in_ti.txt
+
+
+
+p Same test, but only using one output file for all processes
+p generate a trace with pingpong, and replay itself, then check that output trace of the second run is the same as in the first (once sorted) 
+! output sort
+$ ../../smpi_script/bin/smpirun -trace-ti --cfg=tracing/filename:out_in_ti.txt --cfg=tracing/smpi/format/ti_one_file:yes -map -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../../examples/msg/small_platform.xml -np 4 ./pingpong -q
+>     *** Ping-pong test (MPI_Send/MPI_Recv) ***
+> == pivot=0 : pingpong [0] <--> [1]
+> == pivot=1 : pingpong [1] <--> [2]
+> == pivot=2 : pingpong [2] <--> [3]
+> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_simgrid.txt'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/format' to 'TI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/computing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'out_in_ti.txt'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/format/ti_one_file' to 'yes'
+> [0] About to send 1st message '99' to process [1] 
+> [0] Received reply message '100' from process [1] 
+> [1] About to send 1st message '100' to process [2] 
+> [1] About to send back message '100' to process [0] 
+> [1] Received 1st message '99' from process [0] 
+> [1] Received reply message '101' from process [2] 
+> [1] increment message's value to  '100'
+> [2] About to send 1st message '101' to process [3] 
+> [2] About to send back message '101' to process [1] 
+> [2] Received 1st message '100' from process [1] 
+> [2] Received reply message '102' from process [3] 
+> [2] increment message's value to  '101'
+> [3] About to send back message '102' to process [2] 
+> [3] Received 1st message '101' from process [2] 
+> [3] increment message's value to  '102'
+> [rank 0] -> Tremblay
+> [rank 1] -> Jupiter
+> [rank 2] -> Fafard
+> [rank 3] -> Ginette
+
+$ ../../smpi_script/bin/smpirun -ext smpi_replay --log=replay.:critical -trace-ti --cfg=tracing/filename:out_ti.txt --cfg=tracing/smpi/format/ti_one_file:yes   -map -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../../examples/msg/small_platform.xml -np 4 ../../examples/smpi/smpi_replay ./out_in_ti.txt
+> [rank 0] -> Tremblay
+> [rank 1] -> Jupiter
+> [rank 2] -> Fafard
+> [rank 3] -> Ginette
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'smpi_simgrid.txt'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/format' to 'TI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/computing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/precision' to '1e-9'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'SMPI'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/TCP_gamma' to '4194304'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/filename' to 'out_ti.txt'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/smpi/format/ti_one_file' to 'yes'
+> [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
+> [Jupiter:1:(0) 0.016798] [smpi_replay/INFO] Simulation time 0.016798
+
+
+
+$ rm -rf ./out_ti.txt_files
+$ rm -rf ./out_in_ti.txt_files
+$ rm out_ti.txt
+$ rm out_in_ti.txt
+
+
+
index 90cc4aa..c3af311 100644 (file)
@@ -32,6 +32,7 @@ int main(int argc, char *argv[])
     perror("can't allocate send buffer");
     fflush(stderr);
     MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE);
+    exit(EXIT_FAILURE);
   }
   rb = (int *) malloc(size * sizeof(int));
   if (!rb) {
@@ -39,6 +40,7 @@ int main(int argc, char *argv[])
     fflush(stderr);
     free(sb);
     MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE);
+    exit(EXIT_FAILURE);
   }
   for (i = 0; i < size; ++i) {
     sb[i] = rank + 1;
index 39e3611..907e4a5 100644 (file)
@@ -63,6 +63,7 @@ void abort_msg( const char *str, int code )
 {
     fprintf( stderr, "%s, err = %d\n", str, code );
     MPI_Abort( MPI_COMM_WORLD, code );
+    exit(code);
 }
 
 int test_communicators( void )
index df42e48..9384dd4 100644 (file)
@@ -63,6 +63,7 @@ void abort_msg( const char *str, int code )
 {
     fprintf( stderr, "%s, err = %d\n", str, code );
     MPI_Abort( MPI_COMM_WORLD, code );
+    exit(code);
 }
 
 int test_communicators( void )
index d3d9a39..19a27cb 100644 (file)
@@ -65,6 +65,7 @@ void abort_msg( const char *str, int code )
 {
     fprintf( stderr, "%s, err = %d\n", str, code );
     MPI_Abort( MPI_COMM_WORLD, code );
+    exit(code);
 }
 
 int test_attrs( void )
index c71e96c..9b3b04c 100644 (file)
@@ -57,6 +57,7 @@ int delete_fn( MPI_Comm comm, int keyval, void *attribute_val,
     if ((MPI_Aint)attribute_val != (MPI_Aint)world_rank) {
        printf( "incorrect attribute value %d\n", *(int*)attribute_val );
        MPI_Abort(MPI_COMM_WORLD, 1005 );
+        exit(1005);
     }
     return MPI_SUCCESS;
 }
@@ -120,6 +121,7 @@ int test_communicators( void )
            printf( "dup_comm key_1 not found on %d\n", world_rank );
            fflush( stdout );
            MPI_Abort(MPI_COMM_WORLD, 3004 );
+            exit(3004);
        }
        
        if (value != world_rank) {
@@ -127,6 +129,7 @@ int test_communicators( void )
            printf( "dup_comm key_1 value incorrect: %ld\n", (long)value );
            fflush( stdout );
            MPI_Abort(MPI_COMM_WORLD, 3005 );
+            exit(3005);
        }
 
        MPI_Attr_get(dup_comm, key_3, (void **)&vvalue, &flag );
@@ -136,6 +139,7 @@ int test_communicators( void )
            printf( "dup_comm key_3 found!\n" );
            fflush( stdout );
            MPI_Abort(MPI_COMM_WORLD, 3008 );
+            exit(3008);
        }
         MTestPrintfMsg(1, "Keyval_free key=%#x\n", key_1);
        MPI_Keyval_free(&key_1 );
index 4a94201..c52491d 100644 (file)
@@ -55,6 +55,7 @@ int delete_fn( MPI_Comm comm, int keyval, void *attribute_val,
     if ((MPI_Aint)attribute_val != (MPI_Aint)world_rank) {
        printf( "incorrect attribute value %d\n", *(int*)attribute_val );
        MPI_Abort(MPI_COMM_WORLD, 1005 );
+        exit(1005);
     }
     return MPI_SUCCESS;
 }
@@ -99,6 +100,7 @@ int test_communicators( void )
        errs++;
        printf( "incorrect rank in world comm: %d\n", rank );
        MPI_Abort(MPI_COMM_WORLD, 3001 );
+        exit(3001);
     }
 
     n = world_size / 2;
@@ -130,6 +132,7 @@ int test_communicators( void )
            errs++;
            printf( "incorrect lo group rank: %d\n", rank ); fflush(stdout);
            MPI_Abort(MPI_COMM_WORLD, 3002 );
+            exit(3002);
        }
        else {
            /* printf( "lo in\n" );FFLUSH; */
@@ -142,6 +145,7 @@ int test_communicators( void )
            errs++;
            printf( "rank : %d incorrect lo comm:\n", rank ); fflush(stdout);
            MPI_Abort(MPI_COMM_WORLD, 3003 );
+            exit(3003);
        }
     }
 
@@ -192,6 +196,7 @@ int test_communicators( void )
            printf( "dup_comm key_1 not found on %d\n", world_rank );
            fflush( stdout );
            MPI_Abort(MPI_COMM_WORLD, 3004 );
+            exit(3004);
        }
        
        if (value != world_rank) {
@@ -200,6 +205,7 @@ int test_communicators( void )
                    (long)value, world_rank );
            fflush( stdout );
            MPI_Abort(MPI_COMM_WORLD, 3005 );
+            exit(3005);
        }
 
        MPI_Attr_get(dup_comm, key_3, (void **)&vvalue, &flag );
@@ -209,6 +215,7 @@ int test_communicators( void )
            printf( "dup_comm key_3 found!\n" );
            fflush( stdout );
            MPI_Abort(MPI_COMM_WORLD, 3008 );
+            exit(3008);
        }
        MPI_Keyval_free(&key_1 );
        MPI_Keyval_free(&key_3 );
@@ -233,6 +240,7 @@ int test_communicators( void )
        errs++;
        printf( "incorrect split rank: %d\n", rank ); fflush(stdout);
        MPI_Abort(MPI_COMM_WORLD, 3009 );
+        exit(3009);
     }
     
     MPI_Barrier(split_comm );
@@ -251,6 +259,7 @@ int test_communicators( void )
        errs++;
        printf( "incorrect ident result: %d\n", result );
        MPI_Abort(MPI_COMM_WORLD, 3010 );
+        exit(3010);
     }
     
     if (lo_comm != MPI_COMM_NULL) {
@@ -259,6 +268,7 @@ int test_communicators( void )
            errs++;
             printf( "incorrect congruent result: %d\n", result );
             MPI_Abort(MPI_COMM_WORLD, 3011 );
+            exit(3011);
        }
     }
     
@@ -274,6 +284,7 @@ int test_communicators( void )
        errs++;
        printf( "incorrect similar result: %d\n", result );
        MPI_Abort(MPI_COMM_WORLD, 3012 );
+        exit(3012);
     }
     
     if (lo_comm != MPI_COMM_NULL) {
@@ -282,6 +293,7 @@ int test_communicators( void )
            errs++;
            printf( "incorrect unequal result: %d\n", result );
            MPI_Abort(MPI_COMM_WORLD, 3013 );
+            exit(3013);
        }
     }
     /*
index 963fd36..29e4d47 100644 (file)
@@ -22,7 +22,7 @@
 #define LARGE_BUF (256 * 1024)
 
 /* FIXME: MAX_BUF is too large */
-#define MAX_BUF   (128 * 1024 * 1024)
+#define MAX_BUF   (32 * 1024 * 1024)
 #define LOOPS 10
 
 __thread char * sbuf, * rbuf;
@@ -71,6 +71,7 @@ int main(int argc, char ** argv)
        if (!displs) fprintf(stderr,"\tdispls of %zd bytes\n", comm_size * sizeof(int) );
         fflush(stderr);
         MPI_Abort(MPI_COMM_WORLD, -1);
+        exit(-1);
     }
 
     if (!comm_rank) {
@@ -200,6 +201,7 @@ double run_test(long long msg_size, MPI_Comm comm, test_t test_type,
            if (tmp != (int)tmp) {
                fprintf( stderr, "Integer overflow in variable tmp\n" );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
             recvcounts[i] = (int) tmp;
 
index d33f876..e9becde 100644 (file)
@@ -368,6 +368,7 @@ int main( int argc, char **argv )
     if (size < 2) {
        fprintf( stderr, "At least 2 processes required\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     /* Set errors return so that we can provide better information 
@@ -383,6 +384,7 @@ int main( int argc, char **argv )
        if  (count <= 0) {
            fprintf( stderr, "Invalid count argument %s\n", argv[1] );
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
     }
 
index aaf8a23..cf16324 100644 (file)
@@ -182,10 +182,12 @@ int main( int argc, char *argv[] )
        buf = (int *)malloc( max_offset * sizeof(int) );
        if (!buf) {
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
        bufout = (int *)malloc( max_offset * sizeof(int) );
        if (!bufout) {
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
 
        initMat( comm, buf );
index 32e0c00..1638657 100644 (file)
@@ -198,11 +198,13 @@ int main( int argc, char *argv[] )
            buf = (int *)malloc( count * 9 * sizeof(int) );
            if (!buf) {
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
 
            bufout = (int *)malloc( count * 9 * sizeof(int) );
            if (!bufout) {
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
 
            for (i=0; i < count; i++) {
index a442550..7bba665 100644 (file)
@@ -38,6 +38,7 @@ int main( int argc, char *argv[] )
            fprintf( stderr, "Unable to allocated space for buffers (%d)\n",
                     count );
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
        for (i=0; i<count; i++) {
            bufin[i] = i;
index cd6d3d8..3e2a069 100644 (file)
@@ -53,6 +53,7 @@ int main( int argc, char *argv[] )
                errs++;
                fprintf( stderr, "Failed to allocate sendbuf and/or recvbuf\n" );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            for (i=0; i<count*size; i++) 
                recvbuf[i] = -1;
index bcae133..484ebf7 100644 (file)
@@ -45,6 +45,7 @@ int main( int argc, char **argv )
       if (!sbuf || !rbuf) {
        fprintf( stderr, "Could not allocated buffers!\n" );
        MPI_Abort( comm, 1 );
+        exit(1);
       }
       
       /* Load up the buffers */
@@ -61,6 +62,7 @@ int main( int argc, char **argv )
       if (!sendcounts || !recvcounts || !rdispls || !sdispls) {
        fprintf( stderr, "Could not allocate arg items!\n" );
        MPI_Abort( comm, 1 );
+        exit(1);
       }
       for (i=0; i<size; i++) {
        sendcounts[i] = i;
@@ -94,6 +96,7 @@ int main( int argc, char **argv )
       if (!rbuf) {
         fprintf( stderr, "Could not reallocate rbuf!\n" );
         MPI_Abort( comm, 1 );
+        exit(1);
       }
 
       /* Load up the buffers */
index e1c8785..5890043 100644 (file)
@@ -49,6 +49,7 @@ int main( int argc, char **argv )
       if (!sendcounts || !recvcounts || !rdispls || !sdispls) {
        fprintf( stderr, "Could not allocate arg items!\n" );
        MPI_Abort( comm, 1 );
+        exit(1);
       }
 
       /* Get the neighbors */
@@ -70,6 +71,7 @@ int main( int argc, char **argv )
          if (!sbuf || !rbuf) {
              fprintf( stderr, "Could not allocate buffers!\n" );
              MPI_Abort( comm, 1 );
+              exit(1);
          }
          
          /* Load up the buffers */
index 7d40236..b3a000f 100644 (file)
@@ -47,6 +47,7 @@ int main( int argc, char **argv )
       if (!sbuf || !rbuf) {
        fprintf( stderr, "Could not allocated buffers!\n" );
        MPI_Abort( comm, 1 );
+        exit(1);
       }
       
       /* Load up the buffers */
@@ -65,6 +66,7 @@ int main( int argc, char **argv )
       if (!sendcounts || !recvcounts || !rdispls || !sdispls || !sendtypes || !recvtypes) {
        fprintf( stderr, "Could not allocate arg items!\n" );
        MPI_Abort( comm, 1 );
+        exit(1);
       }
       /* Note that process 0 sends no data (sendcounts[0] = 0) */
       for (i=0; i<size; i++) {
@@ -101,6 +103,7 @@ int main( int argc, char **argv )
       if (!rbuf) {
         fprintf( stderr, "Could not reallocate rbuf!\n" );
         MPI_Abort( comm, 1 );
+        exit(1);
       }
 
       /* Load up the buffers */
index 65a6055..ece1e25 100644 (file)
@@ -10,7 +10,7 @@ int main(int argc, char *argv[])
 {
     int i, type_size;
     MPI_Datatype type = MPI_DATATYPE_NULL;
-    char *buf = NULL;
+    int *buf = NULL;
     int wrank, wsize;
 
     MPI_Init(&argc, &argv);
index 7e5b3c7..6c07269 100644 (file)
@@ -45,6 +45,7 @@ int main( int argc, char *argv[] )
            fprintf(stderr,"Unrecognized argument %s\n",
                    argv[i]);
            MPI_Abort(MPI_COMM_WORLD,EXIT_FAILURE);
+            exit(EXIT_FAILURE);
        }
     }
 
@@ -52,12 +53,14 @@ int main( int argc, char *argv[] )
     if ( !sb ) {
        perror( "can't allocate send buffer" );
        MPI_Abort(MPI_COMM_WORLD,EXIT_FAILURE);
+        exit(EXIT_FAILURE);
     }
     rb = (int *)malloc(size*chunk*sizeof(int));
     if ( !rb ) {
        perror( "can't allocate recv buffer");
        free(sb);
        MPI_Abort(MPI_COMM_WORLD,EXIT_FAILURE);
+        exit(EXIT_FAILURE);
     }
     for ( i=0 ; i < size*chunk ; ++i ) {
        sb[i] = rank + 1;
index ae08c96..008aa71 100644 (file)
@@ -28,6 +28,7 @@ int main( int argc, char **argv )
        fprintf( stderr, "Number of processors must divide %d\n",
                MAX_PROCESSES );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
        }
     if ( (rank < participants) ) {
 
index 84260d1..8fa5cdf 100644 (file)
@@ -30,6 +30,7 @@ int main( int argc, char **argv )
        fprintf( stderr, "Number of processors must divide %d\n",
                MAX_PROCESSES );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
        }
     if ( (rank < participants) ) {
 
index 6e8ea36..0ab19de 100644 (file)
@@ -30,6 +30,7 @@ int main( int argc, char **argv )
        fprintf( stderr, "Number of processors must divide %d\n",
                MAX_PROCESSES );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
        }
     MPI_Comm_split(MPI_COMM_WORLD, rank<participants, rank, &test_comm);
 
index 3d352ef..7cadace 100644 (file)
@@ -27,6 +27,7 @@ int main( int argc, char **argv )
        fprintf( stderr, "Number of processors must divide %d\n",
                MAX_PROCESSES );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
        }
     /* while (MAX_PROCESSES % participants) participants--; */
     if ( (rank < participants) ) {
index 41123c3..2233923 100644 (file)
@@ -46,6 +46,7 @@ int main( int argc, char **argv )
       if (!sbuf || !rbuf) {
        fprintf( stderr, "Could not allocated buffers!\n" );
        MPI_Abort( comm, 1 );
+        exit(1);
       }
 
       /* Load up the buffers */
@@ -62,6 +63,7 @@ int main( int argc, char **argv )
       if (!sendcounts || !recvcounts || !rdispls || !sdispls) {
        fprintf( stderr, "Could not allocate arg items!\n" );
        MPI_Abort( comm, 1 );
+        exit(1);
       }
       for (i=0; i<size; i++) {
        sendcounts[i] = i;
index 2b8252e..745bbb1 100644 (file)
@@ -49,6 +49,7 @@ int main( int argc, char **argv )
       if (!sbuf || !rbuf) {
        fprintf( stderr, "Could not allocated buffers!\n" );
        MPI_Abort( comm, 1 );
+        exit(1);
       }
       
       /* Load up the buffers */
@@ -67,6 +68,7 @@ int main( int argc, char **argv )
       if (!sendcounts || !recvcounts || !rdispls || !sdispls || !sendtypes || !recvtypes) {
        fprintf( stderr, "Could not allocate arg items!\n" );
        MPI_Abort( comm, 1 );
+        exit(1);
       }
       /* Note that process 0 sends no data (sendcounts[0] = 0) */
       for (i=0; i<size; i++) {
index 8f49a99..97cfa58 100644 (file)
@@ -27,6 +27,7 @@
         if (!(cond_)) {                                                   \
             fprintf(stderr, "assertion (%s) failed, aborting\n", #cond_); \
             MPI_Abort(MPI_COMM_WORLD, 1);                                 \
+            exit(1);                                                      \
         }                                                                 \
     } while (0)
 
index bc8a2c2..e607fad 100644 (file)
@@ -25,6 +25,7 @@
         if (!(cond_)) {                                                   \
             fprintf(stderr, "assertion (%s) failed, aborting\n", #cond_); \
             MPI_Abort(MPI_COMM_WORLD, 1);                                 \
+            exit(1);                                                      \
         }                                                                 \
     } while (0)
 
index 2c0ab32..2afbc57 100644 (file)
@@ -405,6 +405,7 @@ static void start_random_nonblocking(MPI_Comm comm, unsigned int rndnum, MPI_Req
         default:
             fprintf(stderr, "unexpected value for l->case_num=%d)\n", (l->case_num));
             MPI_Abort(comm, 1);
+            exit(1);
             break;
     }
 }
index 32358d9..a13561c 100644 (file)
@@ -160,9 +160,15 @@ int main( int argc, char *argv[] )
        MPI_Type_commit( &mattype );
        
        buf = (int *)malloc( count * size * size * sizeof(int) );
-       if (!buf) MPI_Abort( MPI_COMM_WORLD, 1 );
+       if (!buf) {
+          MPI_Abort( MPI_COMM_WORLD, 1 );
+          exit(1);
+        }
        bufout = (int *)malloc( count * size * size * sizeof(int) );
-       if (!bufout) MPI_Abort( MPI_COMM_WORLD, 1 );
+       if (!bufout) {
+          MPI_Abort( MPI_COMM_WORLD, 1 );
+          exit(1);
+        }
 
        for (root = 0; root < size; root ++) {
            initMat( comm, buf );
index a3e9183..abef5a8 100644 (file)
@@ -220,9 +220,15 @@ int main( int argc, char *argv[] )
        MPI_Type_commit( &mattype );
        
        buf = (int *)malloc( count * size * size * sizeof(int) );
-       if (!buf) MPI_Abort( MPI_COMM_WORLD, 1 );
+       if (!buf) {
+          MPI_Abort( MPI_COMM_WORLD, 1 );
+          exit(1);
+        }
        bufout = (int *)malloc( count * size * size * sizeof(int) );
-       if (!bufout) MPI_Abort( MPI_COMM_WORLD, 1 );
+       if (!bufout) {
+          MPI_Abort( MPI_COMM_WORLD, 1 );
+          exit(1);
+        }
 
        for (root = 0; root < size; root ++) {
            initMat( comm, buf );
index 7891cb6..71886e4 100644 (file)
@@ -42,6 +42,7 @@ int main(int argc, char **argv)
         err++;
         fprintf(stderr, "unable to allocate send/recv buffers, aborting");
         MPI_Abort(MPI_COMM_WORLD, 1);
+        exit(1);
     }
     for (i=0; i<size; i++)
         sendbuf[i] = rank + i;
index d2ed7ec..9d3b7ad 100644 (file)
@@ -39,6 +39,7 @@ int main( int argc, char **argv )
        fprintf( stderr, "Could not allocate %d ints for recvcounts\n", 
                 size );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     mycount = (1024 * 1024) / size;
     for (i=0; i<size; i++) 
@@ -48,6 +49,7 @@ int main( int argc, char **argv )
        fprintf( stderr, "Could not allocate %d ints for sendbuf\n", 
                 mycount * size );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     idx = 0;
     for (i=0; i<size; i++) {
@@ -60,6 +62,7 @@ int main( int argc, char **argv )
        fprintf( stderr, "Could not allocate %d ints for recvbuf\n", 
                 mycount );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     for (i=0; i<mycount; i++) {
        recvbuf[i] = -1;
index bf5f65f..5810b5b 100644 (file)
@@ -58,6 +58,7 @@ int main( int argc, char **argv )
            fprintf( stderr, "Could not allocate %d ints for sendbuf\n", 
                     sendcount );
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
 
        for (i=0; i<sendcount; i++) {
@@ -68,6 +69,7 @@ int main( int argc, char **argv )
            fprintf( stderr, "Could not allocate %d ints for recvbuf\n", 
                     recvcount );
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
        for (i=0; i<recvcount; i++) {
            recvbuf[i] = (long long)(-i);
index 5fb81e5..8341082 100644 (file)
@@ -38,6 +38,7 @@ int main( int argc, char **argv )
        fprintf( stderr, "Could not allocate %d ints for sendbuf\n", 
                 mycount * size );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     idx = 0;
     for (i=0; i<size; i++) {
@@ -50,6 +51,7 @@ int main( int argc, char **argv )
        fprintf( stderr, "Could not allocate %d ints for recvbuf\n", 
                 mycount );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     MPI_Reduce_scatter_block( sendbuf, recvbuf, mycount, MPI_INT, MPI_SUM, 
index bebfd8a..f54da3c 100644 (file)
@@ -59,6 +59,7 @@ int main( int argc, char **argv )
            fprintf( stderr, "Could not allocate %d int for recvcounts\n", 
                     size );
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
        for (i=0; i<size; i++) 
            recvcounts[i] = recvcount;
@@ -68,6 +69,7 @@ int main( int argc, char **argv )
            fprintf( stderr, "Could not allocate %d ints for sendbuf\n", 
                     sendcount );
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
 
        for (i=0; i<sendcount; i++) {
@@ -78,6 +80,7 @@ int main( int argc, char **argv )
            fprintf( stderr, "Could not allocate %d ints for recvbuf\n", 
                     recvcount );
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
        for (i=0; i<recvcount; i++) {
            recvbuf[i] = (long long)(-i);
index 6d8aa94..ea80da0 100644 (file)
@@ -119,12 +119,14 @@ int main( int argc, char **argv )
     recvbuf = (double *)malloc( nx * ny * sizeof(double) );
     if (!recvbuf) {
         MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     sendbuf = 0;
     if (myrow == 0 && mycol == 0) {
         sendbuf = (double *)malloc( nx * ny * size * sizeof(double) );
         if (!sendbuf) {
             MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
         }
     }
     sendcounts = (int *) malloc( size * sizeof(int) );
index 39f857d..3d6ca7e 100644 (file)
@@ -65,6 +65,7 @@ int main( int argc, char *argv[] )
            fprintf( stderr, "Unable to allocated %d words for data\n", 
                     3 * count );
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
        for (i=0; i<count*3; i++) {
            outVal[i] = -1;
index df37772..99e99c1 100644 (file)
@@ -44,6 +44,7 @@ int main( int argc, char *argv[] )
     if (size < 2) {
        fprintf( stderr, "This test requires at least two processes." );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     source  = 0;
index c5f103e..cd14521 100644 (file)
@@ -29,6 +29,7 @@ int main( int argc, char *argv[] )
     if (size < 4) {
        fprintf( stderr, "This test requires at least four processes." );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     color = MPI_UNDEFINED;
index edce6bb..8dc1df3 100644 (file)
@@ -25,6 +25,7 @@ int main(int argc, char *argv[])
     if (size % 2) {
         fprintf(stderr, "this program requires a multiple of 2 number of processes\n");
         MPI_Abort(MPI_COMM_WORLD, 1);
+        exit(1);
     }
 
     excl = malloc((size / 2) * sizeof(int));
index 0823943..1a56bd6 100644 (file)
@@ -45,6 +45,7 @@ int main(int argc, char **argv)
     if (size < 2) {
         printf("this test requires at least 2 processes\n");
         MPI_Abort(MPI_COMM_WORLD, 1);
+        exit(1);
     }
 
 #ifdef TEST_IDUP
index edb60fd..e93f914 100644 (file)
@@ -25,6 +25,7 @@ void abortMsg( const char *str, int code )
     fprintf( stderr, "%s: errcode = %d, class = %d, msg = %s\n", 
             str, code, class, msg );
     MPI_Abort( MPI_COMM_WORLD, code );
+    exit(code);
 }
 
 int main( int argc, char *argv[] )
index 7ab4e6e..9bb4a43 100644 (file)
@@ -24,6 +24,7 @@ int main( int argc, char *argv[] )
     if (size < 2) {
        printf( "Size must be at least 2\n" );
        MPI_Abort( MPI_COMM_WORLD, 0 );
+        exit(0);
     }
 
     MPI_Comm_rank( MPI_COMM_WORLD, &rank );
index 8385648..adf5449 100644 (file)
@@ -34,7 +34,7 @@ int main(int argc, char **argv)
     if (size < 33) {
         printf("ERROR: this test requires at least 33 processes\n");
         MPI_Abort(MPI_COMM_WORLD, 1);
-        return 1;
+        exit(1);
     }
 
     /* group of c0
index 4b3cedd..ef3d363 100644 (file)
@@ -29,6 +29,7 @@ int main( int argc, char *argv[] )
     if (size < 4) {
        printf( "This test requires at least 4 processes\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     MPI_Comm_rank( MPI_COMM_WORLD, &wrank );
 
index 9ad2d51..ab5aeec 100644 (file)
@@ -28,6 +28,7 @@ int main( int argc, char *argv[] )
     if (size < 4) {
        printf( "This test requires at least 4 processes\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     while (MTestGetIntercomm( &intercomm, &isLeft, 2 )) {
index edd56e2..03c9e10 100644 (file)
@@ -32,6 +32,7 @@ int main( int argc, char *argv[] )
     if (size < 2) {
        fprintf( stderr, "This test requires at least two processes." );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     while (MTestGetIntercomm( &intercomm, &isLeft, 2 )) {
index 90eea4a..9de2c59 100644 (file)
@@ -28,6 +28,7 @@ int main( int argc, char *argv[] )
     /* Test 1: Simple, 1-D cyclic decomposition */
     if (AllocateGrid( 1, 3*wsize, &srcArray, &destArray ) ) {
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     /* Simple cyclic with 1-dim global array */
@@ -44,6 +45,7 @@ int main( int argc, char *argv[] )
     if (PackUnpack( darraytype, srcArray, destArray, 3 )) {
        fprintf( stderr, "Error in pack/unpack check\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     /* Now, check for correct data */
     for (i=0; i<3; i++) {
@@ -61,6 +63,7 @@ int main( int argc, char *argv[] )
     /* Test 2: Simple, 1-D cyclic decomposition, with block size=2 */
     if (AllocateGrid( 1, 4*wsize, &srcArray, &destArray ) ) {
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     /* Simple cyclic with 1-dim global array */
@@ -77,6 +80,7 @@ int main( int argc, char *argv[] )
     if (PackUnpack( darraytype, srcArray, destArray, 4 )) {
        fprintf( stderr, "Error in pack/unpack check\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     loc = 0;
     /* for each cyclic element */
@@ -105,11 +109,13 @@ int main( int argc, char *argv[] )
     if (px * py != wsize) {
        fprintf( stderr, "An even number of processes is required\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     /* Cyclic/Cyclic */
     if (AllocateGrid( 5*px, 7*py, &srcArray, &destArray )) {
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     /* Simple cyclic/cyclic. Note in C order, the [1] index varies most 
@@ -131,6 +137,7 @@ int main( int argc, char *argv[] )
     if (PackUnpack( darraytype, srcArray, destArray, 5*7 )) {
        fprintf( stderr, "Error in pack/unpack check\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     loc = 0;
@@ -153,6 +160,7 @@ int main( int argc, char *argv[] )
     /* Cyclic(2)/Cyclic(3) */
     if (AllocateGrid( 6*px, 4*py, &srcArray, &destArray )) {
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     /* Block cyclic/cyclic. Note in C order, the [1] index varies most 
@@ -174,6 +182,7 @@ int main( int argc, char *argv[] )
     if (PackUnpack( darraytype, srcArray, destArray, 4*6 )) {
        fprintf( stderr, "Error in pack/unpack check\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     loc = 0;
@@ -239,6 +248,7 @@ int PackUnpack( MPI_Datatype darraytype, const int srcArray[], int destArray[],
        fprintf( stderr, "Unable to allocate pack array of size %d\n", 
                 packsize );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     position = 0;
     MPI_Pack( (int*)srcArray, 1, darraytype, packArray, packsize, &position, 
index 49ba725..9fe778f 100644 (file)
@@ -33,6 +33,7 @@ int main( int argc, char *argv[] )
        errs++;
        printf( "This test requires at least 2 processes\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     
     src  = 0;
index 31f6a2d..c27a31d 100644 (file)
@@ -13,6 +13,8 @@
 #include <stdlib.h>
 #include <mpi.h>
 
+#define equals(a, b) ((long long)(a) == (long long)(b))
+
 /* assert-like macro that bumps the err count and emits a message */
 #define check(x_)                                                                 \
     do {                                                                          \
@@ -95,89 +97,89 @@ int main(int argc, char *argv[])
 
     /* MPI_Type_size */
     MPI_Type_size(imax_contig, &size);
-    check(size == INT_MAX);
+    check(equals(size, INT_MAX));
     MPI_Type_size(four_ints, &size);
-    check(size == 4*sizeof(int));
+    check(equals(size, 4*sizeof(int)));
     MPI_Type_size(imx4i, &size);
-    check(size == MPI_UNDEFINED); /* should overflow an int */
+    check(equals(size, MPI_UNDEFINED)); /* should overflow an int */
     MPI_Type_size(imx4i_rsz, &size);
-    check(size == MPI_UNDEFINED); /* should overflow an int */
+    check(equals(size, MPI_UNDEFINED)); /* should overflow an int */
 
     /* MPI_Type_size_x */
     MPI_Type_size_x(imax_contig, &size_x);
-    check(size_x == INT_MAX);
+    check(equals(size_x, INT_MAX));
     MPI_Type_size_x(four_ints, &size_x);
-    check(size_x == 4*sizeof(int));
+    check(equals(size_x, 4*sizeof(int)));
     MPI_Type_size_x(imx4i, &size_x);
-    check(size_x == 4LL*sizeof(int)*(INT_MAX/2)); /* should overflow an int */
+    check(equals(size_x, 4LL*sizeof(int)*(INT_MAX/2))); /* should overflow an int */
     MPI_Type_size_x(imx4i_rsz, &size_x);
-    check(size_x == 4LL*sizeof(int)*(INT_MAX/2)); /* should overflow an int */
+    check(equals(size_x, 4LL*sizeof(int)*(INT_MAX/2))); /* should overflow an int */
 
     /* MPI_Type_get_extent */
     MPI_Type_get_extent(imax_contig, &lb, &extent);
-    check(lb == 0);
-    check(extent == INT_MAX);
+    check(equals(lb, 0));
+    check(equals(extent, INT_MAX));
     MPI_Type_get_extent(four_ints, &lb, &extent);
-    check(lb == 0);
-    check(extent == 4*sizeof(int));
+    check(equals(lb, 0));
+    check(equals(extent, 4*sizeof(int)));
     MPI_Type_get_extent(imx4i, &lb, &extent);
-    check(lb == 0);
+    check(equals(lb, 0));
     if (sizeof(MPI_Aint) == sizeof(int))
-        check(extent == MPI_UNDEFINED);
+        check(equals(extent, MPI_UNDEFINED));
     else
-        check(extent == imx4i_true_extent);
+        check(equals(extent, imx4i_true_extent));
 
     MPI_Type_get_extent(imx4i_rsz, &lb, &extent);
-    check(lb == INT_MAX);
-    check(extent == -1024);
+    check(equals(lb, INT_MAX));
+    check(equals(extent, -1024));
 
     /* MPI_Type_get_extent_x */
     MPI_Type_get_extent_x(imax_contig, &lb_x, &extent_x);
-    check(lb_x == 0);
-    check(extent_x == INT_MAX);
+    check(equals(lb_x, 0));
+    check(equals(extent_x, INT_MAX));
     MPI_Type_get_extent_x(four_ints, &lb_x, &extent_x);
-    check(lb_x == 0);
-    check(extent_x == 4*sizeof(int));
+    check(equals(lb_x, 0));
+    check(equals(extent_x, 4*sizeof(int)));
     MPI_Type_get_extent_x(imx4i, &lb_x, &extent_x);
-    check(lb_x == 0);
-    check(extent_x == imx4i_true_extent);
+    check(equals(lb_x, 0));
+    check(equals(extent_x, imx4i_true_extent));
     MPI_Type_get_extent_x(imx4i_rsz, &lb_x, &extent_x);
-    check(lb_x == INT_MAX);
-    check(extent_x == -1024);
+    check(equals(lb_x, INT_MAX));
+    check(equals(extent_x, -1024));
 
     /* MPI_Type_get_true_extent */
     MPI_Type_get_true_extent(imax_contig, &lb, &extent);
-    check(lb == 0);
-    check(extent == INT_MAX);
+    check(equals(lb, 0));
+    check(equals(extent, INT_MAX));
     MPI_Type_get_true_extent(four_ints, &lb, &extent);
-    check(lb == 0);
-    check(extent == 4*sizeof(int));
+    check(equals(lb, 0));
+    check(equals(extent, 4*sizeof(int)));
     MPI_Type_get_true_extent(imx4i, &lb, &extent);
-    check(lb == 0);
+    check(equals(lb, 0));
     if (sizeof(MPI_Aint) == sizeof(int))
-        check(extent == MPI_UNDEFINED);
+        check(equals(extent, MPI_UNDEFINED));
     else
-        check(extent == imx4i_true_extent);
+        check(equals(extent, imx4i_true_extent));
     MPI_Type_get_true_extent(imx4i_rsz, &lb, &extent);
-    check(lb == 0);
+    check(equals(lb, 0));
     if (sizeof(MPI_Aint) == sizeof(int))
-        check(extent == MPI_UNDEFINED);
+        check(equals(extent, MPI_UNDEFINED));
     else
-        check(extent == imx4i_true_extent);
+        check(equals(extent, imx4i_true_extent));
 
     /* MPI_Type_get_true_extent_x */
     MPI_Type_get_true_extent_x(imax_contig, &lb_x, &extent_x);
-    check(lb_x == 0);
-    check(extent_x == INT_MAX);
+    check(equals(lb_x, 0));
+    check(equals(extent_x, INT_MAX));
     MPI_Type_get_true_extent_x(four_ints, &lb_x, &extent_x);
-    check(lb_x == 0);
-    check(extent_x == 4*sizeof(int));
+    check(equals(lb_x, 0));
+    check(equals(extent_x, 4*sizeof(int)));
     MPI_Type_get_true_extent_x(imx4i, &lb_x, &extent_x);
-    check(lb_x == 0);
-    check(extent_x == imx4i_true_extent);
+    check(equals(lb_x, 0));
+    check(equals(extent_x, imx4i_true_extent));
     MPI_Type_get_true_extent_x(imx4i_rsz, &lb_x, &extent_x);
-    check(lb_x == 0);
-    check(extent_x == imx4i_true_extent);
+    check(equals(lb_x, 0));
+    check(equals(extent_x, imx4i_true_extent));
 
 
     /* MPI_{Status_set_elements,Get_elements}{,_x} */
@@ -187,18 +189,18 @@ int main(int argc, char *argv[])
     MPI_Get_elements(&status, MPI_INT, &elements);
     MPI_Get_elements_x(&status, MPI_INT, &elements_x);
     MPI_Get_count(&status, MPI_INT, &count);
-    check(elements == 10);
-    check(elements_x == 10);
-    check(count == 10);
+    check(equals(elements, 10));
+    check(equals(elements_x, 10));
+    check(equals(count, 10));
 
     /* set_x simple */
     MPI_Status_set_elements_x(&status, MPI_INT, 10);
     MPI_Get_elements(&status, MPI_INT, &elements);
     MPI_Get_elements_x(&status, MPI_INT, &elements_x);
     MPI_Get_count(&status, MPI_INT, &count);
-    check(elements == 10);
-    check(elements_x == 10);
-    check(count == 10);
+    check(equals(elements, 10));
+    check(equals(elements_x, 10));
+    check(equals(count, 10));
 
     /* Sets elements corresponding to count=1 of the given MPI datatype, using
      * set_elements and set_elements_x.  Checks expected values are returned by
@@ -213,9 +215,9 @@ int main(int argc, char *argv[])
             MPI_Get_elements(&status, (type_), &elements);        \
             MPI_Get_elements_x(&status, (type_), &elements_x);    \
             MPI_Get_count(&status, (type_), &count);              \
-            check(elements == (elts_));                           \
-            check(elements_x == (elts_));                         \
-            check(count == 1);                                    \
+            check(equals(elements, (elts_)));                     \
+            check(equals(elements_x, (elts_)));                   \
+            check(equals(count, 1));                              \
         }                                                         \
                                                                   \
         elements = elements_x = count = 0xfeedface;               \
@@ -224,13 +226,13 @@ int main(int argc, char *argv[])
         MPI_Get_elements_x(&status, (type_), &elements_x);        \
         MPI_Get_count(&status, (type_), &count);                  \
         if ((elts_) > INT_MAX) {                                  \
-            check(elements == MPI_UNDEFINED);                     \
+            check(equals(elements, MPI_UNDEFINED));               \
         }                                                         \
         else {                                                    \
-            check(elements == (elts_));                           \
+            check(equals(elements, (elts_)));                     \
         }                                                         \
-        check(elements_x == (elts_));                             \
-        check(count == 1);                                        \
+        check(equals(elements_x, (elts_)));                       \
+        check(equals(count, 1));                                  \
     } while (0)                                                   \
 
     check_set_elements(imax_contig, INT_MAX);
index 036eaf6..3c44de2 100644 (file)
@@ -40,6 +40,7 @@ int main( int argc, char **argv )
     {
         fprintf(stderr, "Could not make struct type."), fflush(stderr); 
         MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     
     memset(s_buf, 0, EL_COUNT*SIZE);
index d38fb7f..9f909f2 100644 (file)
@@ -37,6 +37,7 @@ int main( int argc, char *argv[] )
     if (size < 2) {
        fprintf( stderr, "This test requires at least two processes." );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     source  = 0;
index 069fddc..ffaccad 100644 (file)
@@ -39,6 +39,7 @@ int main( int argc, char *argv[] )
        buf = (int *)malloc( count * 3 * sizeof(int) );
        if (!buf) {
            MPI_Abort( comm, 1 );
+            exit(1);
        }
        for (i=0; i<3*count; i++) buf[i] = -1;
        if (rank == source) {
index 064084b..2f5ec3e 100644 (file)
@@ -43,6 +43,7 @@ int main( int argc, char *argv[] )
        buf = (int *)malloc( count * 3 * sizeof(int) );
        if (!buf) {
            MPI_Abort( comm, 1 );
+            exit(1);
        }
        for (i=0; i<3*count; i++) buf[i] = -1;
        if (rank == source) {
index 1d9cc9e..b2da152 100644 (file)
@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 2.6)
 
-if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_F2C)
+if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_F90)
   if(WIN32)
     set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
   else()
index a8a0b84..ca51980 100644 (file)
@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 2.6)
 
-if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_F2C)
+if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_F90)
   if(WIN32)
     set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
   else()
index 79829e7..5367f99 100644 (file)
@@ -24,6 +24,7 @@
       if (size .lt. 2) then
          print *, "Must have at least 2 processes"
          call MPI_Abort( 1, MPI_COMM_WORLD, ierr )
+         stop
       endif
 
       errs = 0
index abc17da..71e9735 100644 (file)
@@ -45,6 +45,7 @@
       if (size .lt. 2) then
          print *, "Must have at least 2 processes"
          call MPI_Abort( 1, MPI_COMM_WORLD, ierr )
+         stop
       endif
 
       comm = MPI_COMM_WORLD
index d64be2f..3e4ec84 100644 (file)
@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 2.6)
 
-if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_F2C)
+if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_F90)
   if(WIN32)
     set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
   else()
index 682e23c..dfed73b 100644 (file)
@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 2.6)
 
-if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_F2C)
+if(enable_smpi AND enable_smpi_MPICH3_testsuite AND SMPI_F90)
   if(WIN32)
     set(CMAKE_C_FLAGS "-include ${CMAKE_HOME_DIRECTORY}/include/smpi/smpi_main.h")
   else()
index e5f032f..3e753a4 100644 (file)
@@ -33,10 +33,12 @@ int main( int argc, char *argv[] )
         "This test requires a comm world with no more than %d processes\n", 
                 MAX_WORLD_SIZE );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     if (size < 4) {
        fprintf( stderr, "This test requiers at least 4 processes\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     MPI_Comm_group( comm, &gworld );
index 98b79d2..9900aa3 100644 (file)
@@ -45,6 +45,7 @@ int main( int argc, char *argv[] )
     if (!ranks || !ranksout) {
         fprintf(stderr, "out of memory\n");
         MPI_Abort(MPI_COMM_WORLD, 1);
+        exit(1);
     }
 
     /* generate a comm with the rank order reversed */
index 3c085fd..797716b 100644 (file)
@@ -39,6 +39,7 @@ int main( int argc, char *argv[] )
        errs++;
        fprintf( stderr, "This test requires at least two processes\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     source = 0;
     dest = 1;
index 8f22959..0326369 100644 (file)
@@ -43,6 +43,7 @@ int main( int argc, char *argv[] )
        errs++;
        fprintf( stderr, "At least 2 processes required\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     src  = 0;
@@ -57,6 +58,7 @@ int main( int argc, char *argv[] )
            fprintf( stderr, "Could not allocate buffer of %d bytes\n", 
                     bufsize );
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
        MPI_Buffer_attach( buf, bufsize );
 
index cc7cc5a..70aa336 100644 (file)
@@ -53,6 +53,7 @@ int main( int argc, char *argv[] )
                fprintf( stderr, "Unable to allocate a buffer of %d bytes\n",
                         bufsize );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            
            MPI_Buffer_attach( buf, bufsize );
index 2744748..850364a 100644 (file)
@@ -24,6 +24,7 @@ int main( int argc, char *argv[] )
     if (size < 2) {
        fprintf( stderr, "Must run with at least 2 processes\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     MPI_Comm_rank( MPI_COMM_WORLD, &rank );
 
@@ -39,6 +40,7 @@ int main( int argc, char *argv[] )
        fprintf( stderr, "Unable to allocate buffers of size %d\n", 
                 n0 * (int)sizeof(int) );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
     memset( buf0, -1, n0 * sizeof(int) );
     memset( buf1, -1, n0 * sizeof(int) );
index 4adc26c..7855b75 100644 (file)
@@ -51,6 +51,7 @@ int main( int argc, char *argv[] )
            fprintf( stderr, "Unable to allocate buffer %d of size %ld\n", 
                        i, (long)extent );
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
     }
     buf = (int *)malloc( 10 * 30 * sizeof(int) );
index b8a6d09..42d60b7 100644 (file)
@@ -34,6 +34,7 @@ int main(int argc, char *argv[])
   if (size != 3) {
     fprintf(stderr,"[%d] usage: mpiexec -n 3 %s\n",rank,argv[0]);
     MPI_Abort(MPI_COMM_WORLD,1);
+    exit(1);
   }
 
   cols = malloc(cnt*sizeof(long long));
index c48d871..2e97536 100644 (file)
@@ -49,6 +49,7 @@ int main(int argc, char **argv)
     if (size < 2) {
         printf("this test requires at least 2 processes\n");
         MPI_Abort(MPI_COMM_WORLD, 1);
+        exit(1);
     }
 
     /* all processes besides ranks 0 & 1 aren't used by this test */
index e32e5f1..08b6b2c 100644 (file)
@@ -43,6 +43,7 @@ int main( int argc, char *argv[] )
            if (!buf) {
                fprintf( stderr, "Unable to allocate %d bytes\n", n );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            MPI_Send_init( buf, n, MPI_CHAR, dest, cs+n+1, comm, &req );
            MPI_Start( &req );
@@ -80,6 +81,7 @@ int main( int argc, char *argv[] )
                {
                    fprintf( stderr, "Unable to allocate %d bytes\n", nn);
                    MPI_Abort( MPI_COMM_WORLD, 1 );
+                    exit(1);
                }
                MPI_Recv( btemp, nn, MPI_CHAR, 0, tag, comm, &status );
                free(btemp);
@@ -96,12 +98,14 @@ int main( int argc, char *argv[] )
            if (!buf) {
                fprintf( stderr, "Unable to allocate %d bytes\n", n );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            bsendbufsize = n + MPI_BSEND_OVERHEAD;
            bsendbuf = (char *)malloc( bsendbufsize );
            if (!bsendbuf) {
                fprintf( stderr, "Unable to allocate %d bytes for bsend\n", n );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            MPI_Buffer_attach( bsendbuf, bsendbufsize );
            MPI_Bsend_init( buf, n, MPI_CHAR, dest, cs+n+2, comm, &req );
@@ -142,6 +146,7 @@ int main( int argc, char *argv[] )
                {
                    fprintf( stderr, "Unable to allocate %d bytes\n", nn);
                    MPI_Abort( MPI_COMM_WORLD, 1 );
+                    exit(1);
                }
                MPI_Recv( btemp, nn, MPI_CHAR, 0, tag, comm, &status );
                free(btemp);
@@ -162,6 +167,7 @@ int main( int argc, char *argv[] )
            if (!buf) {
                fprintf( stderr, "Unable to allocate %d bytes\n", n );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            MPI_Rsend_init( buf, n, MPI_CHAR, dest, cs+n+3, comm, &req );
            MPI_Start( &req );
@@ -208,6 +214,7 @@ int main( int argc, char *argv[] )
                {
                    fprintf( stderr, "Unable to allocate %d bytes\n", n);
                    MPI_Abort( MPI_COMM_WORLD, 1 );
+                    exit(1);
                }
                MPI_Recv( btemp, n, MPI_CHAR, 0, tag, comm, &status );
                free(btemp);
@@ -222,6 +229,7 @@ int main( int argc, char *argv[] )
            if (!buf) {
                fprintf( stderr, "Unable to allocate %d bytes\n", n );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            MPI_Ssend_init( buf, n, MPI_CHAR, dest, cs+n+4, comm, &req );
            MPI_Start( &req );
@@ -259,6 +267,7 @@ int main( int argc, char *argv[] )
                {
                    fprintf( stderr, "Unable to allocate %d bytes\n", nn);
                    MPI_Abort( MPI_COMM_WORLD, 1 );
+                    exit(1);
                }
                MPI_Recv( btemp, nn, MPI_CHAR, 0, tag, comm, &status );
                free(btemp);
index 1a6eab1..2d752ca 100644 (file)
@@ -27,6 +27,7 @@ int main( int argc, char *argv[] )
        if (dest > r) r = dest;
        fprintf( stderr, "This program requires %d processes\n", r-1 );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     if (rank == src) {
index 7c8cf65..7623be6 100644 (file)
@@ -44,6 +44,7 @@ int main( int argc, char *argv[] )
            if (!buf) {
                fprintf( stderr, "Unable to allocate %d bytes\n", n );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            MTestPrintfMsg( 1, "(%d) About to create isend and cancel\n",cs );
            MPI_Isend( buf, n, MPI_CHAR, dest, cs+n+1, comm, &req );
@@ -81,6 +82,7 @@ int main( int argc, char *argv[] )
                {
                    fprintf( stderr, "Unable to allocate %d bytes\n", nn );
                    MPI_Abort( MPI_COMM_WORLD, 1 );
+                    exit(1);
                }
                MPI_Recv( btemp, nn, MPI_CHAR, 0, tag, comm, &status );
                free(btemp);
@@ -97,12 +99,14 @@ int main( int argc, char *argv[] )
            if (!buf) {
                fprintf( stderr, "Unable to allocate %d bytes\n", n );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            bsendbufsize = n + MPI_BSEND_OVERHEAD;
            bsendbuf = (char *)malloc( bsendbufsize );
            if (!bsendbuf) {
                fprintf( stderr, "Unable to allocate %d bytes for bsend\n", n );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            MPI_Buffer_attach( bsendbuf, bsendbufsize );
            MTestPrintfMsg( 1, "About to create and cancel ibsend\n" );
@@ -142,6 +146,7 @@ int main( int argc, char *argv[] )
                {
                    fprintf( stderr, "Unable to allocate %d bytes\n", nn);
                    MPI_Abort( MPI_COMM_WORLD, 1 );
+                    exit(1);
                }
                MPI_Recv( btemp, nn, MPI_CHAR, 0, tag, comm, &status );
                free(btemp);
@@ -162,6 +167,7 @@ int main( int argc, char *argv[] )
            if (!buf) {
                fprintf( stderr, "Unable to allocate %d bytes\n", n );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            MTestPrintfMsg( 1, "About to create and cancel irsend\n" );
            MPI_Irsend( buf, n, MPI_CHAR, dest, cs+n+3, comm, &req );
@@ -207,6 +213,7 @@ int main( int argc, char *argv[] )
                {
                    fprintf( stderr, "Unable to allocate %d bytes\n", n);
                    MPI_Abort( MPI_COMM_WORLD, 1 );
+                    exit(1);
                }
                MPI_Recv( btemp, n, MPI_CHAR, 0, tag, comm, &status );
                free(btemp);
@@ -221,6 +228,7 @@ int main( int argc, char *argv[] )
            if (!buf) {
                fprintf( stderr, "Unable to allocate %d bytes\n", n );
                MPI_Abort( MPI_COMM_WORLD, 1 );
+                exit(1);
            }
            MTestPrintfMsg( 1, "About to create and cancel issend\n" );
            MPI_Issend( buf, n, MPI_CHAR, dest, cs+n+4, comm, &req );
@@ -257,6 +265,7 @@ int main( int argc, char *argv[] )
                {
                    fprintf( stderr, "Unable to allocate %d bytes\n", nn);
                    MPI_Abort( MPI_COMM_WORLD, 1 );
+                    exit(1);
                }
                MPI_Recv( btemp, nn, MPI_CHAR, 0, tag, comm, &status );
                free(btemp);
index b027f0b..8da0257 100644 (file)
@@ -40,6 +40,7 @@ int main( int argc, char *argv[] )
        if (!buf) {
            fprintf( stderr, "Unable to allocate %d bytes\n", n );
            MPI_Abort( MPI_COMM_WORLD, 1 );
+            exit(1);
        }
 
        if (rank == source) {
index eba48e6..2f87e47 100644 (file)
@@ -40,6 +40,7 @@ int main ( int argc, char *argv[] )
     fprintf( stderr, "This program requires a comm_world no larger than %d",
             MAXPES );
     MPI_Abort( MPI_COMM_WORLD, 1 );
+    exit(1);
   }
 
   for (size = 1; size  <= MYBUFSIZE ; size += size) {
index e0c21a7..19ced11 100644 (file)
@@ -35,6 +35,7 @@ int main( int argc, char *argv[] )
     if (size < 2) {
        printf( "This test requires at least 2 processes\n" );
        MPI_Abort( MPI_COMM_WORLD, 1 );
+        exit(1);
     }
 
     for (testnum=0; msgsizes[testnum] > 0; testnum++) {
@@ -50,6 +51,7 @@ int main( int argc, char *argv[] )
                    fprintf( stderr, "Unable to allocate %d bytes\n", 
                             msgSize );
                    MPI_Abort( MPI_COMM_WORLD, 1 );
+                    exit(1);
                }
            }
            partner = (rank + 1) % size;
index 6f40201..0fd3032 100644 (file)
@@ -1534,6 +1534,7 @@ void MTestError( const char *msg )
     fprintf( stderr, "%s\n", msg );
     fflush( stderr );
     MPI_Abort( MPI_COMM_WORLD, 1 );
+    exit(1);
 }
 /* ------------------------------------------------------------------------ */
 static void MTestResourceSummary( FILE *fp )
index a90ee02..6d2e09a 100644 (file)
@@ -16,7 +16,7 @@ p Test pingpong
 ! setenv LD_LIBRARY_PATH=../../lib
 ! output sort
 $ ../../smpi_script/bin/smpirun -map -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../../examples/msg/small_platform.xml -np 4 ./pingpong -q
-> *** Ping-pong test (MPI_Send/MPI_Recv) ***
+>     *** Ping-pong test (MPI_Send/MPI_Recv) ***
 > == pivot=0 : pingpong [0] <--> [1]
 > == pivot=1 : pingpong [1] <--> [2]
 > == pivot=2 : pingpong [2] <--> [3]
index 8e73331..3236486 100644 (file)
@@ -2,6 +2,7 @@
 # (since we want to pass it to the child, it has to be redefined before each command)
 # Go for the first test
 p Test Reduce with 3 processes
+! output sort
 $ ../../smpi_script/bin/smpirun -map -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../../examples/msg/small_platform.xml -np 3 ./reduce -q
 > [rank 0] -> Tremblay
 > [rank 1] -> Jupiter
@@ -21,6 +22,7 @@ $ ../../smpi_script/bin/smpirun -map -hostfile ${srcdir:=.}/hostfile -platform $
 
 # second test
 ! setenv LD_LIBRARY_PATH=../../lib
+! output sort
 p Test Reduce with 5 processes
 $ ../../smpi_script/bin/smpirun -map -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../../examples/msg/small_platform.xml -np 5 ./reduce -q
 > [rank 0] -> Tremblay
@@ -44,6 +46,7 @@ $ ../../smpi_script/bin/smpirun -map -hostfile ${srcdir:=.}/hostfile -platform $
 >      ok.
 
 # third test
+! output sort
 ! setenv LD_LIBRARY_PATH=../../lib
 p Test Reduce with 12 processes
 $ ../../smpi_script/bin/smpirun -map -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../../examples/msg/small_platform.xml -np 12 ./reduce -q
index d2b6c79..5344d64 100644 (file)
@@ -4,7 +4,7 @@
 
 p Test reduce_scatter
 $ ../../smpi_script/bin/smpirun -map -hostfile ${srcdir:=.}/hostfile -platform ${srcdir:=.}/../../examples/msg/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ./reduce_scatter_coll 
-> No Errors
+>  No Errors
 > You requested to use 16 processes, but there is only 5 processes in your hostfile...
 > [0.000000] [surf_config/INFO] Switching workstation model to compound since you changed the network and/or cpu model(s)
 > [rank 0] -> Tremblay
index 7c1864b..8b245aa 100644 (file)
@@ -21,7 +21,9 @@ int main(int argc, char**argv)
   xbt_init(&argc,argv);
 
   XBT_INFO("Allocating a new heap");
-  heapA = xbt_mheap_new(-1, ((char*)sbrk(0)) + BUFFSIZE);
+  unsigned long mask = ~((unsigned long)getpagesize() - 1);
+  void *addr = (void*)(((unsigned long)sbrk(0) + BUFFSIZE) & mask);
+  heapA = xbt_mheap_new(-1, addr);
   if (heapA == NULL) {
     perror("attach 1 failed");
     fprintf(stderr, "bye\n");
index ebc77e4..0f32252 100644 (file)
@@ -1,6 +1,6 @@
 /* log_usage - A test of normal usage of the log facilities                 */
 
-/* Copyright (c) 2004-2007, 2009-2012. The SimGrid Team.
+/* Copyright (c) 2004-2007, 2009-2013. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -38,7 +38,9 @@ int main(int argc, char **argv)
   dolog("");
   dolog(" ");
   dolog(" test.thres:info root.thres:info  ");
+#ifndef NDEBUG
   dolog(" test.thres:debug ");
+#endif
   dolog(" test.thres:verbose root.thres:error ");
   dolog(" test.thres:critical ");
 
index cebd30d..a035d51 100644 (file)
@@ -31,7 +31,7 @@ int main(int argc, char **argv)
 
   int status = TRACE_platform_graph_export_graphviz (graphvizFile);
   if (status == 0){
-    XBT_INFO ("%s expects --cfg=tracing:1 --cfg=tracing/platform:1", argv[0]);
+    XBT_INFO ("%s expects --cfg=tracing:yes --cfg=tracing/platform:yes", argv[0]);
   }
 #else
   XBT_INFO ("works only if simgrid was compiled with tracing enabled.");
index 58d754c..2096fcb 100644 (file)
@@ -1,7 +1,7 @@
 #! ./tesh
 
-$ ${bindir:=.}/graphicator ${srcdir:=.}/teshsuite/simdag/platforms/one_cluster.xml --cfg=tracing:1 --cfg=tracing/platform:1 test.dot
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to '1'
-> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to '1'
+$ ${bindir:=.}/graphicator ${srcdir:=.}/teshsuite/simdag/platforms/one_cluster.xml --cfg=tracing:yes --cfg=tracing/platform:yes test.dot
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing' to 'yes'
+> [0.000000] [xbt_cfg/INFO] Configuration change: Set 'tracing/platform' to 'yes'
 
 $ rm test.dot
index 7c2feea..27bab27 100644 (file)
@@ -1,20 +1,18 @@
 # Valgrind suppressions for stuff that we cannot control
 
-# Memory leak in dash
-# dash is actually used when checking the "mkfile" command in tesh
+# Memory leaks in standard tools (e.g. dash, tail, or sort)
 {
-   Memory leak in /bin/dash
+   Memory leak in /bin tools
    Memcheck:Leak
    ...
-   obj:/bin/dash
+   obj:/bin/*
 }
 
-# We also don't want to be annoyed by leaks in /usr/bin/tail
 {
-   Memory leak in /usr/bin/tail
+   Memory leak in /usr/bin tools
    Memcheck:Leak
    ...
-   obj:/usr/bin/tail
+   obj:/usr/bin/*
 }
 
 # There's a constant leak of 56 bytes in the depths of libc which
index bbb97a5..2c7cf96 100644 (file)
@@ -2558,8 +2558,6 @@ memset
 Memset
 memuse
 ment
-mergesort
-MERGESORT
 merr
 messageSize
 messageSizes
index 3ed1758..5688054 100644 (file)
@@ -26,12 +26,13 @@ endif()
 set(tesh_files
   ${tesh_files}
   ${CMAKE_CURRENT_SOURCE_DIR}/setenv.tesh
-  ${CMAKE_CURRENT_SOURCE_DIR}/set-ignore-output.tesh
+  ${CMAKE_CURRENT_SOURCE_DIR}/set-output-ignore.tesh
+  ${CMAKE_CURRENT_SOURCE_DIR}/set-output-sort.tesh
+  ${CMAKE_CURRENT_SOURCE_DIR}/set-output-sort-1.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/set-return.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/set-signal.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/set-timeout.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/background.tesh
-  ${CMAKE_CURRENT_SOURCE_DIR}/basic2.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/basic.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/bg-basic.tesh
   ${CMAKE_CURRENT_SOURCE_DIR}/bg-set-signal.tesh
index 5f4e02b..f6e79f9 100644 (file)
@@ -1008,8 +1008,8 @@ p First, a write test
 < 997 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 < 998 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 < 999 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-$ wc -c
-> 150000
+$ sed -n '$='
+> 1000
 
 p And now, a read/write test
 
index d8c8f68..32289af 100644 (file)
@@ -9,10 +9,17 @@ $ mkfile tmp_fich
 $ cat tmp_fich
 > TOTO TUTU
 
+! expect return 2
+! output ignore
+< $ cat tmp_fich
+< > TUTU TOTO
+$ ${bindir:=.}/tesh --enable-coverage
+
 $ rm tmp_fich
 
 p And now, some multilines examples
 
+p Really basic multiline
 < a
 < b
 < c
@@ -25,27 +32,132 @@ $ cat tmp_fich
 > c
 > d
 
-$ wc -l tmp_fich
-> 4 tmp_fich
+$ sed -n '$=' tmp_fich
+> 4
 
 $ rm tmp_fich
 
-$ ${bindir:=.}/tesh --enable-coverage --log='log.thresh:info tesh.fmt:%m%n' basic2.tesh
-> Enable coverage
-> Test suite `basic2'
-> [basic2:3] Test sorting and filtering of output
-> [basic2:5] true
-> [basic2:8] true
-> [basic2:10] printf 'profiling: foo\\n'
-> [basic2:12] printf 'profiling: foo'
-> [basic2:15] printf 'profiling: foo\\n'
-> [basic2:18] printf 'profiling: foo'
-> [basic2:20] printf 'a\\nb\\nc\\nd\\n'
-> [basic2:26] printf 'a\\nb\\nc\\nd'
-> [basic2:33] printf 'c\\nd\\nb\\na\\n'
-> [basic2:40] printf 'c\\nd\\nb\\na'
-> [basic2:46] printf 'a\\nprofiling: foo\\nprofiling: bar\\nb\\nc\\nd\\nprofiling: baz\\n'
-> [basic2:52] printf 'a\\nprofiling: foo\\nprofiling: bar\\nb\\nc\\nd\\nprofiling: baz'
-> [basic2:59] printf 'c\\nprofiling: foo\\nprofiling: bar\\nd\\nb\\na\\nprofiling: baz\\n'
-> [basic2:66] printf 'c\\nprofiling: foo\\nprofiling: bar\\nd\\nb\\na\\nprofiling: baz'
-> Test suite `basic2' OK
+p Now, check for spaces in input
+
+p * leading and trailing spaces...
+<   a
+<  b 
+< c  
+$ sed 's/ /_/g'
+> __a
+> _b_
+> c__
+
+p * empty lines...
+< a
+<
+< c
+$ sed '2s/^/b/'
+> a
+> b
+> c
+
+<
+< b
+< c
+$ sed '1s/^/a/'
+> a
+> b
+> c
+
+p Now that input should be good, check for spaces in output
+
+p * leading spaces...
+< _x
+$ sed 's/_/ /'
+>  x
+
+! expect return 2
+! output ignore
+< < _x
+< $ sed 's/_/ /'
+< > x
+$ ${bindir:=.}/tesh --enable-coverage
+
+! expect return 2
+! output ignore
+< < x
+< $ cat
+< >  x
+$ ${bindir:=.}/tesh --enable-coverage
+
+p * trailing spaces...
+< x_
+$ sed 's/_/ /'
+> x 
+
+! expect return 2
+! output ignore
+< < x_
+< $ sed 's/_/ /'
+< > x
+$ ${bindir:=.}/tesh --enable-coverage
+
+! expect return 2
+! output ignore
+< < x
+< $ cat
+< > x 
+$ ${bindir:=.}/tesh --enable-coverage
+
+p * empty lines...
+< a
+<
+< c
+$ cat
+> a
+>
+> c
+
+! expect return 2
+! output ignore
+< < a
+< <
+< < c
+< $ cat
+< > a
+< > c
+$ ${bindir:=.}/tesh --enable-coverage
+
+! expect return 2
+! output ignore
+< < a
+< < c
+< $ cat
+< > a
+< >
+< > c
+$ ${bindir:=.}/tesh --enable-coverage
+
+<
+< b
+< c
+$ cat
+>
+> b
+> c
+
+! expect return 2
+! output ignore
+< <
+< < b
+< < c
+< $ cat
+< > b
+< > c
+$ ${bindir:=.}/tesh --enable-coverage
+
+! expect return 2
+! output ignore
+< < b
+< < c
+< $ cat
+< >
+< > b
+< > c
+$ ${bindir:=.}/tesh --enable-coverage
index 94bf5c8..ea794f1 100644 (file)
@@ -21,7 +21,7 @@ $ ../tesh --enable-coverage --log='log.thresh:info tesh.fmt:%m%n'
 > Test suite from stdin
 > [(stdin):1] ./return1
 > Test suite `(stdin)': NOK (<(stdin):1> returned code 1)
-> Output of <(stdin):1> so far: 
+> Output of <(stdin):1> so far:
 > ||
 
 $ cd ..
index 7cde981..5c7b45f 100644 (file)
@@ -22,7 +22,7 @@ $ ../tesh --enable-coverage --log='log.thresh:info tesh.fmt:%m%n'
 > Test suite from stdin
 > [(stdin):1] ./segfault
 > Test suite `(stdin)': NOK (<(stdin):1> got signal SIGSEGV)
-> Output of <(stdin):1> so far: 
+> Output of <(stdin):1> so far:
 > ||
 
 $ cd ..
index 8bfa7c7..5768cf9 100644 (file)
@@ -795,8 +795,6 @@ void *rctx_wait(void *r)
   }
   xbt_strbuff_chomp(rctx->output_got);
   xbt_strbuff_chomp(rctx->output_wanted);
-  xbt_strbuff_trim(rctx->output_got);
-  xbt_strbuff_trim(rctx->output_wanted);
 
   /* Check for broken pipe */
   if (rctx->brokenpipe)
@@ -871,7 +869,7 @@ void *rctx_wait(void *r)
     xbt_dynar_t a = xbt_str_split(rctx->output_got->data, "\n");
     char *out = xbt_str_join(a, "\n||");
     xbt_dynar_free(&a);
-    XBT_INFO("Output of <%s> so far: \n||%s", rctx->filepos, out);
+    XBT_INFO("Output of <%s> so far:\n||%s", rctx->filepos, out);
     free(out);
   } else if (rctx->output == e_output_check
              && (rctx->output_got->used != rctx->output_wanted->used
@@ -893,7 +891,7 @@ void *rctx_wait(void *r)
     xbt_dynar_t a = xbt_str_split(rctx->output_got->data, "\n");
     char *out = xbt_str_join(a, "\n||");
     xbt_dynar_free(&a);
-    XBT_INFO("Here is the (ignored) command output: \n||%s", out);
+    XBT_INFO("Here is the (ignored) command output:\n||%s", out);
     free(out);
   }
 
similarity index 98%
rename from tools/tesh/basic2.tesh
rename to tools/tesh/set-output-sort-1.tesh
index b95065e..c009b4a 100644 (file)
@@ -1,5 +1,3 @@
-#! ./tesh
-
 p Test sorting and filtering of output
 
 $ true
diff --git a/tools/tesh/set-output-sort.tesh b/tools/tesh/set-output-sort.tesh
new file mode 100644 (file)
index 0000000..c2856a2
--- /dev/null
@@ -0,0 +1,73 @@
+#! ./tesh
+
+p This tests whether TESH correctly sorts command output
+
+$ ${bindir:=.}/tesh --enable-coverage --log='log.thresh:info tesh.fmt:%m%n' set-output-sort-1.tesh
+> Enable coverage
+> Test suite `set-output-sort-1'
+> [set-output-sort-1:1] Test sorting and filtering of output
+> [set-output-sort-1:3] true
+> [set-output-sort-1:6] true
+> [set-output-sort-1:8] printf 'profiling: foo\\n'
+> [set-output-sort-1:10] printf 'profiling: foo'
+> [set-output-sort-1:13] printf 'profiling: foo\\n'
+> [set-output-sort-1:16] printf 'profiling: foo'
+> [set-output-sort-1:18] printf 'a\\nb\\nc\\nd\\n'
+> [set-output-sort-1:24] printf 'a\\nb\\nc\\nd'
+> [set-output-sort-1:31] printf 'c\\nd\\nb\\na\\n'
+> [set-output-sort-1:38] printf 'c\\nd\\nb\\na'
+> [set-output-sort-1:44] printf 'a\\nprofiling: foo\\nprofiling: bar\\nb\\nc\\nd\\nprofiling: baz\\n'
+> [set-output-sort-1:50] printf 'a\\nprofiling: foo\\nprofiling: bar\\nb\\nc\\nd\\nprofiling: baz'
+> [set-output-sort-1:57] printf 'c\\nprofiling: foo\\nprofiling: bar\\nd\\nb\\na\\nprofiling: baz\\n'
+> [set-output-sort-1:64] printf 'c\\nprofiling: foo\\nprofiling: bar\\nd\\nb\\na\\nprofiling: baz'
+> Test suite `set-output-sort-1' OK
+
+p Check the default prefix length (19) for "output sort"
+! output sort
+< 12345678901234567 B line
+< 12345678901234567 A line
+$ cat
+> 12345678901234567 A line
+> 12345678901234567 B line
+
+! output sort
+< 123456789012345678 B line
+< 123456789012345678 A line
+$ cat
+> 123456789012345678 B line
+> 123456789012345678 A line
+
+! expect return 2
+! output ignore
+< ! output sort
+< < 123456789012345678 B line
+< < 123456789012345678 A line
+< $ cat
+< > 123456789012345678 A line
+< > 123456789012345678 B line
+$ ${bindir:=.}/tesh --enable-coverage
+
+p Check user-defined prefix length for "output sort"
+! output sort 5
+< 000 B line
+< 000 A line
+$ cat
+> 000 A line
+> 000 B line
+
+! output sort 4
+< 000 B line
+< 000 A line
+$ cat
+> 000 B line
+> 000 A line
+
+! expect return 2
+! output ignore
+< ! output sort 4
+< < 000 B line
+< < 000 A line
+< $ cat
+< > 000 A line
+< > 000 B line
+$ ${bindir:=.}/tesh --enable-coverage