Java Based Visualizer for BeoSim Michael Bassily Clemson University Advisor: Dr. Ligon SURE 2004 Outline Background Description of Problem Visualizer Components Conclusion.
Download
Report
Transcript Java Based Visualizer for BeoSim Michael Bassily Clemson University Advisor: Dr. Ligon SURE 2004 Outline Background Description of Problem Visualizer Components Conclusion.
Java Based Visualizer
for BeoSim
Michael Bassily
Clemson University
Advisor: Dr. Ligon
SURE 2004
Outline
Background
Description of Problem
Visualizer Components
Conclusion
Background
BeoSim
– A mini-grid
simulator
Mini-grid: a
collection of
clusters limited
to campus wide
setting
– Event Driven
Background (more)
BeoSim
– Used for testing of
meta-scheduling
algorithms
Higher level
distributed
scheduling process,
through which
actions of all local
schedules are
coordinated on a
grid wide bases
Background (more more)
BeoSim output file format
Header
#clusters N1 N2 ... Nm
TimeStamp: numJobsRunning [clusterID,jobID]<NC1,NC2,..,NCm> Nq 1Nq2
.. Nqm
...
...
...
Footer
avRunTime avNumInQueue avQueueTime avRunTime avUtilization
avRunTime avNumInQueue avQueueTime avRunTime avUtilization
...
...
Background (more…)
BeoSim output file format
Header
#clusters N1 N2 ... Nm
TimeStamp: numJobsRunning
[clusterID,jobID]<NC1,NC2,..,NCm> ... Nq1 Nq2 .. Nqm
Description of Problem
BeoSim needs a
GUI Visualizer to
provide the user
with a visualization
of the data
generated from the
output file
Description of Problem
Panel 1 - should
depict each cluster
in the grid as a
grouped collection
of nodes
Description of Problem
Panel 2 - should
show a plot of the
node-time graph of
job allocations in
the grid
Description of Problem
Panel 3 - should
provide bar graphs
that show queue
depths in each
cluster as well as
waiting times
Description of Problem
Panel 4 - should
provide numerical
information related
to statistics
provided by the
simulator output
Description of Problem
And finally
…. The Visualizer needs to be FAST!!!
Why? Because the past Visualizer is very
slow
Visualizer Components
Data Structure
– TimeSack.java
– TimeSlice.java
– JobeNode.java
Parser
– BeoParse.jj
GUI Interface
– BeoVizGui.java
–…
Visualizer Components
The Data structure:
– JobNode.java: holds
data about each
specific job
– TimeSlice.java:
holds data about
each time stamp
– TimeSack.java:
holds data about
the entire parse
TimeSack.java
JobNode.java
TimeSlice.java
TimeSlice.java
TimeSlice.java
Visualizer Components
The Parser: BeoParse.jj
– Based on sun standard compiler compiler
Javacc
– Based on regular expressions, i.e.:
("\n" | "\r")* Header() Body(currentData) Footer(currentData) <EOF>
Header():
<HDR> ("\n" | "\r") <NUM>+ ("\n" | "\r")
Visualizer Components
The Parser: Javacc auto generates BNF file into BeoParseBNF.html
BNF for BeoParse.jj (NON-TERMINALS)
Input::=("\n" | "\r")* Header Body Footer <EOF>
Header::=<HDR> ("\n" | "\r") (<NUM>)+ ( "\n" | "\r" )
Body::=BeoLine ( "\n" | "\r" ) (Body)*
BeoLine::=DblType <COLON> <NUM> ( JobInfo )* (
<NUM> )+
JobInfo::=<LBRACKET> <NUM> <COMMA> <NUM>
<RBRACKET> <LT> <NUM> (<COMMA> <NUM>)*
<GT>
Footer::=<FTR> ( "\n" | "\r" ) ( FtrObject ( "\n" | "\r" ) )+
FtrObject::=DblType DblType DblType (DblType | <NUM>)
DblType::=( <NUM> )? <DOT> <NUM>
Visualizer Components
GUI Interface
– BeoVizGuie.java: main frame holder
– Sub files for each inner frame:
ClusterFrame.java
JobAllocFrame.java
QueueFrame.java
StatsFrame.java
Conclusion
OLD
Used 3rd party
graphic package
JFreeChart
Large data
structure
New
All Native java:
AWT and SWING
Data structure at
most the size of
number of time
stamps
Conclusion
Conclusion
Run Times
*time to complete parsing and
displaying 1st data on GUI
OLD
File
lines
Load
time
data_short
15
visual_data1
NEW
Load
time
3
Struct
SIZE
(MB)
33
2
Struct
SIZE
(MB)
28
85
8
34
2
29
visual_data2
306
24
36
3
29
visual_data3
2005 520
53
4
30
Conclusion
The NEW Visualizer is much
speedier than before!!!
Questions?