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 条
  • [21] High-Level Stream Parallelism Abstractions with SPar Targeting GPUs
    Rockenbach, Dinei A.
    Griebler, Dalvan
    Danelutto, Marco
    Fernandes, Luiz G.
    PARALLEL COMPUTING: TECHNOLOGY TRENDS, 2020, 36 : 543 - 552
  • [22] Code Readability Management of High-level Programming Languages: A Comparative Study
    Tariq, Muhammad Usman
    Bashir, Muhammad Bilal
    Babar, Muhammad
    Sohail, Adnan
    INTERNATIONAL JOURNAL OF ADVANCED COMPUTER SCIENCE AND APPLICATIONS, 2020, 11 (03) : 595 - 602
  • [23] High-Level Abstractions for Simplifying Extended String Constraints in SMT
    Reynolds, Andrew
    Notzli, Andres
    Barrett, Clark
    Tinelli, Cesare
    COMPUTER AIDED VERIFICATION, CAV 2019, PT II, 2019, 11562 : 23 - 42
  • [24] Extending Automatic Parallelization to Optimize High-Level Abstractions for Multicore
    Liao, Chunhua
    Quinlan, Daniel J.
    Willcock, Jeremiah J.
    Panas, Thomas
    EVOLVING OPENMP IN AN AGE OF EXTREME PARALLELISM, 2009, 5568 : 28 - +
  • [25] VALID, A HIGH-LEVEL FUNCTIONAL PROGRAMMING LANGUAGE FOR DATA FLOW MACHINES
    AMAMIYA, M
    HASEGAWA, R
    ONO, S
    REVIEW OF THE ELECTRICAL COMMUNICATIONS LABORATORIES, 1984, 32 (05): : 793 - 802
  • [26] HIGH-LEVEL PROGRAMMING FOR DISTRIBUTED COMPUTING
    FELDMAN, JA
    COMMUNICATIONS OF THE ACM, 1979, 22 (06) : 353 - 368
  • [27] A HIGH-LEVEL APPROACH TO PROGRAMMING A ROBOT
    WANG, NS
    DAVIES, BJ
    INTERNATIONAL JOURNAL OF MACHINE TOOLS & MANUFACTURE, 1987, 27 (01): : 57 - 63
  • [28] MULTIPROCESSOR SYSTEMS PROGRAMMING IN A HIGH-LEVEL DATA-FLOW LANGUAGE
    GAUDIOT, JL
    LEE, LT
    LECTURE NOTES IN COMPUTER SCIENCE, 1987, 258 : 134 - 151
  • [29] High-level data structures in CACSD example: Programming with graphs in Scilab
    Delebecque, F
    Gomez, C
    Goursat, M
    PROCEEDINGS OF THE 1996 IEEE INTERNATIONAL SYMPOSIUM ON COMPUTER-AIDED CONTROL SYSTEM DESIGN, 1996, : 424 - 429
  • [30] hiCUDA: High-Level GPGPU Programming
    Han, Tianyi David
    Abdelrahman, Tarek S.
    IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 2011, 22 (01) : 78 - 90