IEEE Access (Jan 2021)

Operators for Data Redistribution: Applications to the STL Library and RayTracing Algorithm

  • Ana Moreton-Fernandez,
  • Yuri Torres De La Sierra,
  • Arturo Gonzalez-Escribano,
  • Diego R. Llanos

DOI
https://doi.org/10.1109/ACCESS.2021.3063628
Journal volume & issue
Vol. 9
pp. 38557 – 38570

Abstract

Read online

In distributed-memory systems, data redistributions are operations that change the ownership and location of a selected subset of a data structure at runtime. They allow the improvement of the performance of parallel algorithms which operate on changing or partial domains, aiming to create a balanced workload among the active processes. To manually redistribute data is a cumbersome and error-prone task. In this paper, we present a method based on four combinable operators to redistribute partial domains selected by the programmer at runtime in an efficient and simple way. They abstract to the programmer the data-redistribution implementation details, such as the new mapping, relocation, and communication of the selected data. We also present the application of the proposed operators to a RayTracing application and to a significant part of STL (C++ Standard Template Library). Our experimental results show that our approach automatically generates a good load balance, which leads to performance improvements for generic data-distribution policies. It does not introduce significant performance overheads compared with tailored data redistributions directly programmed using MPI (Message Passing Interface), while it greatly reduces the code development effort.

Keywords