Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
kill msg_mailbox_t entierely
[simgrid.git] / doc / doxygen / community_giveback.doc
index a1e8a61..cc428d0 100644 (file)
@@ -147,6 +147,11 @@ Some support for C++11-style time/duration is implemented (see `chrono.hpp`)
 but only available in some (S4U) APIs. It would be nice to add support for
 them in the rest of the C++ code.
 
+A related change would be to avoid using "-1" to mean "forever" at least in S4U
+and in the internal code. For compatibility, MSG should probably keep this
+semantic. We should probably always use separate functions
+(`wait` vs `wait_for`).
+
 @subsubsection contributing_todo_futures Futures
 
  - Some features are missing in the Maestro future implementation
@@ -265,6 +270,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.
 
+@subsubsection contributing_todo_state_hashing Hashing 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