TiDA: High-Level Programming Abstractions for Data Locality Management

被引:11
|
作者
Unat, Didem [1 ]
Tan Nguyen [2 ]
Zhang, Weiqun [2 ]
Farooqi, Muhammed Nufail [1 ]
Bastem, Burak [1 ]
Michelogiannakis, George [2 ]
Almgren, Ann [2 ]
Shalf, John [2 ]
机构
[1] Koc Univ, Istanbul, Turkey
[2] Lawrence Berkeley Natl Lab, Berkeley, CA USA
来源
HIGH PERFORMANCE COMPUTING | 2016年 / 9697卷
关键词
D O I
10.1007/978-3-319-41321-1_7
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
The high energy costs for data movement compared to computation gives paramount importance to data locality management in programs. Managing data locality manually is not a trivial task and also complicates programming. Tiling is a well-known approach that provides both data locality and parallelism in an application. However, there is no standard programming construct to express tiling at the application level. We have developed a multicore programming model, TiDA, based on tiling and implemented the model as C++ and Fortran libraries. The proposed programming model has three high level abstractions, tiles, regions and tile iterator. These abstractions in the library hide the details of data decomposition, cache locality optimizations, and memory affinity management in the application. In this paper we unveil the internals of the library and demonstrate the performance and programability advantages of the model on five applications on multiple NUMA nodes. The library achieves up to 2.10x speedup over OpenMP in a single compute node for simple kernels, and up to 22x improvement over a single thread for a more complex combustion proxy application (SMC) on 24 cores. The MPI+TiDA implementation of geometric multigrid demonstrates a 30.9% performance improvement over MPI+OpenMP when scaling to 3072 cores (excluding MPI communication overheads, 8.5% otherwise).
引用
收藏
页码:116 / 135
页数:20
相关论文
共 50 条
  • [31] User-defined data distributions in high-level programming languages
    Diaconescu, Roxana E.
    Zima, Hans P.
    SMC-IT 2006: 2ND IEEE INTERNATIONAL CONFERENCE ON SPACE MISSION CHALLENGES FOR INFORMATION TECHNOLOGY, PROCEEDINGS, 2006, : 67 - +
  • [32] GLU: A high-level system for granular data-parallel programming
    Jagannathan, R
    Dodd, C
    Agi, I
    CONCURRENCY-PRACTICE AND EXPERIENCE, 1997, 9 (01): : 63 - 83
  • [33] VERY HIGH-LEVEL PROGRAMMING LANGUAGE FOR DATA-PROCESSING APPLICATIONS
    HAMMER, M
    HOWE, WG
    KRUSKAL, VJ
    WLADAWSKY, I
    COMMUNICATIONS OF THE ACM, 1977, 20 (11) : 832 - 840
  • [34] WHAT ARE HIGH-LEVEL PROGRAMMING LANGUAGES
    FORBES, JM
    INDUSTRIAL ELECTRONICS, 1967, 5 (07): : 312 - &
  • [35] High-level mathematical modeling and programming
    Linkoping Univ
    IEEE Software, 4 (77-87):
  • [36] VERY HIGH-LEVEL CONCURRENT PROGRAMMING
    SHI, Y
    PRYWES, N
    SZYMANSKI, B
    PNUELI, A
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1987, 13 (09) : 1038 - 1046
  • [37] A high-level programming paradigm for SystemC
    Thompson, M
    Pimentel, AD
    COMPUTER SYSTEMS: ARCHITECTURES, MODELING, AND SIMULATION, 2004, 3133 : 530 - 539
  • [38] High-level database programming in curry
    Brassel, Bernd
    Hanus, Michael
    Mueller, Marion
    PRACTICAL ASPECTS OF DECLARATIVE LANGUAGES, PROCEEDINGS, 2008, 4902 : 316 - 332
  • [39] Efficient high-level parallel programming
    Botorog, GH
    Kuchen, H
    THEORETICAL COMPUTER SCIENCE, 1998, 196 (1-2) : 71 - 107
  • [40] Latte: Locality Aware Transformation for High-Level Synthesis
    Cong, Jason
    Wei, Peng
    Yu, Cody Hao
    Zhou, Peipei
    PROCEEDINGS 26TH IEEE ANNUAL INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES (FCCM 2018), 2018, : 125 - 128