Understanding Energy Behaviors of Thread Management Constructs

D0270498e20bd573441f1f48f2e425cf?s=47 Gustavo Pinto
January 14, 2018
36

Understanding Energy Behaviors of Thread Management Constructs

D0270498e20bd573441f1f48f2e425cf?s=128

Gustavo Pinto

January 14, 2018
Tweet

Transcript

  1. 1.

    Understanding Energy Behaviors of Thread Management Constructs Gustavo Pinto1 Fernando

    Castor1 David Liu2 {ghlp, castor}@cin.ufpe.br1 davidL@binghamton.edu2
  2. 2.

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

    the prevalence of multi-threaded programs Motivation
  3. 3.

    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. 4.

    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. 5.

    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. 6.

    6 • Embarrassingly parallel: spectralnorm, sunflow, n-queens • Leaning parallel:

    xalan, knucleotide, tomcat • Leaning serial: mandelbrot, largestImage • Embarrassingly serial: h2 Benchmarks
  7. 7.

    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. 8.

    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. 9.

    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. 10.

    10 Experimental Environment A 2×16-core AMD CPUs, running Debian Linux,

    64GB of memory, JDK version 1.7.0 11, build 21.
  11. 11.

    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.
  12. 17.

    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
  13. 34.

    34

  14. 35.

    35

  15. 36.

    36

  16. 37.

    37

  17. 38.

    Understanding Energy Behaviors of Thread Management Constructs Gustavo Pinto1 Fernando

    Castor1 David Liu2 {ghlp, castor}@cin.ufpe.br1 davidL@binghamton.edu2