Automatic parallelization: Difference between revisions

Content deleted Content added
m Task 70: Update syntaxhighlight tags - remove use of deprecated <source> tags
Servalo (talk | contribs)
Removed a misleading assertion and its palliative
Line 4:
}}
 
'''Automatic parallelization''', also '''auto parallelization''', '''autoparallelization''', or '''parallelizationautoparallelization''', the last one of which implies automation when used in context, refers to converting sequential [[source code|code]] into [[multi-threaded]] or [[Automatic vectorization|vectorized]] (or even both) code in order to utilize multiple processors simultaneously in a shared-memory [[multiprocessor]] ([[Symmetric multiprocessing|SMP]]) machine. The goal of automatic parallelization is to relieve programmers from the hectic and error-prone manual parallelization process.<ref>[http://u.cs.biu.ac.il/~wiseman/para2001.pdf "{{cite journal|last=Yehezkael|first=Rafael|title=Experiments in Separating Computational Algorithm from Program Distribution and Communication|journal=Lecture Notes in Computer Science of Springer Verlag |year=2000|volume=1947|pages=268–278|doi=10.1007/3-540-70734-4_32|series=Lecture Notes in Computer Science|isbn=978-3-540-41729-3}}"]</ref> Though the quality of automatic parallelization has improved in the past several decades, fully automatic parallelization of sequential programs by compilers remains a grand challenge due to its need for complex [[program analysis (computer science)|program analysis]] and the unknown factors (such as input data range) during compilation.<ref name="pcworks">{{cite book | last = Fox | first = Geoffrey |author2=Roy Williams |author3=Paul Messina | title = Parallel Computing Works! | year = 1994 | publisher = Morgan Kaufmann | pages = 575, 593 | isbn = 978-1-55860-253-3 }}</ref>
 
The programming control structures on which autoparallelization places the most focus are [[Control flow#Loops|loop]]s, because, in general, most of the [[Run time (program lifecycle phase)|execution time]] of a program takes place inside some form of loop.