3D parallel tiled code implementing a modified Knuth's optimal binary search tree algorithm - Bielecki, Wlodzimierz; Blaszynski, Piotr; Poliwoda, Maciej (Journal of computational science, 2021)
•3D tiled OBST code improves data locality.•Improved data locality of 3D tiled code allows us to increase code.•performance and scalability.•3D tiled OBST code considerably outperforms 2D tiled OBST code. This paper presents an approach to generation of 3D parallel tiled code implementing an optimal binary search tree (OBST) algorithm. We demonstrate that the features of data dependences available in the code implementing Knuth's OBST algorithm allow us to generate only 2D tiled code. We suggest a way of transformation of Knuth's OBST algorithm to a modified one exposing dependences allowing us to generate 3D parallel tiled code. The polyhedral model and the corresponding tools supporting that model are used by us to generate 3D target tiled code on the basis of the modified Knuth's OBST algorithm. Program parallelism is based on the wavefront technique and it is presented in the OpenMP C/C++ standard. Experiments carried out by us with obtained 3D tiled code demonstrate that this code considerably outperforms 2D tiled code generated on the basis of serial code implementing classic Knuth's OBST algorithm. Increased code performance is achieved due to much larger locality of 3D tiled code in comparison with that of 2D one.