Skip to content

Commit 31fa12c

Browse files
author
Vasileios Porpodas
committed
ADDED: README, examples/, install, Fixed x/y axis for linegraph.
1 parent 57d6ee5 commit 31fa12c

21 files changed

+169
-1
lines changed

README

+132
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
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.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
600
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
580
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
570
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
1000
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
800
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
750
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
700
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
650
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
630

examples/example01/moufoplot_cmd01

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
../../moufoplot -d data/ --bar -x size4k,size8k,size16k -y assoc2,assoc4 -f cycles
3+

examples/example01/moufoplot_cmd02

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
../../moufoplot -d data/ --bar -x size4k,size8k,size16k -y assoc2,assoc4 -f cycles --legend box
3+

examples/example01/moufoplot_cmd03

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
../../moufoplot -d data/ --bar -x size4k,size8k,size16k -y assoc2,assoc4 -f cycles --legend box --xrotate -20
3+

examples/example01/moufoplot_cmd04

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
../../moufoplot -d data/ --bar -x size4k,size8k,size16k -y assoc2,assoc4 -f cycles --legend box --xrotate -20 --title "Performance results"
3+

examples/example01/moufoplot_cmd05

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
../../moufoplot -d data/ --bar -x size4k,size8k,size16k -y assoc2,assoc4 -f cycles --legend box --xrotate -20 --title "Performance results" --xlabel "Cache size" --ylabel "Cache associativity"
3+

examples/example01/moufoplot_cmd06

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash
2+
../../moufoplot -d data/ --bar -x size4k,size8k,size16k -y assoc2,assoc4 -f cycles --legend box --xrotate -20 --title "Performance results" --xlabel "Cache size" --ylabel "Cache associativity" --xnorm "size4k assoc2 cycles"

examples/example01/moufoplot_cmd07

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash
2+
../../moufoplot -d data/ --bar -x size4k,size8k,size16k -y assoc2,assoc4 -f cycles --legend box --xrotate -20 --title "Performance results" --xlabel "Cache size" --ylabel "Cache associativity" --xnorm "size4k assoc2 cycles" --percent

examples/example01/moufoplot_cmd08

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash
2+
../../moufoplot -d data/ --line -x size4k,size8k,size16k -y assoc2,assoc4 -f cycles --legend box --title "Performance results" --xlabel "Cache size" --ylabel "Cache associativity"

examples/example01/moufoplot_cmd09

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash
2+
../../moufoplot -d data/ --hmap -x size4k,size8k,size16k -y assoc2,assoc4 -f cycles --legend box --title "Performance results" --xlabel "Cache size" --ylabel "Cache associativity"

install

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
sudo cp moufoplot /usr/local/bin/

moufoplot.sh moufoplot

+3-1
Original file line numberDiff line numberDiff line change
@@ -1857,7 +1857,9 @@ parse_tags()
18571857
parse_vals()
18581858
{
18591859
# Reverse x, y
1860-
if [ "${plot_type}" == "bargraph" ] || [ "${plot_type}" == "stacked" ];then
1860+
if [ "${plot_type}" == "bargraph" ] \
1861+
|| [ "${plot_type}" == "stacked" ] \
1862+
|| [ "${plot_type}" == "linegraph" ];then
18611863
local x_vals_sv=${x_vals}
18621864
x_vals=${y_vals}
18631865
y_vals=${x_vals_sv}

0 commit comments

Comments
 (0)