“workload characterization of a first person shooter” luka spoljaric jeff kwiat
TRANSCRIPT
““Workload Characterization of a Workload Characterization of a First Person Shooter”First Person Shooter”
Luka Spoljaric
Jeff Kwiat
The ProblemThe Problem
Problem: Today’s games consume enormous amounts of CPU resources.– Complex graphics and faster movement
require greater rendering speeds
Can anything be done about this??
SolutionSolution
We must form a better understanding of the workload generated by one these games– Increase efficiency within the game– Relieve the machine of excess burden
to allow other processes more CPU resources
Presentation OverviewPresentation Overview
Introduction to GamesMethodologyData AnalysisImplications, Conclusions, and
Future Research
IntroductionIntroduction
Several genres of video games– First Person Shooter
• Fast-paced, graphically enhanced• Focus of this presentation
– Role-Playing Games (RPGs)• Lower graphics and slower play
– Board Games• Just plain boring
MethodologyMethodology
Hardware TLAB setup– Dell Dimension 4100– 800 MHz Pentium III processor– 256 MB DRAM– Video Card: NVIDIA_GLX-0.9-5
Software– Instrumented version of Linux Doom– Running on Redhat Linux release 6.2
Testing PhaseTesting Phase
20 real-world tests were conducted using the Doom instrumentation
Each run lasted for 180 seconds Each player started at the same point in
the game– Shareware version - “Knee-deep in the Dead”
Skill level was set to “Ultimate Violence”– Player could interact with more enemies
Doom InstrumentationDoom Instrumentation
Incoming Data (3 Blocks)– Doom Loop wraps all of these– GetEvents()
• X Windows events Doom Events
– ProcessEvents()• Process Doom Events
– DisplayEvents()• Update Sounds• Display• Submit Sounds
Task SizesTask Sizes
Represent the amount of CPU time needed to perform a specific task.
We measured task sizes of each event block:– GetEvents()– ProcessEvents()– DisplayEvents
Empty Tasks Blocks where no events occurred– ~98.5% !!
GetEvents() BlockGetEvents() Block
Task Size– With empty tasks
• Mean: 0.00176 seconds• STD: 0.0050825 seconds• Range: 0.1 – 0.4 seconds
– Without empty tasks• Mean: 0.01390 seconds• STD: 0.00595 seconds• Range: 0.1 – 0.4 seconds
Task Sizes With Empty TasksTask Sizes With Empty Tasks
0.00 0.01 0.02 0.03
0
10000
20000
30000
Task Sizes (With 0s) - GEL
Fre
quen
cy
Many cycles without events
Task Sizes Without Empty TasksTask Sizes Without Empty Tasks
0.01 0.02 0.03
0
1000
2000
3000
Task Size (Without 0s) GEL
Fre
quen
cy
Inter-arrival TimesInter-arrival Times
Inter-arrival times show multi-modal distributions
Divided data into separate bins (short intervals and long intervals)
Plotted each separately to present more effectively
GetEvents() BlockGetEvents() Block
Inter-arrival times– Mean: 0.0159– STD: 0.0244– Distribution: Tri-modal Distribution
STD > Mean!! – Relates to multi-modal distribution
Inter-arrival Times vs. PercentInter-arrival Times vs. Percent
0.0 0.1 0.2 0.3
0
10
20
30
40
Inter-arrival Times
Per
cent
Inter-arrival Times (Short)Inter-arrival Times (Short)
0.050.040.030.020.010.00
10000
5000
0
Short
Fre
quen
cy
Inter-arrival Times (Long)Inter-arrival Times (Long)
0.1 0.2 0.3
0
1000
2000
3000
Medium
Fre
quen
cy
ProcessEvents() BlockProcessEvents() Block
Task Size– With empty tasks
• Mean: 0.00387• STD: 0.00781
– Without empty task• Mean: 0.0166• STD: 0.00703
Task Sizes with Empty TasksTask Sizes with Empty Tasks
0.00 0.01 0.02 0.03 0.04
0
50000
100000
150000
C5
Fre
quen
cy
Task Sizes without Empty TasksTask Sizes without Empty Tasks
0.01 0.02 0.03 0.04
0
10000
20000
C6
Fre
quen
cy
ProcessEvents()ProcessEvents()
Inter-arrival times– Mean: 0.029 s– STD: 0.026 s– Distribution: Multi-Modal distribution
• Longer intervals are more popular than in the GetEvents() blocks
Inter-arrival Times vs. PercentInter-arrival Times vs. Percent
0.0 0.1 0.2 0.3
0
10
20
30
40
50
60
Sorted_1
Per
cent
Inter-arrival Times (Short)Inter-arrival Times (Short)
0.00 0.01 0.02 0.03 0.04 0.05
0
10000
20000
30000
40000
50000
Short Inter-arrival Times
Fre
quen
cy
Inter-arrival Times (Long)Inter-arrival Times (Long)
0.1 0.2 0.3
0
1000
2000
Medium Inter-arrival Times
Fre
quen
cy
Display() BlockDisplay() Block
Task Size– With empty tasks
• Mean: 0.0016• STD: 0.0050
– Without empty tasks• Mean: 0.0148• STD: 0.0065
Task Sizes with Empty TasksTask Sizes with Empty Tasks
0.00 0.01 0.02 0.03 0.04
0
100000
200000
300000
400000
Sort
Fre
quen
cy
Task Sizes without Empty TasksTask Sizes without Empty Tasks
0.01 0.02 0.03 0.04
0
10000
20000
30000
Task Size w/o 0s
Fre
quen
cy
Display() BlockDisplay() Block
Inter-arrival Times– Mean: 0.0346– STD: 0.0307– Distribution: Multi-modal
Inter-arrival Times vs. PercentInter-arrival Times vs. Percent
0.0 0.1 0.2 0.3
0
10
20
30
40
50
60
C3
Per
cent
Inter-arrival Times (Short)Inter-arrival Times (Short)
0.00 0.01 0.02 0.03 0.04 0.05
0
10000
20000
30000
Short Inter-arrival Times
Fre
quen
cy
Inter-arrival Times (Long)Inter-arrival Times (Long)
0.1 0.2 0.3
0
1000
2000
Long Inter-arrival Times
Fre
quen
cy
Display() EventsDisplay() Events
Event 1: “UpdateSounds”
0.000001 0.000002 0.000003 0.000004 0.000005 0.000006
0
5000
10000
15000
Update
Fre
quen
cy
Display() EventsDisplay() Events
Event 2: “Display”
0.0 0.1 0.2
0
10000
20000
Display
Fre
quen
cy
Display() EventsDisplay() Events
Event 3: “SubmitSounds”
0.0002 0.0003 0.0004 0.0005 0.0006
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
Submit
Fre
quen
cy
Future WorkFuture Work
Extend workload characterization to other games (especially first person shooters)
Participants with varying skill levels– Differences in task sizes– Differences in inter-arrival times
Develop software to dynamically decide how much resources are necessary at a given point in the game
ConclusionsConclusions
The task sizes of event blocks range from 0.0 – 0.4 CPU seconds with a large number of empty tasks
The inter-arrival times can be modeled as a multi-modal distribution
Thanks