$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Understanding Energy Behaviors of Thread Manage...
Search
Gustavo Pinto
January 14, 2018
0
120
Understanding Energy Behaviors of Thread Management Constructs
Gustavo Pinto
January 14, 2018
Tweet
Share
More Decks by Gustavo Pinto
See All by Gustavo Pinto
Developer Experiences with a Contextualized AI Coding Assistant: Usability Expectations, and Outcomes
gustavopinto
0
47
Apoiando pessoas programadoras com deficiência: Lições aprendidas na Zup Innovation
gustavopinto
0
91
5 coisas que todo dev deveria saber Para criar aplicações com GenAI
gustavopinto
0
110
Large Language Models for Education: Grading Open-Ended Questions Using ChatGPT
gustavopinto
0
120
Cognitive Driven Development: A Research Agenda
gustavopinto
0
130
The Infinite Academic Game
gustavopinto
0
78
[ESEM 2022] To What Extent Cognitive Driven Development Improves Code Readability
gustavopinto
0
110
Caminhos e desafios para a pesquisa em Computação (ou como se manter produtivo) na Região Norte
gustavopinto
2
340
How Open is the SBES PC Community
gustavopinto
0
130
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
120
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
130
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
57
37k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
200
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
200
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
130
How to Talk to Developers About Accessibility
jct
1
84
The agentic SEO stack - context over prompts
schlessera
0
560
Into the Great Unknown - MozCon
thekraken
40
2.2k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
200
Producing Creativity
orderedlist
PRO
348
40k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
400
Transcript
Understanding Energy Behaviors of Thread Management Constructs Gustavo Pinto1 Fernando
Castor1 David Liu2 {ghlp, castor}@cin.ufpe.br1
[email protected]
2 • First, the proliferation of multicore CPUs • Second,
the prevalence of multi-threaded programs Motivation
3 • First, more cores more power consumed • Second,
little is known about energy behaviors of multi-threaded program on the application and programming language level The Problem
4 1. programming abstractions of thread management on energy efficiency
2. programmer choices of thread management on energy efficiency This Talk for Java multi-threaded programs
5 • Explicit threading (the Thread-style): Using the java.lang.Thread class
• Thread pooling (the Executor-style): Using the java.util.concurrent.Executor framework • Working Stealing (the ForkJoin-style): Using the java.util.concurrent.ForkJoin framework Thread management constructs
6 • Embarrassingly parallel: spectralnorm, sunflow, n-queens • Leaning parallel:
xalan, knucleotide, tomcat • Leaning serial: mandelbrot, largestImage • Embarrassingly serial: h2 Benchmarks
7 • Embarrassingly parallel: spectralnorm, sunflow, n-queens • Leaning parallel:
xalan, knucleotide, tomcat • Leaning serial: mandelbrot, largestImage • Embarrassingly serial: h2 Benchmarks Micro-benchmarks DaCapo benchmarks
8 Experimental Environment A 2×16-core AMD CPUs, running Debian Linux,
64GB of memory, JDK version 1.7.0 11, build 21, “ondemand” governor
9 Experimental Environment A 2×16-core AMD CPUs, running Debian Linux,
64GB of memory, JDK version 1.7.0 11, build 21, “ondemand” governor
10 Experimental Environment A 2×16-core AMD CPUs, running Debian Linux,
64GB of memory, JDK version 1.7.0 11, build 21.
11 Experimental Environment A 2×16-core AMD CPUs, running Debian Linux,
64GB of DDR3 1600 memory, and JDK version 1.7.0 11, build 21.
Energy Consumption When Varying the Number of Threads 12
13 The Λ Curve
14 The Λ Curve
15 The Λ Curve
16 More cores idle CPU frequency at a lower level
The Λ Curve
17 More cores idle CPU frequency at a lower level
More threads used, program completes sooner The greater the ratio between speedup and power, the steeper the \ The Λ Curve
Which programming style should I use? 18 ? ?
Overpopulating Cores with Threads 19
Overpopulating Cores with Threads 20
Faster ≠ Greener 21
Copying vs Sharing 22
Copying vs Sharing 23 Copying
Copying vs Sharing 24 Copying Sharing
Copying vs Sharing 25 Copying Sharing ±15% of energy savings!
26 Copy-Fork
27 After Before Copy-Fork
28 After Before Copy-Fork Copy/Fork/Copy/Fork/…
29 After Before Copy-Fork Copy/Fork/Copy/Fork/…
30 After Before Copy-Fork Copy/Fork/Copy/Fork/… Copy/../Copy/Fork/…/Fork
31 After Before Copy-Fork ±10% of energy savings! Copy/Fork/Copy/Fork/… Copy/../Copy/Fork/…/Fork
Data Size 32
Data Size 33 For most of the cases, energy consumption
is linear to data size!
34
35
36
37
Understanding Energy Behaviors of Thread Management Constructs Gustavo Pinto1 Fernando
Castor1 David Liu2 {ghlp, castor}@cin.ufpe.br1
[email protected]