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?