Publication:
TiDA: High-level programming abstractions for data locality management

dc.contributor.coauthorNguyen, Tan
dc.contributor.coauthorZhang, Weiqun
dc.contributor.coauthorMichelogiannakis, George
dc.contributor.coauthorAlmgren, Ann
dc.contributor.coauthorShalf,John
dc.contributor.departmentN/A
dc.contributor.departmentDepartment of Computer Engineering
dc.contributor.departmentN/A
dc.contributor.kuauthorFarooqi, Muhammad Nufail
dc.contributor.kuauthorErten, Didem Unat
dc.contributor.kuauthorBastem, Burak
dc.contributor.kuprofilePhD Student
dc.contributor.kuprofileFaculty Member
dc.contributor.kuprofileMaster Student
dc.contributor.otherDepartment of Computer Engineering
dc.contributor.schoolcollegeinstituteGraduate School of Sciences and Engineering
dc.contributor.schoolcollegeinstituteCollege of Engineering
dc.contributor.schoolcollegeinstituteGraduate School of Sciences and Engineering
dc.contributor.yokidN/A
dc.contributor.yokid219275
dc.contributor.yokidN/A
dc.date.accessioned2024-11-09T23:12:32Z
dc.date.issued2016
dc.description.abstractThe 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).
dc.description.indexedbyWoS
dc.description.indexedbyScopus
dc.description.openaccessNO
dc.description.volume9697
dc.identifier.doi10.1007/978-3-319-41321-1_7
dc.identifier.eissn1611-3349
dc.identifier.isbn978-3-319-41321-1
dc.identifier.isbn978-3-319-41320-4
dc.identifier.issn0302-9743
dc.identifier.scopus2-s2.0-84977591727
dc.identifier.urihttp://dx.doi.org/10.1007/978-3-319-41321-1_7
dc.identifier.urihttps://hdl.handle.net/20.500.14288/9833
dc.identifier.wos386513900007
dc.languageEnglish
dc.publisherSpringer International Publishing Ag
dc.sourceHigh Performance Computing
dc.subjectComputer science
dc.subjectTheory methods
dc.titleTiDA: High-level programming abstractions for data locality management
dc.typeConference proceeding
dspace.entity.typePublication
local.contributor.authorid0000-0002-1609-5847
local.contributor.authorid0000-0002-2351-0771
local.contributor.authoridN/A
local.contributor.kuauthorFarooqi, Muhammad Nufail
local.contributor.kuauthorErten, Didem Unat
local.contributor.kuauthorBastem, Burak
relation.isOrgUnitOfPublication89352e43-bf09-4ef4-82f6-6f9d0174ebae
relation.isOrgUnitOfPublication.latestForDiscovery89352e43-bf09-4ef4-82f6-6f9d0174ebae

Files