Predictive Thread-to-Core Assignment on a Heterogeneous Multi-core Processor

By: Hridesh Rajan Tyler Sondag Viswanath Krishnamurthy

PDF Download Download Paper

Abstract

As multi-core processors are becoming common, vendors are starting to explore trade offs between the die size and the number of cores on a die, leading to heterogeneity among cores on a single chip. For efficient utilization of these processors, application threads must be assigned to cores such that the resource needs of a thread closely matches resource availability at the assigned core. Current methods of thread-to-core assignment often require application’s execution trace to determine it’s runtime properties. These traces are obtained by running the application on some representative input. A problem is that developing these representative input set is time consuming, and requires expertise that the user of a general-purpose processor may not have. In this position paper, we propose an approach for automatic thread-to-core assignment for heterogeneous multi-core processors to address this problem. The key insight behind our approach is simple – if two phases of a program are similar, then the data obtained by dynamic monitoring of one phase can be used to make scheduling decisions about other similar phases. The technical underpinnings of our approach include: a preliminary static analysis-based approach for determining similarity among program sections, and a thread-to-core assignment algorithm that utilizes the statically generated information as well as execution information obtained from monitoring a small fraction of the program to make scheduling decisions.

ACM Reference

Tyler Sondag, H.R., Viswanath Krishnamurthy 2007. Predictive Thread-to-Core Assignment on a Heterogeneous Multi-core Processor. PLOS ’07: ACM SIGOPS 4th Workshop on Programming Languages and Operating Systems (Oct. 2007).

BibTeX Reference

@inproceedings{sondag2007predictive,
  author = {Tyler Sondag, Viswanath Krishnamurthy, Hridesh Rajan},
  title = {Predictive Thread-to-Core Assignment on a Heterogeneous Multi-core Processor},
  booktitle = {PLOS '07: ACM SIGOPS 4th Workshop on Programming Languages and Operating Systems},
  location = {Skamania Lodge, Stevenson, Washington, USA},
  month = {October},
  year = {2007},
  entrysubtype = {workshop},
  abstract = {
    As multi-core processors are becoming common, vendors are starting to explore
    trade offs between the die size and the number of cores on a die, leading to
    heterogeneity among cores on a single chip. For efficient utilization of these
    processors, application threads must be assigned to cores such that the
    resource needs of a thread closely matches resource availability at the
    assigned core. Current methods of thread-to-core assignment often require
    application's execution trace to determine it's runtime properties. These
    traces are obtained by running the application on some representative input. A
    problem is that developing these representative input set is time consuming,
    and requires expertise that the user of a general-purpose processor may not
    have. In this position paper, we propose an approach for automatic
    thread-to-core assignment for heterogeneous multi-core processors to address
    this problem. The key insight behind our approach is simple -- if two phases
    of a program are similar, then the data obtained by dynamic monitoring of one
    phase can be used to make scheduling decisions about other similar phases. The
    technical underpinnings of our approach include: a preliminary static
    analysis-based approach for determining similarity among program sections, and
    a thread-to-core assignment algorithm that utilizes the statically generated
    information as well as execution information obtained from monitoring a small
    fraction of the program to make scheduling decisions.
  }
}