Synthesis of Algorithm Considering Communication Structure of Distributed/Parallel Computing

Yukio Miyasaka, Ashish Mittal, Masahiro Fujita · 2019

There are increasing opportunities to calculate with distributed/parallel computing: many-core CPU, GPU, and FPGA. It is, however, generally difficult to come up with an algorithm suitable for distributed/parallel computing. There have been many researches on the automatic partitioning of programs and designs, but they have not performed reconstruction of the data flow in the algorithm level. In this paper, we apply partial synthesis method and synthesize algorithms for distributed/parallel environment automatically. We propose the template-based computing that aims to prevent the communications among the cores and chips to become overhead. With that template, an algorithm is synthesized by using conventional partial synthesis method, which performs synthesis iteratively modifying the template. The synthesis-problem generally becomes infeasible as its size becomes larger. Therefore, we propose the method to reduce the search space by adding constraints. The synthesis is performed for small instances of the target problem at first, and then the additional constraints are considered based on the synthesized algorithm. In the experiment, we synthesized algorithms for matrix vector multiplication with one-way-ring-connected nodes to matrix of 32×32.

Read the paper · More papers on PaperTik