Auto-Parallelizer is a tool that looks for parallelizable parts of source code of applications written in a sequential manner and language. In some cases it modifies the source code to maximize the number of such parts or to extend them. For example, a user can write a computational program in a sequential manner, then feed the source codes to the Auto-Parallelizer and the tool will produce code, some parts of which are executable in parallel. This usually speeds up the program execution by several times.
Auto-Parallelizer uses libraries that support OpenMP standard for executing code in parallel. In current implementation it uses libgomp, however it is portable to any existing library that supports all needed interface functions. The implementation currently parallelizes loops only. However in future it will also parallelize sections of sequential code, e.g. several calls.
At present Auto-Parallelizer works only with GCC with the modification we made in its sorce code. To make it operate you must have:
- A modified gcc-based compiler that reads and writes program semantics description files
- Auto-Parallelizer addendum that reads files, analyzes, modifies and writes them back
The modified gcc-based part is available as built for x86 linux flavors binaries and as a source code. The addendum is isolated from gcc – it is based on Universal Translating Library and comprises our intellectual property. The addendum is available as binary package built for x86 linux flavors.
We've launched beta-version of Auto-Parallelizer for Linux on x86, IA64 and PowerPC platforms. We compared performance results of Auto-Parallelizer beta version with the results of one of the most efficient compiler for x86 and IA64 platforms - icc 11.0.074, results of the most efficient compiler for PowerPC platform as well as results of the most widely spread compiler - gcc (version 4.3.1). The comparison were done on 6 berchmarks from SPEC/CPU2006 and on 6 benchmarks from NAS Parallel Benchmarks 3.3.
Here you can get documentation of Auto-Parallelizer using.
Here we put archive with schemes for xml-files that are used by gcc-xil for representation saving and restoring.
Below you can find archive with a number of simple examples, that are mentioned in user guide and help you to start Auto-Parallelizer using.
How to get Auto-Parallelizer
To get beta-version of Auto-Parallelizer you should fill in the form given below. Atfer that we will send you references for downloading and digital key that is required for installation.
Below the measurement results for each platform are given.
Links has been clicked:User Guide: times
Gcc-xml patch: times
Gcc-xml schemes: times