Scaling Non-Regular Shared-Memory Codes by Reusing Custom Loop Schedules
Author(s) -
Dimitrios S. Nikolopoulos,
Ernest Artiaga,
Eduard Ayguadé,
Jesús Labarta
Publication year - 2003
Publication title -
scientific programming
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.269
H-Index - 36
eISSN - 1875-919X
pISSN - 1058-9244
DOI - 10.1155/2003/379739
Subject(s) - computer science , parallel computing , locality , programmer , loop tiling , reuse , scalability , nested loop join , uniform memory access , interleaved memory , latency (audio) , memory model , distributed memory , distributed shared memory , shared memory , loop fission , computer architecture , distributed computing , memory management , programming language , operating system , overlay , ecology , telecommunications , philosophy , linguistics , compiler , biology
In this paper we explore the idea of customizing and reusing loop schedules to improve the scalability of non-regular numerical codes in shared-memory architectures with non-uniform memory access latency. The main objective is to implicitly setup affinity links between threads and data, by devising loop schedules that achieve balanced work distribution within irregular data spaces and reusing them as much as possible along the execution of the program for better memory access locality. This transformation provides a great deal of flexibility in optimizing locality, without compromising the simplicity of the shared-memory programming paradigm. In particular, the programmer does not need to explicitly distribute data between processors. The paper presents practical examples from real applications and experiments showing the efficiency of the approach
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom