Abstract

Parallelization is the process of converting a sequential program into a parallel form. It is recognized that a general solution needs to incorporate user knowledge and hence there is a need for a programming interface for parallelization. Speculative parallelization divides a program into possibly parallel tasks and runs them in parallel if they produce the same output as the original program. A run-time system monitors the execution for conflicts and reverts to sequential execution if needed. Previous studies have developed various programming primitives [1, 3, 6, 8, 9,11]. Unlike parallel constructs, many of these new primitives are hints and can be wrong. We call them parallelization hints. They mark parallelism but do not change the output of a program. This short paper discusses the constraints and opportunities of parallelization hints. The main points are summaried below. The first two mean lower performance, while the next two may mean better programmability and more parallelism, compared to programming not using hints.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.