+7 (495) 987 43 74 ext. 3304
Join us -              
Рус   |   Eng

Authors

Vlasov D.

Degree
Postgraduate, Higher School of Economics
E-mail
dsvlasov@edu.hse.ru
Location
Moscow
Articles

Features and effects of using automatic parallel program construction systems in comparison with MPI and OpenMP programming

Developing efficient parallel programs for multicomputers is a complex task that requires solutions to numerous issues. On the one hand, it is necessary to ensure that a parallel program has required non-functional properties, such as reducing the overhead of organizing parallel processing, balancing the load across computational nodes and processor cores, etc. On the other hand, new classes of errors are relevant for parallel programs that are not typical for sequential programs. To overcome these issues, automatic parallel program construction systems are being developed. Such systems take over the work of executing a program on a multicomputer and providing non-functional properties. This allows the user to focus on solving the applied problem. The goal of this paper is to evaluate the degree of readiness of popular automatic parallel program construction systems in terms of both performance and user experience, and also to identify classes of problems for which it is advisable to use the systems under consideration. This paper presents a comparison of these systems with each other and with MPI and OpenMP technologies. The comparison is based on the criteria most important to the user when choosing a technology (performance, completeness of documentation, ease of installation, debugging and optimization, etc.) Common problems typical of such systems and discussed in the paper are incomplete documentation, errors, and non-obvious behavior. However, these systems are mostly capable of constructing parallel programs with acceptable performance. At the same time, the relative simplicity and high level of input languages of the systems make it possible to implement an applied algorithm with less effort compared to parallel programming in MPI and OpenMP technologies. Read more...