- For questions or remarks, drop us an email on the `user mailing
list <mailto:simgrid-user@lists.gforge.inria.fr>`_ (to subscribe,
visit the `web interface
- <http://lists.gforge.inria.fr/mailman/listinfo/simgrid-user>`_);
+ <http://lists.gforge.inria.fr/mailman/listinfo/simgrid-user>`__);
you can also check out `our archives
<http://lists.gforge.inria.fr/pipermail/simgrid-user/>`_. We
prefer you to **not use private emails**. SimGrid is an open
framework, and you never know who have the time and knowledge to
answer your question, so please keep messages on the public mailing
list.
- - Join us on IRC and ask your question directly on the channel \#simgrid at
- ``irc.debian.org``
- (or use the ugly `web interface <https://webchat.oftc.net/?channels=%23simgrid>`_
- if you don't have a
- `real client <https://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients>`_
- installed). When no non-french speaker are connected, we usually
- chat in french on this channel, but we do switch back to english
- when we have a guest.
- Be warned that even if many people are connected to
- the chanel, they may not be staring at their IRC windows.
- So don't be surprised if you don't get an answer in the
- second, and turn to the mailing lists if nobody seems to be there.
- The logs of this channel are publicly
- `available online <http://colabti.org/irclogger/irclogger_logs/simgrid>`_,
- so may also want to check in a few hours if someone answered after
- you left.
+ - If you want to chat with the community, join us on `Mattermost
+ <https://framateam.org/simgrid/channels/town-square>`_. Be warned
+ that even if many people are connected to the channel, they may not
+ be staring at their chat windows. So don't be surprised if you
+ don't get an answer in the second, and please be patient.
+
+ If you prefer, you can reach us on IRC on \#simgrid at
+ ``irc.debian.org`` (the `logs are available
+ <http://colabti.org/irclogger/irclogger_logs/simgrid>`_). When no
+ non-french speaker are connected, we usually chat in french on
+ these channel, but we do switch back to english when we have a
+ guest.
- Asking your question on
`StackOverflow <http://stackoverflow.com/questions/tagged/simgrid>`_
There are many ways to help the SimGrid project. The first and most
natural one is to **use SimGrid for your research, and say so**. Cite
the SimGrid framework in your papers and discuss of its advantages with
-your colleagues to spread the word. When we ask for new fundings to
-sustain the project, the amount of publications enabled by SimGrid is
+your colleagues to spread the word. When we ask for new funding to
+sustain the project, the number of publications enabled by SimGrid is
always the first question we get. The more you use the framework,
the better for us.
Make sure that your scientific publications using SimGrid actually
-cite the `right paper <https://simgrid.org/Publications.html>`_.
+cite the `right paper <https://simgrid.org/publications.html>`_.
Also make sure that these citations are correctly listed on
-`our list <https://simgrid.org/Usages.html>`_.
+`our list <https://simgrid.org/usages.html>`_.
You can also **help us constituting an active and welcoming user
community**. Subscribe to the mailing lists, and answer the
part of our community too.
Another easy way to help the project is to add a link to the `SimGrid
-homepage <simgrid.org>`_ on your site to improve SimGrid's ranking in
+homepage <https://simgrid.org>`_ on your site to improve SimGrid's ranking in
search engines.
Finally, if you organize a scientific event where you expect many
- cleanup, refactoring, usage of C++ features.
- - The state comparison code works by infering types of blocks allocated on the
+ - The state comparison code works by inferring types of blocks allocated on the
heap by following pointers from known roots (global variables, local
variables). Usually the first type found for a given block is used even if
a better one could be found later. By using a first pass of type inference,
- We might benefit from adding logic for handling some known types. For
example, both `std::string` and `std::vector` have a capacity which might
be larger than the current size of the container. We should ignore
- the corresponding elements when comparing the states and infering the types.
+ the corresponding elements when comparing the states and inferring the types.
- Another difficulty in the state comparison code is the detection of
dangling pointers. We cannot easily know if a pointer is dangling and
- dangling pointers might lead us to choose the wrong type when infering
+ dangling pointers might lead us to choose the wrong type when inferring
heap blocks. We might mitigate this problem by delaying the reallocation of
a freed block until there is no blocks pointing to it anymore using some
sort of basic garbage-collector.
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
+state comparison algorithm. Some information should not be included in the
hash in order to avoid considering different states which would otherwise
would have been considered equal.
by the number of processes and the amount of heap currently allocated
(see `DerefAndCompareByNbProcessesAndUsedHeap`).
-Good candidate informations for the state hashing:
+Good candidate information for the state hashing:
- number of processes;
Interface with the model-checked processes
""""""""""""""""""""""""""""""""""""""""""
-The model-checker reads many information about the model-checked process by
+The model checker reads many information about the model-checked process by
`process_vm_readv()`-ing brutally the data structure of the model-checked
process leading to some inefficient code such as maintaining copies of complex
C++ structures in XBT dynars. We need a sane way to expose the relevant
-information to the model-checker.
+information to the model checker.
Generic simcalls
""""""""""""""""
We have introduced some generic simcalls which can be used to execute a
-callback in SimGrid Maestro context. It makes it a lot easier to interface
+callback in a SimGrid Maestro context. It makes it a lot easier to interface
the simulated process with the maestro. However, the callbacks for the
-model-checker which cannot decide how it should handle them. We would need a
+model checker which cannot decide how it should handle them. We would need a
solution for this if we want to be able to replace the simcalls the
-model-checker cares about by generic simcalls.
+model checker cares about by generic simcalls.
Defining an API for writing Model-Checking algorithms
"""""""""""""""""""""""""""""""""""""""""""""""""""""
Currently, writing a new model-checking algorithms in SimGridMC is quite
difficult: the logic of the model-checking algorithm is mixed with a lot of
-low-level concerns about the way the model-checker is implemented. This makes it
+low-level concerns about the way the model checker is implemented. This makes it
difficult to write new algorithms and difficult to understand, debug, and modify
the existing ones. We need a clean API to express the model-checking algorithms
in a form which is closer to the text-book/paper description. This API must
-be exposed in a a language which is more adequate to this task.
+be exposed in a language which is more adequate to this task.
Tasks: