z-logo
Premium
Extending smart containers for data locality‐aware skeleton programming
Author(s) -
Ernstsson August,
Kessler Christoph
Publication year - 2018
Publication title -
concurrency and computation: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.309
H-Index - 67
eISSN - 1532-0634
pISSN - 1532-0626
DOI - 10.1002/cpe.5003
Subject(s) - locality , computer science , container (type theory) , cache , set (abstract data type) , overhead (engineering) , distributed computing , process (computing) , operand , sequence (biology) , parallel computing , programming language , operating system , engineering , philosophy , linguistics , mechanical engineering , biology , genetics
Summary We present an extension for the SkePU skeleton programming framework to improve the performance of sequences of transformations on smart containers. By using lazy evaluation, SkePU records skeleton invocations and dependencies as directed by smart container operands. When a partial result is required by a different part of the program, the run‐time system will process the entire lineage of skeleton invocations; tiling is applied to keep chunks of container data in the working set for the whole sequence of transformations. The approach is inspired by big data frameworks operating on large clusters where good data locality is crucial. We also consider benefits other than data locality with the increased run‐time information given by the lineage structures, such as backend selection for heterogeneous systems. Experimental evaluation of example applications shows potential for performance improvements due to better cache utilization, as long as the overhead of lineage construction and management is kept low.

This content is not available in your region!

Continue researching here.

Having issues? You can contact us here