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.
Keywords:
automated parallelization, program analysis, program transformation, graphical user interface, SAPFOR, DVM, LLVM