|
| 1 | + MoufoPlot README |
| 2 | + Copyright (C) 2012 Vasileios Porpodas <v DOT porpodas AT ed.ac.uk> |
| 3 | + |
| 4 | + MoufoPlot is free software; you can redistribute it and/or modify it under |
| 5 | + the terms of the GNU General Public License as published by the Free |
| 6 | + Software Foundation; either version 3, or (at your option) any later |
| 7 | + version. |
| 8 | + |
| 9 | + MoufoPlot is distributed in the hope that it will be useful, but WITHOUT ANY |
| 10 | + WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| 11 | + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| 12 | + for more details. |
| 13 | + |
| 14 | + You should have received a copy of the GNU General Public License |
| 15 | + along with MoufoPlot; see the file COPYING3. If not see |
| 16 | + <http://www.gnu.org/licenses/>. |
| 17 | + |
| 18 | + |
| 19 | +About |
| 20 | +----- |
| 21 | + MoufoPlot is an easy-to-use terminal based gnuplot front-end. |
| 22 | + |
| 23 | + Why is it easy? |
| 24 | + 1. No need to know gnuplot or to write any gnuplot related scripts. |
| 25 | + 2. No need to worry about data files or their format. |
| 26 | + 3. Control all important plot attributes using command line switches. |
| 27 | + |
| 28 | + It completely decouples the process of generating the measurements from the |
| 29 | + process of plotting them. |
| 30 | + |
| 31 | + |
| 32 | +Features |
| 33 | +-------- |
| 34 | + 1. Completely decouple the process of generating data from plotting them. |
| 35 | + 2. Use a single MoufoPlot command to select data and plot them. |
| 36 | + 3. Select between several plot types: |
| 37 | + Bar graphs (simple, stacked, clustered, stacked & clustered) |
| 38 | + Line graphs |
| 39 | + 2D Heat maps |
| 40 | + 4. Platform independent (bash script). |
| 41 | + 5. On-the-fly generation of average. (EXPERIMENTAL). |
| 42 | + |
| 43 | + |
| 44 | +Installation |
| 45 | +------------ |
| 46 | + If you don't want to install MoufoPlot, just run it straight away: |
| 47 | + $ ./moufoplot [OPTIONS] |
| 48 | + |
| 49 | + If you insist on installing it, just copy it to a directory in your path: |
| 50 | + $ sudo cp moufoplot /usr/local/bin/ |
| 51 | + |
| 52 | + OR (if you are lazy enough) just run the install script: |
| 53 | + ./install |
| 54 | + |
| 55 | + |
| 56 | +Basic Concepts |
| 57 | +-------------- |
| 58 | + 1. Generate Data |
| 59 | + The input of MoufPlot should be placed in a directory (let's say data/). |
| 60 | + Each data number should be placed in a single file. |
| 61 | + The file name is crucial: |
| 62 | + a. Obviously each file name should be unique |
| 63 | + b. It should encode the parameters used to generate this data, |
| 64 | + separated by '_' |
| 65 | + For example: size4k_assoc8_cycles is a valid name that corresponds to the |
| 66 | + simulating cycles of a processor with a 4k sized cache of associativity 8. |
| 67 | + Similarly an energy measurement of a size:2k,assoc:8 configuration would be |
| 68 | + size2k_assoc8_energy. |
| 69 | + |
| 70 | +2. Select Data |
| 71 | + a. Select what to put on each axis: |
| 72 | + Place the cache size on X: |
| 73 | + -x size4k,size8k |
| 74 | + Place the associativity on Y: |
| 75 | + -y assoc2,assoc4,assoc8 |
| 76 | + b. Filter out the unwanted data, by selecting which ones to keep |
| 77 | + -f cycles |
| 78 | + This will let only the cycles to get through (the energy numbers will not). |
| 79 | + |
| 80 | +3. Plot |
| 81 | + moufoplot lets you control the output figure in many ways |
| 82 | + Type: moufoplot --help to get all the options. |
| 83 | + o plot type: --bar, --stack, --line, --hmap |
| 84 | + o title : --title "This is the title" |
| 85 | + o legend : --legend in,right,box,... |
| 86 | + o labels : --xlabel "Description of the X axis", --ylabel |
| 87 | + o size : --size 1.0x0.8 (width x height) |
| 88 | + These options get updated frequently, as MoufoPlot gets updated, so please |
| 89 | + check the --help option for an exhaustive list. |
| 90 | + |
| 91 | + |
| 92 | +Example |
| 93 | +------- |
| 94 | + 1. Scenario |
| 95 | + - - - - - - - |
| 96 | + In this example I will show how to use moufoplot in the common scenario of |
| 97 | + generating and plotting data that are the output of simulations. |
| 98 | + Each simulation run is controlled by say 3 parameters: A, B and C. |
| 99 | + The values of A are 1,2,3 |
| 100 | + The values of B are 100,200,300,400,500 |
| 101 | + The values of C are 4.1, 4.2 |
| 102 | + |
| 103 | + The simulator outputs 3 results: TIME, ENERGY, AREA. |
| 104 | + |
| 105 | + 2. Generating data |
| 106 | + - - - - - - - - - - |
| 107 | + Each simulation run is therefore encoded as Ax_By_Cz_<TYPE>, where: |
| 108 | + 1) x,y,z are numbers in {1,2,3}, {100,200,300,400,500}, {4.1, 4.2} |
| 109 | + respectively |
| 110 | + 2) <TYPE> is one of {TIME,ENERGY,AREA} |
| 111 | + We use this exact encoding as the file name where each of the simulation |
| 112 | + result will be placed. |
| 113 | + For example the simulation results for A=1, B=300, C=4.2 will be placed in: |
| 114 | + A1_B300_C4.2_TIME |
| 115 | + A1_B300_C4.2_ENERGY |
| 116 | + A1_B300_C4.2_AREA |
| 117 | + |
| 118 | + 3. Plotting using MoufoPlot |
| 119 | + - - - - - - - - - - - - - - |
| 120 | + A. Let's say we want to plot TIME for A in {1,2,3} and B=200, C=4.1 |
| 121 | + moufoplot -x A1,A2,A3 -f "B200 C4.1 TIME" |
| 122 | + |
| 123 | + B. Let's say we want to plot TIME for A in {1,2,3} and B in {100,200}, C=4.1 |
| 124 | + moufoplot -x A1,A2,A3 -y B100,B200 -f "C4.1 TIME" |
| 125 | + |
| 126 | + |
| 127 | +More Examples |
| 128 | +-------------- |
| 129 | + Check out the examples/ directory. |
| 130 | + Each of the sub-folders contains an example set of data in the data/ directory |
| 131 | + and some sample MoufoPlot commands in the moufoplot_cmd* files. |
| 132 | + You can directly run the moufoplot_cmd* files to see the output. |
0 commit comments