A tool for automatic parallelization of affine programs for systems with shared and distributed memory

Effective programming of parallel architectures has always been a challenge, and it is especially complicated with their modern diversity. The task of automatic parallelization of program code was formulated from the moment of the appearance of the first parallel computers made in Russia (for exampl...

Full description

Bibliographic Details
Main Authors: Sh. G. Magomedov, A. S. Lebedev
Format: Article
Language:Russian
Published: MIREA - Russian Technological University 2019-10-01
Series:Российский технологический журнал
Subjects:
Online Access:https://www.rtj-mirea.ru/jour/article/view/168
id doaj-b661d2d4c5504dfaa87ab76df4524759
record_format Article
spelling doaj-b661d2d4c5504dfaa87ab76df45247592021-07-28T13:30:10ZrusMIREA - Russian Technological UniversityРоссийский технологический журнал2500-316X2019-10-017571910.32362/2500-316X-2019-7-5-7-19167A tool for automatic parallelization of affine programs for systems with shared and distributed memorySh. G. Magomedov0A. S. Lebedev1MIREA – Russian Technological UniversityMIREA – Russian Technological UniversityEffective programming of parallel architectures has always been a challenge, and it is especially complicated with their modern diversity. The task of automatic parallelization of program code was formulated from the moment of the appearance of the first parallel computers made in Russia (for example, PS2000). To date, programming languages and technologies have been developed that simplify the work of a programmer (T-System, MC#, Erlang, Go, OpenCL), but do not make parallelization automatic. The current situation requires the development of effective programming tools for parallel computing systems. Such tools should support the development of parallel programs for systems with shared and distributed memory. The paper deals with the problem of automatic parallelization of affine programs for such systems. Methods for calculating space-time mappings that optimize the locality of the program are discussed. The implementation of developed methods is done in Haskell within the source-to-source translator performing automatic parallelization. A comparison of the performance of parallel variants of lu, atax, syr2k programs obtained using the developed tool and the modern Pluto tool is made. The experiments were performed on two x86_64 machines connected by the InfiniBand network. OpenMP and MPI were used as parallelization technologies. The performance of the resulting parallel program indicates the practical applicability of the developed tool for affine programs parallelization.https://www.rtj-mirea.ru/jour/article/view/168automatic parallelizationaffine programspolyhedral modellocality optimizationinteger linear programming
collection DOAJ
language Russian
format Article
sources DOAJ
author Sh. G. Magomedov
A. S. Lebedev
spellingShingle Sh. G. Magomedov
A. S. Lebedev
A tool for automatic parallelization of affine programs for systems with shared and distributed memory
Российский технологический журнал
automatic parallelization
affine programs
polyhedral model
locality optimization
integer linear programming
author_facet Sh. G. Magomedov
A. S. Lebedev
author_sort Sh. G. Magomedov
title A tool for automatic parallelization of affine programs for systems with shared and distributed memory
title_short A tool for automatic parallelization of affine programs for systems with shared and distributed memory
title_full A tool for automatic parallelization of affine programs for systems with shared and distributed memory
title_fullStr A tool for automatic parallelization of affine programs for systems with shared and distributed memory
title_full_unstemmed A tool for automatic parallelization of affine programs for systems with shared and distributed memory
title_sort tool for automatic parallelization of affine programs for systems with shared and distributed memory
publisher MIREA - Russian Technological University
series Российский технологический журнал
issn 2500-316X
publishDate 2019-10-01
description Effective programming of parallel architectures has always been a challenge, and it is especially complicated with their modern diversity. The task of automatic parallelization of program code was formulated from the moment of the appearance of the first parallel computers made in Russia (for example, PS2000). To date, programming languages and technologies have been developed that simplify the work of a programmer (T-System, MC#, Erlang, Go, OpenCL), but do not make parallelization automatic. The current situation requires the development of effective programming tools for parallel computing systems. Such tools should support the development of parallel programs for systems with shared and distributed memory. The paper deals with the problem of automatic parallelization of affine programs for such systems. Methods for calculating space-time mappings that optimize the locality of the program are discussed. The implementation of developed methods is done in Haskell within the source-to-source translator performing automatic parallelization. A comparison of the performance of parallel variants of lu, atax, syr2k programs obtained using the developed tool and the modern Pluto tool is made. The experiments were performed on two x86_64 machines connected by the InfiniBand network. OpenMP and MPI were used as parallelization technologies. The performance of the resulting parallel program indicates the practical applicability of the developed tool for affine programs parallelization.
topic automatic parallelization
affine programs
polyhedral model
locality optimization
integer linear programming
url https://www.rtj-mirea.ru/jour/article/view/168
work_keys_str_mv AT shgmagomedov atoolforautomaticparallelizationofaffineprogramsforsystemswithsharedanddistributedmemory
AT aslebedev atoolforautomaticparallelizationofaffineprogramsforsystemswithsharedanddistributedmemory
AT shgmagomedov toolforautomaticparallelizationofaffineprogramsforsystemswithsharedanddistributedmemory
AT aslebedev toolforautomaticparallelizationofaffineprogramsforsystemswithsharedanddistributedmemory
_version_ 1721273400730583040