Automatic parallelization: Difference between revisions

Content deleted Content added
Wimt (talk | contribs)
m Reverted 2 edits by 81.196.163.15 to last revision by Wiki ipplepen. using TW
Mirstan (talk | contribs)
fix spelling in the word programmers
Line 1:
'''Automatic parallelization''', also '''auto parallelization''', '''autoparallelization''', '''parallelization''', or '''//ization''' (shorthand), the last two of which imply automation when used in context, refers to the use of a modern optimizing parallelizing [[compiler]] to convert sequential [[source code|code]] into [[multi-threaded]] or vectorized (or even both) code in order to utilize multiple processors simultaneously in a shared-memory [[multiprocessor]] ([[SMP]]) machine. The goal of automatic parallelization is to relieve programersprogrammers from the tedious and error-prone manual parallelization process. 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.
 
The programming control structures on which autoparallelization places the most focus are [[Control flow#Loops|loop]]s, because, in general, most of the [[execution time]] of a program takes place inside some form of loop. A parallelizing compiler tries to split up a loop so that its [[iteration]]s can be executed on separate [[processor]]s concurrently.