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: | , , , |
---|---|
מחברים אחרים: | |
פורמט: | 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 |