pads:lunesinst
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
pads:lunesinst [2014/09/26 04:52] – [Appendix A: trace files] gdangelo | pads:lunesinst [2019/11/15 12:54] – gda | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== LUNES HOWTO ====== | ||
+ | |||
+ | The goal of this document is to provide a basic installation and usage guide for the LUNES software. | ||
+ | |||
+ | ===== Prerequisites ===== | ||
+ | |||
+ | * **GNU/ | ||
+ | * **Bash shell**: command line usage | ||
+ | * **LUNES**: general structure, please see [[http:// | ||
+ | * **Gossip protocols**: | ||
+ | * LUNES is implemented on top of the ARTÌS/GAIA software, please see the related [[pads: | ||
+ | |||
+ | ===== Assumptions ===== | ||
+ | |||
+ | * **UBUNTU Linux 12.04.1**: desktop version, fully updated | ||
+ | * **ARTÌS/ | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | ==== Download ==== | ||
+ | |||
+ | The last version of the LUNES software can be freely downloaded from the [[pads: | ||
+ | |||
+ | LUNES is provided as part of the ARTÌS/GAIA distribution or as a standalone archive. In the first case all the LUNES files are already placed in the ARTÌS-x.y.z/ | ||
+ | |||
+ | For a complete installation and setup guide of ARTÌS/GAIA please see its specific howto: [[pads: | ||
+ | |||
+ | ==== Missing libraries ==== | ||
+ | |||
+ | <color # | ||
+ | |||
+ | | name ^ description | ||
+ | ^ libigraph0 | ||
+ | ^ libigraph0-dev | ||
+ | |||
+ | <color # | ||
+ | < | ||
+ | sudo apt-get install libigraph0 libigraph0-dev | ||
+ | </ | ||
+ | |||
+ | ==== Working directory ==== | ||
+ | |||
+ | LUNES needs <fc # | ||
+ | |||
+ | <fc # | ||
+ | |||
+ | ===== Basic Usage ===== | ||
+ | |||
+ | |||
+ | ==== A simple example ==== | ||
+ | |||
+ | In this case our goal is to simulate a gossip protocol called " | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | cd ARTIS-2.0.4/ | ||
+ | </ | ||
+ | |||
+ | The LUNES simulator is provided as source code and therefore needs to be compiled before usage, a Makefile is provided. | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | make | ||
+ | </ | ||
+ | |||
+ | If the compilation is successful then the **get_coverage_next**, | ||
+ | |||
+ | To run LUNES it is possible to use the specific shell scripts provided to build the graphs, simulate the dissemination protocol and, finally, analyze the results. A better approach would be using the all-in-one shell scripts. For example: **sim-metrics-broadcast**, | ||
+ | |||
+ | The first step is to prepare the corpus to be used in the simulation runs. In the LUNES distribution (i.e. in the **example_corpuses** directory) are provided some corpuses that can be used for this purpose. | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | tar xvfz example-corpuses/ | ||
+ | </ | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | ln -s / | ||
+ | </ | ||
+ | |||
+ | Most of simulation parameters can be controlled using the parameters found in the **scripts_configuration.sh** and in the first part of the evaluation script (in this case the **sim-metrics-broadcast-corpus**). For example, each corpus is composed of 100 graphs but in this case, to reduce the running time, we are going to evaluate the broadcast protocol on smaller set of graphs. This can be done editing the **scripts_configuration.sh** and modifying the **NUMBERRUNS** parameter. | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | [...] | ||
+ | # | ||
+ | # Total number of runs per each configuration | ||
+ | # (for statistical purposes) | ||
+ | NUMBERRUNS=100 | ||
+ | # | ||
+ | [...] | ||
+ | </ | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | [...] | ||
+ | # | ||
+ | # Total number of runs per each configuration | ||
+ | # (for statistical purposes) | ||
+ | NUMBERRUNS=10 | ||
+ | # | ||
+ | [...] | ||
+ | </ | ||
+ | |||
+ | The **sim-metrics-broadcast-corpus** is intended for testing the gossip protocol in presence of a full range of dissemination probabilities. Also in this case it is possible to cut the running time reducing the number of tests to be done. | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | [...] | ||
+ | # | ||
+ | # Dissemination probability | ||
+ | DISPROB=" | ||
+ | # | ||
+ | [...] | ||
+ | </ | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | [...] | ||
+ | # | ||
+ | # Dissemination probability | ||
+ | DISPROB=" | ||
+ | # | ||
+ | [...] | ||
+ | </ | ||
+ | |||
+ | Now it is possible to start the simulation. The evaluation script will run the dissemination protocol on 10 graphs in the corpus and for each graph will test 3 different configurations (dissemination probability = {10, 30, 50}). | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | ./ | ||
+ | </ | ||
+ | |||
+ | After a some amount of time in the **/ | ||
+ | * **broadcast-100-lp1-migr0-prob10-mfactor1.2-load0** | ||
+ | * **broadcast-100-lp1-migr0-prob30-mfactor1.2-load0** | ||
+ | * **broadcast-100-lp1-migr0-prob50-mfactor1.2-load0** | ||
+ | Each directory contains the results for the adaptive broadcast gossip protocol when run with the given dissemination probability. For example, in the **broadcast-100-lp1-migr0-prob50-mfactor1.2-load0** the file **broadcast-STATS.dat** contains the following results: | ||
+ | |||
+ | <fc # | ||
+ | < | ||
+ | 100 | ||
+ | </ | ||
+ | |||
+ | | column | ||
+ | ^ 1 | 100 | //Number of nodes in each graph of the corpus// | ||
+ | ^ 2 | 63.781000 | ||
+ | ^ 3 | 4.304000 | ||
+ | ^ 4 | 5029901.200000 | ||
+ | ^ 5 | 1.056000 | ||
+ | |||
+ | For a better description of the metrics used in the performance evaluation please see please see [[http:// | ||
+ | |||
+ | ===== Bug reports ===== | ||
+ | |||
+ | Bug reports are always welcome but before reporting please check the following: | ||
+ | |||
+ | * do you have enough free disk space for a correct execution of LUNES? | ||
+ | * are you able to reproduce the bug using the " | ||
+ | |||
+ | Please report a detailed description of each bug using the e-mail address provided in the [[pads: | ||
+ | |||
+ | * the command line used for running the LUNES experiment; | ||
+ | * a tarball containing the whole **artis/ | ||
+ | * the " | ||
+ | * the " | ||
+ | |||
+ | Please consider that all such data can be very large, the usage of the Dropbox sharing functionality is strongly encouraged. | ||
+ | |||
+ | **Finally, the whole LUNES software is provided as source code. Therefore, please feel free to investigate the bugs and correct them, your patches will be very appreciated.** | ||
+ | |||
+ | ===== Appendix A: trace files ===== | ||
+ | |||
+ | As described above, LUNES produces a large amount of trace files that are stored in the working directory (the default is **/ | ||
+ | |||
+ | The file structure is very simple: | ||
+ | STAT < | ||
+ | |||
+ | In the current version there are only thee operations that are implemented: | ||
+ | |||
+ | ^ Operation | ||
+ | | STAT GEN | parameter | ||
+ | | STAT RCV | parameter1 parameter2 parameter3 [parameter4] | ||
+ | | STAT MSG | parameter | ||
pads/lunesinst.txt · Last modified: 2019/11/15 12:56 by gda