Since modern multicore processors can execute existing sequential programs
only on a single core, there is a strong need for automatic parallelization
of program code. Relying on existing algorithms, this paper describes one new
software solution tool for parallelization of sequential assembly code. The
main goal of this paper is to develop the parallelizator which reads
sequential assembler code and at the output provides parallelized code for
MIPS processor with multiple cores. The idea is the following: the parser
translates assembler input file to program objects suitable for further
processing. After that the static single assignment is done. Based on the
data flow graph, the parallelization algorithm separates instructions on
different cores. Once sequential code is parallelized by the parallelization
algorithm, registers are allocated with the algorithm for linear allocation,
and the result at the end of the program is distributed assembler code on
each of the cores. In the paper we evaluate the speedup of the matrix
multiplication example, which was processed by the parallelizator of assembly
code. The result is almost linear speedup of code execution, which increases
with the number of cores. The speed up on the two cores is 1.99, while on 16
cores the speed up is 13.88.
[1]
Vipin Kumar,et al.
Multilevel k-way hypergraph partitioning
,
1999,
DAC '99.
[2]
Vivek Sarkar,et al.
Linear scan register allocation
,
1999,
TOPL.
[3]
Miroslav Popovic,et al.
An Approach to Parallelization of Sequential C Code
,
2011,
2011 Second Eastern European Regional Conference on the Engineering of Computer Based Systems.
[4]
Aleksandar Erdeljan,et al.
Dynamic Repartitioning of Large Data Model in Distribution Management Systems
,
2012
.
[5]
Saumya K. Debray,et al.
Alias analysis of executable code
,
1998,
POPL '98.
[6]
Wolfram Amme,et al.
Data Dependence Analysis of Assembly Code
,
2004,
International Journal of Parallel Programming.
[7]
Aleksandar Erdeljan,et al.
An Optimal Initial Partitioning of Large Data Model in Utility Management Systems
,
2011
.
[8]
Vipin Kumar,et al.
A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs
,
1998,
SIAM J. Sci. Comput..
[9]
Michael Franz,et al.
Linear scan register allocation on SSA form
,
2010,
CGO '10.