Date post: | 16-Dec-2015 |
Category: |
Documents |
Upload: | marilyn-caldwell |
View: | 214 times |
Download: | 0 times |
Java Based Visualizer Java Based Visualizer for BeoSim for BeoSim
Michael BassilyMichael BassilyClemson UniversityClemson UniversityAdvisor: Dr. LigonAdvisor: Dr. LigonSURE 2004SURE 2004
OutlineOutline
Background Background
Description of ProblemDescription of Problem
Visualizer ComponentsVisualizer Components
ConclusionConclusion
BackgroundBackground
BeoSimBeoSim– A mini-grid A mini-grid
simulatorsimulator Mini-grid: a Mini-grid: a
collection of collection of clusters limitedclusters limitedto campus wide to campus wide settingsetting
– Event DrivenEvent Driven
Background (more)Background (more)
BeoSimBeoSim– Used for testing of Used for testing of
meta-scheduling meta-scheduling algorithmsalgorithms
Higher level Higher level distributed distributed scheduling scheduling process, through process, through which actions of all which actions of all local schedules are local schedules are coordinated on a coordinated on a grid wide basesgrid wide bases
Background (more Background (more more)more)
BeoSim output file formatBeoSim output file format
Header#clusters N1 N2 ... NmTimeStamp: numJobsRunning [clusterID,jobID]<NC1,NC2,..,NCm> Nq
1Nq2 .. Nqm
...
...
...FooteravRunTime avNumInQueue avQueueTime avRunTime avUtilizationavRunTime avNumInQueue avQueueTime avRunTime avUtilization......
Background (more…)Background (more…)
BeoSim output file formatBeoSim output file format
Header#clusters N1 N2 ... NmTimeStamp: numJobsRunning
[clusterID,jobID]<NC1,NC2,..,NCm> ... Nq1 Nq2 .. Nqm
Description of ProblemDescription of Problem
BeoSim needs a BeoSim needs a GUI Visualizer to GUI Visualizer to provide the user provide the user with a with a visualization of visualization of the data the data generated from generated from the output filethe output file
Description of ProblemDescription of Problem
Panel 1 - should Panel 1 - should depict each depict each cluster in the grid cluster in the grid as a grouped as a grouped collection of collection of nodes nodes
Description of ProblemDescription of Problem
Panel 2 - should Panel 2 - should show a plot of show a plot of the node-time the node-time graph of job graph of job allocations in the allocations in the gridgrid
Description of ProblemDescription of Problem
Panel 3 - should Panel 3 - should provide bar provide bar graphs that show graphs that show queue depths in queue depths in each cluster as each cluster as well as waiting well as waiting timestimes
Description of ProblemDescription of Problem
Panel 4 - should Panel 4 - should provide provide numerical numerical information information related to related to statistics statistics provided by the provided by the simulator outputsimulator output
Description of ProblemDescription of Problem
And finallyAnd finally
……. The Visualizer needs to be . The Visualizer needs to be FAST!!!FAST!!!
Why? Because the past Visualizer is Why? Because the past Visualizer is very slowvery slow
Visualizer ComponentsVisualizer Components
Data StructureData Structure– TimeSack.javaTimeSack.java– TimeSlice.javaTimeSlice.java– JobeNode.javaJobeNode.java
ParserParser– BeoParse.jjBeoParse.jj
GUI InterfaceGUI Interface– BeoVizGui.javaBeoVizGui.java– ……
Visualizer ComponentsVisualizer Components
The Data The Data structure:structure:– JobNode.java: JobNode.java:
holds data about holds data about each specific jobeach specific job
– TimeSlice.java: TimeSlice.java: holds data about holds data about each time stampeach time stamp
– TimeSack.java: TimeSack.java: holds data about holds data about the entire parsethe entire parse
TimeSack.java
TimeSlice.java
TimeSlice.java
TimeSlice.java
JobNode.java
Visualizer ComponentsVisualizer Components
The Parser: BeoParse.jjThe Parser: BeoParse.jj– Based on sun standard compiler Based on sun standard compiler
compilercompiler JavaccJavacc
– Based on regular expressions, i.e.:Based on regular expressions, i.e.:
("\n" | "\r")* Header() Body(currentData) Footer(currentData) ("\n" | "\r")* Header() Body(currentData) Footer(currentData) <EOF><EOF>
Header():Header():<HDR> ("\n" | "\r") <NUM>+ ("\n" | "\r")<HDR> ("\n" | "\r") <NUM>+ ("\n" | "\r")
Visualizer ComponentsVisualizer Components
The Parser: Javacc auto generates BNF file into The Parser: Javacc auto generates BNF file into BeoParseBNF.htmlBeoParseBNF.htmlBNF for BeoParse.jj (NON-TERMINALS)BNF for BeoParse.jj (NON-TERMINALS)
Input::=("\n" | "\r")* Input::=("\n" | "\r")* HeaderHeader BodyBody FooterFooter <EOF> <EOF>Header::=<HDR> ("\n" | "\r") (<NUM>)+ ( "\n" | "\r" )Header::=<HDR> ("\n" | "\r") (<NUM>)+ ( "\n" | "\r" )Body::=Body::=BeoLineBeoLine ( "\n" | "\r" ) ( ( "\n" | "\r" ) (BodyBody)*)*BeoLine::=BeoLine::=DblTypeDblType <COLON> <NUM> ( <COLON> <NUM> ( JobInfoJobInfo )* )*
( <NUM> )+( <NUM> )+JobInfo::=<LBRACKET> <NUM> <COMMA> <NUM> JobInfo::=<LBRACKET> <NUM> <COMMA> <NUM>
<RBRACKET> <LT> <NUM> (<COMMA> <NUM>)* <RBRACKET> <LT> <NUM> (<COMMA> <NUM>)* <GT><GT>
Footer::=<FTR> ( "\n" | "\r" ) ( Footer::=<FTR> ( "\n" | "\r" ) ( FtrObjectFtrObject ( "\n" | "\r" ) ) ( "\n" | "\r" ) )++
FtrObject::=FtrObject::=DblTypeDblType DblTypeDblType DblTypeDblType ( (DblTypeDblType | | <NUM>)<NUM>)
DblType::=( <NUM> )? <DOT> <NUM>DblType::=( <NUM> )? <DOT> <NUM>
Visualizer ComponentsVisualizer Components
GUI InterfaceGUI Interface– BeoVizGuie.java: main frame holderBeoVizGuie.java: main frame holder– Sub files for each inner frame:Sub files for each inner frame:
ClusterFrame.javaClusterFrame.java JobAllocFrame.javaJobAllocFrame.java QueueFrame.javaQueueFrame.java StatsFrame.javaStatsFrame.java
ConclusionConclusion
OLD OLD Used 3Used 3rdrd party party
graphic graphic packagepackage
JFreeChartJFreeChart Large data Large data
structurestructure
New New All Native java:All Native java:
AWT and SWING AWT and SWING
Data structure Data structure at most the size at most the size of number of of number of time stamps time stamps
ConclusionConclusion
ConclusionConclusionRun TimesRun Times
*time to complete parsing *time to complete parsing and displaying 1and displaying 1stst data on data on GUIGUI
OLDOLD NEWNEW
FileFile lineslines Load Load timetime
StructStruct
SIZESIZE
(MB)(MB)
Load Load timetime
StructStruct
SIZESIZE
(MB)(MB)data_shortdata_short 1515 33 3333 22 2828
visual_data1visual_data1 8585 88 3434 22 2929
visual_data2visual_data2 306306 2424 3636 33 2929
visual_data3visual_data3 20020055
520520 5353 44 3030
ConclusionConclusion
The NEW Visualizer is much The NEW Visualizer is much speedier than before!!!speedier than before!!!
Questions?Questions?