Show simple item record

dc.contributor.authorSanchez, Daniel
dc.contributor.authorMukkara, Anurag Reddy
dc.contributor.authorBeckmann, Nathan Zachary
dc.date.accessioned2017-12-15T23:04:35Z
dc.date.available2017-12-15T23:04:35Z
dc.date.issued2016-04
dc.identifier.isbn978-1-4503-4091-5
dc.identifier.urihttp://hdl.handle.net/1721.1/112772
dc.description.abstractCache hierarchies are increasingly non-uniform and difficult to manage. Several techniques, such as scratchpads or reuse hints, use static information about how programs access data to manage the memory hierarchy. Static techniques are effective on regular programs, but because they set fixed policies, they are vulnerable to changes in program behavior or available cache space. Instead, most systems rely on dynamic caching policies that adapt to observed program behavior. Unfortunately, dynamic policies spend significant resources trying to learn how programs use memory, and yet they often perform worse than a static policy. We present Whirlpool, a novel approach that combines static information with dynamic policies to reap the benefits of each. Whirlpool statically classifies data into pools based on how the program uses memory. Whirlpool then uses dynamic policies to tune the cache to each pool. Hence, rather than setting policies statically, Whirlpool uses static analysis to guide dynamic policies. We present both an API that lets programmers specify pools manually and a profiling tool that discovers pools automatically in unmodified binaries. We evaluate Whirlpool on a state-of-the-art NUCA cache. Whirlpool significantly outperforms prior approaches: on sequential programs, Whirlpool improves performance by up to 38% and reduces data movement energy by up to 53%; on parallel programs, Whirlpool improves performance by up to 67% and reduces data movement energy by up to 2.6x.en_US
dc.description.sponsorshipNational Science Foundation (U.S.) (grant CCF-1318384)en_US
dc.description.sponsorshipNational Science Foundation (U.S.) (CAREER-1452994)en_US
dc.description.sponsorshipSamsung (Firm) (GRO award)en_US
dc.language.isoen_US
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.relation.isversionofhttp://dx.doi.org/10.1145/2872362.2872363en_US
dc.rightsCreative Commons Attribution-Noncommercial-Share Alikeen_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/en_US
dc.sourceMIT Web Domainen_US
dc.titleWhirlpool: Improving Dynamic Cache Management with Static Data Classificationen_US
dc.typeArticleen_US
dc.identifier.citationMukkara, Anurag, Nathan Beckmann, and Daniel Sanchez. “Whirlpool.” Proceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS ’16 (2016).en_US
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratoryen_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.contributor.mitauthorSanchez, Daniel
dc.contributor.mitauthorMukkara, Anurag Reddy
dc.contributor.mitauthorBeckmann, Nathan Zachary
dc.relation.journalProceedings of the Twenty-First International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS '16en_US
dc.eprint.versionAuthor's final manuscripten_US
dc.type.urihttp://purl.org/eprint/type/ConferencePaperen_US
eprint.statushttp://purl.org/eprint/status/NonPeerRevieweden_US
dspace.orderedauthorsMukkara, Anurag; Beckmann, Nathan; Sanchez, Danielen_US
dspace.embargo.termsNen_US
dc.identifier.orcidhttps://orcid.org/0000-0003-4594-7321
dc.identifier.orcidhttps://orcid.org/0000-0002-6057-9769
mit.licenseOPEN_ACCESS_POLICYen_US
mit.metadata.statusComplete


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record