Systems FOR Automated Parallelization (SAPFOR) combines various approaches to automation of parallel programming. On the one hand, SAPFOR implements static and dynamic analysis techniques and an automatic parallelizing compiler which relies on them. On the other hand, in order to increase performance of a generated parallel program, it is often necessary to carry out preliminary transformations of the original sequential program. Moreover, specifications of additional properties, which cannot be determined by analysis tools, are required in many cases. For this purpose, SAPFOR implements source-to-source transformations which can be performed automatically at the request of the user. Graphic user interface is used to maintain the parallelization process. It allows the user to investigate the decisions which the system makes, as well as to set additional properties of the original program. This paper presents an approach, which is implemented in SAPFOR, to automate parallelization of C programs for the compute systems with shared memory. We also highlight opportunities of the graphic user interface and consider application of DVMH directive based programming model to automate the mapping of programs to accelerators. This paper compares performance of the automatic parallelization of some programs from NAS Parallel Benchmarks 3.3.1 with manual parallelization based on OpenCL.
Parallelization of large-scale computational applications leads to the following challenges a programmer will face: the growing amount of modularity, dynamic application functionality and multilingual source code. In general program transformation is essential for program parallelization. However, manual program transformation is not straightforward in the case of a large amount of code. The growing size of code drastically complicates the main stages of the parallel programming: distribution of data on the processors and mapping of computations on the processors. Therefore, the incremental or step-by-step parallelization mode was introduced in SAPFOR system [1,2] to map sequential large-scale applications to parallel architectures with distributed memory. In addition, special attention was directed to the automatic finding the required transformations of the sequential program. SAPFOR also relies on the automatic execution of the found transformations. However, the three main challenges mentioned above also require their solution. This paper discusses possible ways to overcome these problems.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.