Disclaimer ---------- This is a pre alpha version of p2psim. We would value your feedback with suggestions and improvements. Compiling p2psim ---------------- Please see INSTALL for compilation instructions. Also, see: http://pdos.lcs.mit.edu/p2psim/howto.html Running p2psim -------------- You'll need to create 3 files first. A topology file, a protocol file, and an events file. Look at example/topology.txt for the syntax and an example of a topology file. Look at example/protocol.txt for the syntax and an example of a protocol file. Look at example/events.txt for the syntax and an example of an events file. p2psim/p2psim [protocolfile] [topologyfile] [eventsfile] Scripts ------- - run-simulations.pl: scripts/run-simulations.pl allows you to iterate (randomly or sequentially) through different parameter configurations of a particular protocol. To run, make a file containing the names of all the parameters to test, and the values those parameters should take. For example: base 1 2 3 4 timer 200 400 600 bigtimer *timer 2 4 littlebase <=base 1 2 3 4 base can take on values 1 through 4, and timer can take on 200, 400, or 600. bigtimer will be equal to either twice or 4 times the timer value, and littlebase can be 1 through 4, but is constrained to be less than or equal to the value of base. Other modifiers include "=", "+", "<", and ">". For examples of some parameter files, see the {tapestry, chord, kademlia, kelips}_args files in example/. Run 'scripts/run-simulations.pl --help' to see the available options. It uses the ChurnEventGenerator to generate events. An example execution might be: scripts/run-simulations.pl --protocol tapestry --topology example/silly-top.txt --lookupmean 1000 --lifemean 100000 --deathmean 100000 --exittime 200000 --args example/tapestry_args --logdir /tmp/p2psimtest --randomize 100 Your logs will be in the directory /tmp/p2psimtest, which will be created if it doesn't already exist. Questions? ---------- Please see our FAQ at: http://pdos.lcs.mit.edu/p2psim/faq.html, or send us email at p2psim-dev@pdos.lcs.mit.edu.