% Encoding: UTF-8 @COMMENT{BibTeX export based on data in FAU CRIS: https://cris.fau.de/} @COMMENT{For any questions please write to cris-support@fau.de} @inproceedings{faucris.118677284, abstract = {
A common approach for dynamic parallelization of loops at runtime is the inspector-executor pattern. The inspector first runs the loop without any (side) effects to analyze whether there are data dependences that would prevent parallel execution. Only if no such dependences are found, does the executor phase actually run the loop iterations in parallel. In previous works, the overhead of the inspection must either be amortized by the parallel execution or is completely wasted if the loop turns out to be non-parallelizable.
In this paper we propose to run the inspection phase simultaneous to an instrumented sequential version of the loop. This way we can reduce and hide the overhead in case of a non-parallelizable loop. We discuss what needs to be done so that the sequentially executed iterations do not invalidate the inspector’s concurrent work (in which case sequential execution is needed for the whole loop).
Our measurements show that if a loop cannot be executed in parallel there is an overhead below 1.6 % compared to the runtime of the original sequential loop. If the loop is parallelizable, we see speedups of up to a factor of 3.6 on a quad core processor.
}, address = {Berlin Heidelberg}, author = {Brinkers, Daniel and Philippsen, Michael and Veldema, Ronald}, booktitle = {Languages and Compilers for Parallel Computing, 27th International Workshop, LCPC 2014}, date = {2014-09-15/2014-09-17}, doi = {10.1007/978-3-319-17473-0{\_}7}, editor = {James Brodman, Peng Tu}, faupublication = {yes}, isbn = {978-3-319-17472-3}, keywords = {multi-core, parallelization, compilers, program analysis}, note = {UnivIS-Import:2015-04-16:Pub.2013.tech.IMMD.IMMD2.double}, pages = {101-115}, peerreviewed = {Yes}, publisher = {Springer-verlag}, series = {Lecture Notes in Computer Science (LNCS)}, title = {{Simultaneous} inspection: {Hiding} the overhead of inspector-executor style dynamic parallelization}, venue = {Hillsboro, OR, USA}, volume = {7146}, year = {2015} }