Compiler-assisted Data Distribution for Chip Multiprocessors

被引:28
|
作者
Li, Yong [1 ]
Abousamra, Ahmed
Melhem, Rami
Jones, Alex K. [1 ]
机构
[1] Univ Pittsburgh, Dept ECE, Pittsburgh, PA 15261 USA
关键词
partitioning; data distribution; compiler-assisted caching; DATA LAYOUT;
D O I
10.1145/1854273.1854335
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Data access latency, a limiting factor in the performance of chip multiprocessors; grows significantly with the number of cores in non-uniform cache architectures with distributed cache banks. To mitigate this effect, it is necessary to leverage the data access locality and choose an optimum data placement. Achieving this is especially challenging when other constraints such as cache capacity, coherence messages and runtime overhead need to be considered. This paper presents a compiler-based approach used for analyzing data access behavior in multi-threaded applications. The proposed experimental compiler framework employs novel compilation techniques to discover and represent multi-threaded memory access patterns (MMAPs). At run time, symbolic MMAPs are resolved and used by a partitioning algorithm to choose a partition of allocated memory blocks among the forked threads in the analyzed application. This partition is used to enforce data ownership by associating the data with the core that executes the thread owning the data. We demonstrate how this information can be used in an experimental architecture to accelerate applications. In particular, our compiler assisted approach shows a 20% speedup over shared caching and 5% speedup over the closest runtime approximation, "first touch".
引用
收藏
页码:501 / 512
页数:12
相关论文
共 50 条
  • [1] Compiler-Assisted Data Distribution and Network Configuration for Chip Multiprocessors
    Li, Yong
    Abousamra, Ahmed
    Melhem, Rami
    Jones, Alex K.
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2012, 23 (11) : 2058 - 2066
  • [2] COMPILER-ASSISTED SYNTHESIS OF ALGORITHM-BASED CHECKING IN MULTIPROCESSORS
    BALASUBRAMANIAN, V
    BANERJEE, P
    IEEE TRANSACTIONS ON COMPUTERS, 1990, 39 (04) : 436 - 446
  • [3] Compiler-assisted Data Placement for Heterogeneous Memory Systems
    Kim, Hwajung
    IEICE ELECTRONICS EXPRESS, 2024, 21 (19):
  • [4] Compiler-Assisted Data Streaming for Regular Code Structures
    Neves, Nuno
    Tomas, Pedro
    Roma, Nuno
    IEEE TRANSACTIONS ON COMPUTERS, 2021, 70 (03) : 483 - 494
  • [5] COMPILER-ASSISTED FULL CHECKPOINTING
    LI, CCJ
    STEWART, EM
    FUCHS, WK
    SOFTWARE-PRACTICE & EXPERIENCE, 1994, 24 (10): : 871 - 886
  • [6] Compiler-assisted performance tuning
    Chen, Chun
    Chame, Jacqueline
    Nelson, Yoonju Lee
    Diniz, Pedro
    Hall, Mary
    Lucas, Robert
    SCIDAC 2007: SCIENTIFIC DISCOVERY THROUGH ADVANCED COMPUTING, 2007, 78
  • [7] Compiler-assisted Code Randomization
    Koo, Hyungjoon
    Chen, Yaohui
    Lu, Long
    Kemerlis, Vasileios P.
    Polychronakis, Michalis
    2018 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP), 2018, : 461 - 477
  • [8] Compiler-assisted heterogeneous checkpointing
    Karablieh, F
    Bazzi, RA
    Hicks, M
    20TH IEEE SYMPOSIUM ON RELIABLE DISTRIBUTED SYSTEMS, PROCEEDINGS, 2001, : 56 - 65
  • [9] A Compiler-Directed Data Prefetching Scheme for Chip Multiprocessors
    Son, Seung Woo
    Kandemir, Mahmut
    Karakoy, Mustafa
    Chakrabarti, Dhruva
    ACM SIGPLAN NOTICES, 2009, 44 (04) : 209 - 218
  • [10] A compiler-assisted on-chip assigned-signature control flow checking
    Li, XB
    Gaudiot, JL
    ADVANCES IN COMPUTER SYSTEMS ARCHITECTURE, PROCEEDINGS, 2004, 3189 : 554 - 567