Download report - Distributed Computing Group

Transcript
Chapter 1
Introduction
1.1
Motivation
A distributed computing environment can often be described with a graph,
where the vertices represent the computing devices and the edges represent the
connections between them. One first approach to solve a problem on such a
graph is to gather all necessary information at a single device, compute the
solution, and send it back to the nodes. However, for many problems, we can
achieve much better performance if each vertex computes the solution based on
its local view.
An algorithm that computes the solution (or an approximation) based on
partial information of the problem is called local. Developing and analyzing
such local algorithms is a non-trivial task, mostly intuit. Such algorithms are
often ’executed’ with paper and pencil on small graphs to verify the correctness
or understand certain properties. This paperwork is very vulnerable to errors
and very slow. Additionally it is not possible to execute huge simulations with
1000s of nodes by hand. In order to facilitate this work, we built this simulation
tool.
1.2
Assignment
The task of this thesis is to develop a simulation framework for local algorithms
that runs on graphs. We are looking for a generic tool that allows us to quickly
implement algorithms and run it on several distinct graphs, rendering unnecessary the tedious and error-prone paper and pencil work. As we want to simulate
the algorithms not only on small graphs of about 10 to 100 nodes but also on
graphs of the size of 10’000s or even 100’000s of nodes, performance is also an
important issue.
To test the algorithms in a more realistic model we want the algorithms not
only to run on static graphs but also in a dynamic environment. Another important point is to have an easy way of specifying the graphs and their behavior.
This behavior could be the mobility of the nodes, the connectivity of the graph
and so on. We want the framework to allow the user to specify the environment in a plug-in-style where one can run the same algorithm with different
configurations by combining different behavior models.
5