Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] More documentation
authorGabriel Corona <gabriel.corona@loria.fr>
Thu, 21 Jul 2016 11:37:45 +0000 (13:37 +0200)
committerGabriel Corona <gabriel.corona@loria.fr>
Thu, 21 Jul 2016 11:37:45 +0000 (13:37 +0200)
doc/doxygen/community_giveback.doc
doc/doxygen/uhood.doc

index a1e8a61..7f08d50 100644 (file)
@@ -265,6 +265,35 @@ It is in need or an overhaul:
     a freed block until there is no blocks pointing to it anymore using some
     sort of basic garbage-collector.
 
     a freed block until there is no blocks pointing to it anymore using some
     sort of basic garbage-collector.
 
+@subsubsection contributing_todo_state_hashing Hasing the states
+
+In order to speed up the state comparison an idea was to create a hash of the
+state. Only states with the same hash would need to be compared using the
+state comparison algorithm. Some information should not be inclueded in the
+hash in order to avoid considering different states which would otherwise
+would have been considered equal.
+
+The stated could be indexed by their hash. Currently they are indexed
+by the number of processes and the amount of heap currently allocated
+(see `DerefAndCompareByNbProcessesAndUsedHeap`).
+
+Good candidate informations for the state hashing:
+
+ - number of processes;
+
+ - their backtraces (instruction addresses);
+
+ - their current simcall numbers;
+
+ - some simcall arguments (eg. number of elements in a waitany);
+
+ - number of pending communications;
+
+ - etc.
+
+Some basic infrastructure for this is already in the code (see `mc_hash.cpp`)
+but it is currently disabled.
+
 @subsubsection contributing_todo_mc_separation Separate the model-checker code from libsimgrid
 
 @subsubsection contributing_todo_mc_mced_interface Interface with the model-checked processes
 @subsubsection contributing_todo_mc_separation Separate the model-checker code from libsimgrid
 
 @subsubsection contributing_todo_mc_mced_interface Interface with the model-checked processes
index be3ce71..7a750df 100644 (file)
@@ -205,7 +205,7 @@ The current implementation of the model-checker uses two distinct processes:
 
  - the SimGrid model-checker (`simgrid-mc`) itself lives in the parent process;
 
 
  - the SimGrid model-checker (`simgrid-mc`) itself lives in the parent process;
 
- - it spaws a child process for the SimGrid simulator/mastro and the simulated
+ - it spaws a child process for the SimGrid simulator/maestro and the simulated
    processes.
 
 They communicate using a `AF_UNIX` `SOCK_DGRAM` socket and exchange messages
    processes.
 
 They communicate using a `AF_UNIX` `SOCK_DGRAM` socket and exchange messages
@@ -215,15 +215,15 @@ set to the file descriptor of this socket in the child process.
 The model-checker analyzes, saves and restores the state of the model-checked
 process using the following techniques:
 
 The model-checker analyzes, saves and restores the state of the model-checked
 process using the following techniques:
 
-* the model-checker reads and writes in the model-checked address space;
+- the model-checker reads and writes in the model-checked address space;
 
 
-* the model-cheker `ptrace()`s the model-checked process and is thus able to
+- the model-cheker `ptrace()`s the model-checked process and is thus able to
   know the state of the model-checked process if it crashes;
 
   know the state of the model-checked process if it crashes;
 
-* DWARF debug informations are used to unwind the stack and identify local
+- DWARF debug informations are used to unwind the stack and identify local
   variables;
 
   variables;
 
-* a custom heap is enabled in the model-checked process which allows the model
+- a custom heap is enabled in the model-checked process which allows the model
   checker to know which chunks are allocated and which are freed.
 
 \subsection simgrid_uhood_mc_address_space Address space
   checker to know which chunks are allocated and which are freed.
 
 \subsection simgrid_uhood_mc_address_space Address space