Research Project: DataLocAbstractions
Loading...
Contributors
Funders
ID
EC.00075
Authors
Erten, Didem Unat
Faculty Member
Publications
TiDA: High-level programming abstractions for data locality management
(Springer International Publishing Ag, 2016) Bastem, Burak; Erten, Didem Unat; Farooqi, Muhammad Nufail; Nguyen, Tan; Zhang, Weiqun; Michelogiannakis, George; Almgren, Ann; Shalf,John; Department of Computer Engineering; Graduate School of Sciences and Engineering; Yes; College of Engineering; GRADUATE SCHOOL OF SCIENCES AND ENGINEERING
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).
Boxlib with tiling: an adaptive mesh refinement software framework
(Society for Industrial and Applied Mathematics (SIAM) Publications, 2016) Erten, Didem Unat; Zhang, W.; Almgren, A.; Day, M.; Nguyen, T.; Shalf, J.; Department of Computer Engineering; Yes; College of Engineering
In this paper we introduce a block-structured adaptive mesh refinement software framework that incorporates tiling, a well-known loop transformation. Because the multiscale, multiphysics codes built in boxlib are designed to solve complex systems at high resolution, performance on current and next generation architectures is essential. With the expectation of many more cores per node on next generation architectures, the ability to effectively utilize threads within a node is essential, and the current model for parallelization will not be sufficient. We describe a new version of boxlib in which the tiling constructs are embedded so that boxlib-based applications can easily realize expected performance gains without extra effort on the part of the application developer. We also discuss a path forward to enable future versions of boxlib to take advantage of NUMA-aware optimizations using the tida portable library.
