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

Understanding Energy Behaviors of Thread Management Constructs

Gustavo Pinto
January 14, 2018
65

Understanding Energy Behaviors of Thread Management Constructs

Gustavo Pinto

January 14, 2018
Tweet

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