Reference : Astute Approach to Handling Memory Layouts of Regular Data Structures
Scientific congresses, symposiums and conference proceedings : Paper published in a book
Engineering, computing & technology : Computer science
Computational Sciences
http://hdl.handle.net/10993/53589
Astute Approach to Handling Memory Layouts of Regular Data Structures
English
Šmelko, Adam [Charles University in Prague]
Kruliš, Martin [Charles University in Prague]
Kratochvil, Miroslav mailto [University of Luxembourg > Luxembourg Centre for Systems Biomedicine (LCSB) > Bioinformatics Core >]
Klepl, Jiří []
Mayer, Jiří []
Šimůnek, Petr []
Jan-2023
Algorithms and Architectures for Parallel Processing
Springer Nature
Lecture Notes in Computer Science (volume 13777)
Yes
978-3-031-22677-9
Cham
Switzerland
Algorithms and Architectures for Parallel Processing (ICA3PP) 2022
10-10-2022 to 12-10-2022
[en] memory layouts ; data structures ; cache ; parallelism ; performance
[en] Programmers of high-performance applications face many challenging aspects of contemporary hardware architectures. One of the critical aspects is the efficiency of memory operations which is affected not only by the hardware parameters such as memory throughput or cache latency but also by the data-access patterns, which may influence the utilization of the hardware, such as re-usability of the cached data or coalesced data transactions. Therefore, a performance of an algorithm can be highly impacted by the layout of its data structures or the order of data processing which may translate into a more or less optimal sequence of memory operations. These effects are even more pronounced on highly-parallel platforms, such as GPUs, which often employ specific execution models (lock-step) or memory models (shared memory).

In this work, we propose a modern, astute approach for managing and implementing memory layouts with first-class structures that is very efficient and straightforward. This approach was implemented in Noarr, a GPU-ready portable C++ library that utilizes generic programming, functional design, and compile-time computations to allow the programmer to specify and compose data structure layouts declaratively while minimizing the indexing and coding overhead. We describe the main principles on code examples and present a performance evaluation that verifies our claims regarding its efficiency.
Luxembourg Centre for Systems Biomedicine (LCSB): Bioinformatics Core (R. Schneider Group)
Researchers ; Professionals ; Students
http://hdl.handle.net/10993/53589
10.1007/978-3-031-22677-9_27
https://link.springer.com/chapter/10.1007/978-3-031-22677-9_27

File(s) associated to this reference

Fulltext file(s):

FileCommentaryVersionSizeAccess
Limited access
978-3-031-22677-9_27.pdfPublisher postprint643.51 kBRequest a copy

Bookmark and Share SFX Query

All documents in ORBilu are protected by a user license.