Using Application-Level Thread Progress Information to Manage Power and Performance

© 2017 IEEE. Power and thermal limitations make it impossible to run all cores on a multicore system at their maximum frequency. Therefore, modern systems require careful power management. These systems must manage complex tradeoffs between energy, power, and frequency, choosing which cores to accel...

תיאור מלא

מידע ביבליוגרפי
Main Authors: Neuman, Sabrina M, Miller, Jason E, Sanchez, Daniel, Devadas, Srinivas
מחברים אחרים: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
פורמט: Article
שפה:English
יצא לאור: Institute of Electrical and Electronics Engineers (IEEE) 2021
גישה מקוונת:https://hdl.handle.net/1721.1/137122
_version_ 1826217163768201216
author Neuman, Sabrina M
Miller, Jason E
Sanchez, Daniel
Devadas, Srinivas
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Neuman, Sabrina M
Miller, Jason E
Sanchez, Daniel
Devadas, Srinivas
author_sort Neuman, Sabrina M
collection MIT
description © 2017 IEEE. Power and thermal limitations make it impossible to run all cores on a multicore system at their maximum frequency. Therefore, modern systems require careful power management. These systems must manage complex tradeoffs between energy, power, and frequency, choosing which cores to accelerate to achieve good performance while maintaining energy efficiency or operating under a power budget. Navigating these tradeoffs is especially hard with multi-threaded applications, where performance depends on the relative progress of parallel worker threads between synchronization points. Prior work on chip-level power management for multi-threaded applications has largely relied on indirect heuristics and metrics calculated from low-level performance counters to estimate each thread's progress. However, these indirect metrics are often inaccurate. Instead, we propose to gather progress information directly from software itself. We present ThreadBeats, a simple application-level annotation framework that directly and accurately conveys thread progress information to hardware. We design DVFS controllers that exploit ThreadBeats information for two purposes: (i) improving performance by equalizing thread progress and (ii) minimizing runtime under a power budget constraint. These controllers reduce wait time at barriers by 77% on average and improve energy-delay product under a power budget by 23% over prior work.
first_indexed 2024-09-23T16:59:02Z
format Article
id mit-1721.1/137122
institution Massachusetts Institute of Technology
language English
last_indexed 2024-09-23T16:59:02Z
publishDate 2021
publisher Institute of Electrical and Electronics Engineers (IEEE)
record_format dspace
spelling mit-1721.1/1371222023-01-17T20:21:25Z Using Application-Level Thread Progress Information to Manage Power and Performance Neuman, Sabrina M Miller, Jason E Sanchez, Daniel Devadas, Srinivas Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory © 2017 IEEE. Power and thermal limitations make it impossible to run all cores on a multicore system at their maximum frequency. Therefore, modern systems require careful power management. These systems must manage complex tradeoffs between energy, power, and frequency, choosing which cores to accelerate to achieve good performance while maintaining energy efficiency or operating under a power budget. Navigating these tradeoffs is especially hard with multi-threaded applications, where performance depends on the relative progress of parallel worker threads between synchronization points. Prior work on chip-level power management for multi-threaded applications has largely relied on indirect heuristics and metrics calculated from low-level performance counters to estimate each thread's progress. However, these indirect metrics are often inaccurate. Instead, we propose to gather progress information directly from software itself. We present ThreadBeats, a simple application-level annotation framework that directly and accurately conveys thread progress information to hardware. We design DVFS controllers that exploit ThreadBeats information for two purposes: (i) improving performance by equalizing thread progress and (ii) minimizing runtime under a power budget constraint. These controllers reduce wait time at barriers by 77% on average and improve energy-delay product under a power budget by 23% over prior work. 2021-11-02T17:17:12Z 2021-11-02T17:17:12Z 2017 2021-06-16T17:43:16Z Article http://purl.org/eprint/type/ConferencePaper https://hdl.handle.net/1721.1/137122 Neuman, Sabrina M, Miller, Jason E, Sanchez, Daniel and Devadas, Srinivas. 2017. "Using Application-Level Thread Progress Information to Manage Power and Performance." Proceedings - 35th IEEE International Conference on Computer Design, ICCD 2017. en 10.1109/ICCD.2017.87 Proceedings - 35th IEEE International Conference on Computer Design, ICCD 2017 Creative Commons Attribution-Noncommercial-Share Alike http://creativecommons.org/licenses/by-nc-sa/4.0/ application/pdf Institute of Electrical and Electronics Engineers (IEEE) MIT web domain
spellingShingle Neuman, Sabrina M
Miller, Jason E
Sanchez, Daniel
Devadas, Srinivas
Using Application-Level Thread Progress Information to Manage Power and Performance
title Using Application-Level Thread Progress Information to Manage Power and Performance
title_full Using Application-Level Thread Progress Information to Manage Power and Performance
title_fullStr Using Application-Level Thread Progress Information to Manage Power and Performance
title_full_unstemmed Using Application-Level Thread Progress Information to Manage Power and Performance
title_short Using Application-Level Thread Progress Information to Manage Power and Performance
title_sort using application level thread progress information to manage power and performance
url https://hdl.handle.net/1721.1/137122
work_keys_str_mv AT neumansabrinam usingapplicationlevelthreadprogressinformationtomanagepowerandperformance
AT millerjasone usingapplicationlevelthreadprogressinformationtomanagepowerandperformance
AT sanchezdaniel usingapplicationlevelthreadprogressinformationtomanagepowerandperformance
AT devadassrinivas usingapplicationlevelthreadprogressinformationtomanagepowerandperformance