Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Understanding Energy Behaviors of Thread Manage...

Gustavo Pinto
January 14, 2018
77

Understanding Energy Behaviors of Thread Management Constructs

Gustavo Pinto

January 14, 2018
Tweet

More Decks by Gustavo Pinto

Transcript

  1. 2 • First, the proliferation of multicore CPUs • Second,

    the prevalence of multi-threaded programs Motivation
  2. 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
  3. 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
  4. 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
  5. 6 • Embarrassingly parallel: spectralnorm, sunflow, n-queens • Leaning parallel:

    xalan, knucleotide, tomcat • Leaning serial: mandelbrot, largestImage • Embarrassingly serial: h2 Benchmarks
  6. 7 • Embarrassingly parallel: spectralnorm, sunflow, n-queens • Leaning parallel:

    xalan, knucleotide, tomcat • Leaning serial: mandelbrot, largestImage • Embarrassingly serial: h2 Benchmarks Micro-benchmarks DaCapo benchmarks
  7. 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
  8. 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
  9. 10 Experimental Environment A 2×16-core AMD CPUs, running Debian Linux,

    64GB of memory, JDK version 1.7.0 11, build 21.
  10. 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.
  11. 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
  12. 34

  13. 35

  14. 36

  15. 37