Publication:
Dynamic and Speculative Polyhedral ParallelizationUsing Compiler-Generated Skeletons

dc.contributor.authorJimborean, Alexandra
dc.contributor.authorClauss, Philippe
dc.contributor.authorDollinger, Jean-François
dc.contributor.authorLoechner, Vincent
dc.contributor.authorMartinez Caamaño, Juan Manuel
dc.contributor.departmentIngeniería y Tecnología de Computadores
dc.date.accessioned2024-02-01T08:33:05Z
dc.date.available2024-02-01T08:33:05Z
dc.date.issued2013-08-09
dc.description.abstractWe propose a framework based on an original generation and use of algo-rithmic skeletons, and dedicated to speculative parallelization of scientific nested loopkernels, able to apply at run-time polyhedral transformations to the target code in orderto exhibit parallelism and data locality. Parallel code generation is achieved almostat no cost by using binary algorithmic skeletons that are generated at compile-time,and that embed the original code and operations devoted to instantiate a polyhedralparallelizing transformation and to verify the speculations on dependences. The skele-tons are patched at run-time to generate the executable code. The run-time processincludes a transformation selection guided by online profiling phases on short samples,using an instrumented version of the code. During this phase, the accessed memoryaddresses are used to compute on-the-fly dependence distance vectors, and are alsointerpolated to build a predictor of the forthcoming accesses. Interpolating functionsand distance vectors are then employed for dependence analysis to select a paral-lelizing transformation that, if the prediction is correct, does not induce any rollbackduring execution. In order to ensure that the rollback time overhead stays low, the code is executed in successive slices of the outermost original loop of the nest. Eachslice can be either a parallel version which instantiates a skeleton, a sequential originalversion, or an instrumented version. Moreover, such slicing of the execution providesthe opportunity of transforming differently the code to adapt to the observed executionphases, by patching differently one of the pre-built skeletons. The framework has beenimplemented with extensions of the LLVM compiler and an x86-64 runtime system.Significant speed-ups are shown on a set of benchmarks that could not have beenhandled efficiently by a compiler.es
dc.embargo.terms1-ene-2999
dc.formatapplication/pdfes
dc.format.extent14es
dc.identifier.citationInternational Journal Parallel Programming (2014) 42:529–545
dc.identifier.doi10.1007/s10766-013-0259-4
dc.identifier.issn0885-7458
dc.identifier.urihttp://hdl.handle.net/10201/138367
dc.languageenges
dc.publisherSpringeres
dc.relationSin financiación externa a la Universidades
dc.rights.accessRightsinfo:eu-repo/semantics/restrictedAccess
dc.subjectAlgorithmic skeletonses
dc.subjectPolytope modeles
dc.subjectAutomatic parallelizationes
dc.subjectDynamic parallelizationes
dc.subjectLoop nests·Compilationes
dc.subjectSpeculative parallelizationes
dc.titleDynamic and Speculative Polyhedral ParallelizationUsing Compiler-Generated Skeletonses
dc.typeinfo:eu-repo/semantics/articlees
dspace.entity.typePublicationes
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
2014_IJPP_Alexandra_Jimborean.pdf
Size:
779.25 KB
Format:
Adobe Portable Document Format
Description:
License bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
2.26 KB
Format:
Item-specific license agreed upon to submission
Description:
Collections