Admin

News

The last commits for conyar added support for internal versi (...)
New C++ framework for distributed systems (...)

GPL v3
Valid XHTML 1.1
Valid CSS!

D3SF - Distributed Synchronous System Simulation Framework for C++

Author: Markus Pargmann   Created: 17 April 2010   Last update: 17 April 2010   Revision: 1
This framework can simulate synchronous distributed systems with directed edges/connections. The framework can read an adjacency list from a file and also can print a list in this format.

Adjacency list format

The format is really simple. Every line has to start with the node-name of the start node. The aim nodes are following comma-seperated. Every node-name has to be an integer.

Sample:
1,2
2,3
3,1
This list constructs a graph with the nodes 1, 2 and 3. Those nodes are connected in a cycle, 1 to 2, 2 to 3 and 3 to 1.

Main public node functions

There are 3 main functions you should use for your distributed system simulation:
  • insert - inserts an edge from this node to another one
  • remove - removes an edge
  • message - sends a message to this node

Download

Documentation

doxygen html
doxygen pdf

Compiling

Targets for make:
  • all - compiles the object-files of the two main framework files (node.o and world.o)
  • sample - compiles the sample executable, which loads a list file and let the graph converge
  • random_graph - compiles a randomgraph generator

makefile variables

Possible are the values 0 and 1, where 1 means enabled.
  • DEBUG - enable debugging output
  • MESSAGE_CHECKS - enable the check if the receiver is a neighbour
  • ALLOW_DOUBLE_EDGES - allow more than one edge between two edges

Notes

After inserting edges or something else through functions of the world class, you first have to call tick of the world to generate the edges/nodes.

License

/*
 * Copyright (C) 2010 scosu (http://allfex.org)
 *
 * This file is part of d3sf.
 *
 * d3sf is a framework to simulate synchronous distributed systems.
 *
 *
 * d3sf is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * d3sf is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with libudpox.  If not, see <http://www.gnu.org/licenses/>.
 */
Statistics
Current visitors: 2
Visitors: 9795
Site views: 229
Website views: 14605