Context
Understanding how a distributed algorithm works can be very complicated. This is because, unlike centralized algorithms, we are dealing with different processes that coordinate with each other thanks to the exchange of messages. Each process is characterized by a set of variables that form its state. Depending on which message it receives and when, it updates its status in accordance with it and possibly sends additional messages.
Below is a scenario where the interactions between processes in terms of messages exchanged are mainly highlighted. In some cases, the impact that the message has on the status of the process that receives it is represented.
Below is the status of each process and how this evolves over time with respect to the messages exchanged.
Objectives:
The goal of the thesis work is to allow a designer / user to understand the functioning of distributed algorithms. The objective is the design and development of a Visual Analytics environment that allows the following features:
Understanding:
· Overview of how the algorithm works: Visualize the execution of a predetermined distributed algorithm to understand how its execution takes place.
· Views and interaction with detail: Being able to have different visualizations at different grains, to be able to see both the details of the exchange of messages and the impact on the status of the processes.
· Explainability / what-if scenario: Being able to understand for example the usefulness of variables, what happens if we remove it? In what scenarios is it useful?
Design:
· Environment of creating a new distributed algorithm: Have support for the definition of new distributed algorithms, to be able to visualize critical scenarios and dynamically see the impact of the changes to the algorithms on them.
These characteristics are ordered below through an appropriate sequence of sub-objectives that the thesis should realize:
Basic steps:
1. Take a predetermined algorithm that we want to use as a case study
2. Represent the algorithm in an intermediate format to be encoded in the system.
3. Provide a visualization of the algorithm with predetermined scenarios, to allow those who do not know anything to already have an idea of how the execution of the algorithm in question takes place.
4. Allow the user to play with the display
5. Allow the user to define his scenarios
Advanced steps:
6. Being able to modify the algorithm / insert an algorithm from scratch
7. Have post-analysis intelligence that helps you define scenarios
The thesis has as its place of development the headquarters of CEA Saclay [1], and would be co-followed by a supervisor at Sapienza and a supervisor at CEA.
Where: CEA Saclay [1], sito Nano-Innov. In Paris-Saclay[2].
Who: We are a research laboratory specialized in Blockchain across different disciplines: distributed systems, multi-agent systems, formal systems and game theory.
We are about ten people of various origins: Italy, France, Turkey, Spain, Togo, Algeria and Madagascar.
When: Internships start around March. For security reasons, dossiers take about three months to be approved. So it means starting the procedures in December.
How: The CEA is a research center, it is required the presence on the site but you have the possibility to work in smart one day a week. Internships are paid and the CEA provides help to pay rent and public transport.
It is also possible to benefit, in parallel with what is offered by CEA, of an additional subsidy provided by Sapienza through the ERASMUS+ program regarding theses and internship periods abroad: https://www.uniroma1.it/it/pagina/erasmus-traineeship
If interested, write an email to: angelini AT diag DOT uniroma1 DOT it
reporting in the subject "CEA Thesis". At that point we will set up a cognitive meeting and define the next steps.
[1] https://it.wikipedia.org/wiki/Commissariat_%C3%A0_l%27%C3%A9nergie_atomique_et_aux_%C3%A9nergies_alternatives
[2] https://it.wikipedia.org/wiki/Paris-Saclay