• DocumentCode
    3124545
  • Title

    MPX: Software for multiplexing hardware performance counters in multithreaded programs

  • Author

    May, John M.

  • Author_Institution
    Lawrence Livermore Nat. Lab., CA, USA
  • fYear
    2001
  • fDate
    36982
  • Abstract
    Hardware performance counters are CPU registers that count data loads and stores, cache misses, and other events. Counter data can help programmers understand software performance. Although CPUs typically have multiple counters, each can monitor only one type of event at a time, and some counters can monitor only certain events. Therefore, some CPUs cannot concurrently monitor interesting combinations of events. Software multiplexing partly overcomes this limitation by using time sharing to monitor multiple events on one counter. However counter multiplexing is harder to implement for multithreaded programs than for single-threaded ones because of certain difficulties in managing the length of the time slices. This paper describes a software library called MPX that overcomes these difficulties. MPX allows applications to gather hardware counter data concurrently for any combination of countable events. MPX data are typically within a few percent of counts recorded without multiplexing
  • Keywords
    multi-threading; multiplexing; MPX; counter multiplexing; hardware counter data; multithreaded programs; time sharing; Application software; Counting circuits; Hardware; Monitoring; Operating systems; Programming profession; Software libraries; Software performance; Time measurement; Time sharing computer systems;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel and Distributed Processing Symposium., Proceedings 15th International
  • Conference_Location
    San Francisco, CA
  • ISSN
    1530-2075
  • Print_ISBN
    0-7695-0990-8
  • Type

    conf

  • DOI
    10.1109/IPDPS.2001.924955
  • Filename
    924955