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 条
  • [1] Efficient High-Level Abstractions for Web Programming
    Richard-Foy, Julien
    Barais, Olivier
    Jezequel, Jean-Marc
    ACM SIGPLAN NOTICES, 2014, 49 (03) : 53 - 60
  • [2] High-Level Programming Abstractions for Distributed Graph Processing
    Kalavri, Vasiliki
    Vlassov, Vladimir
    Haridi, Seif
    IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, 2018, 30 (02) : 305 - 324
  • [3] High-level abstractions for message-passing parallel programming
    Chan, F
    Cao, JN
    Sun, YD
    PARALLEL COMPUTING, 2003, 29 (11-12) : 1589 - 1621
  • [4] Programming microcontrollers through high-level abstractions: The OMicroB project
    Varoumas, Steven
    Pesin, Basile
    Vaugon, Benoit
    Chailloux, Emmanuel
    JOURNAL OF COMPUTER LANGUAGES, 2023, 77
  • [5] High-Level Cryptographic Abstractions
    Kane, Christopher
    Lin, Bo
    Chand, Saksham
    Stoller, Scott D.
    Liu, Yanhong A.
    PROCEEDINGS OF THE 14TH ACM SIGSAC WORKSHOP ON PROGRAMMING LANGUAGES AND ANALYSIS FOR SECURITY (PLAS '19), 2019, : 31 - 43
  • [6] High-level data parallel programming in promoter
    Besch, M
    Bi, H
    Enskonatus, P
    Heber, G
    Wilhelmi, M
    SECOND INTERNATIONAL WORKSHOP ON HIGH-LEVEL PARALLEL PROGRAMMING MODELS AND SUPPORTIVE ENVIRONMENTS, PROCEEDINGS, 1997, : 47 - 54
  • [7] TrafficModeler: A Graphical Tool for Programming Microscopic Traffic Simulators through High-level Abstractions
    Papaleontiou, Leontios G.
    Dikaiakos, Marios D.
    2009 IEEE VEHICULAR TECHNOLOGY CONFERENCE, VOLS 1-5, 2009, : 2032 - 2036
  • [8] High-level nondeterministic abstractions in C++
    Michel, Laurent
    See, Andrew
    Van Hentenryck, Pascal
    PRINCIPLES AND PRACTICE OF CONSTRAINT PROGRAMMING - CP 2006, 2006, 4204 : 359 - 374
  • [9] Tapeworm: High-level abstractions of shared accesses
    Keleher, PJ
    USENIX ASSOCIATION PROCEEDINGS OF THE THIRD SYMPOSIUM ON OPERATING SYSTEMS DESIGN AND IMPLEMENTATION (OSDI '99), 1999, : 201 - 214
  • [10] POINTERS AND DATA ABSTRACTIONS IN HIGH-LEVEL LANGUAGES .2. CORRECTNESS PROOFS
    BERRY, DM
    COMPUTER LANGUAGES, 1977, 2 (04): : 149 - 170