A profile-based tool for finding pipeline parallelism in sequential programs


Autoria(s): Rul, Sean; Vandierendonck, Hans; De Bosschere, Keon
Data(s)

01/09/2010

Resumo

Traditional static analysis fails to auto-parallelize programs with a complex control and data flow. Furthermore, thread-level parallelism in such programs is often restricted to pipeline parallelism, which can be hard to discover by a programmer. In this paper we propose a tool that, based on profiling information, helps the programmer to discover parallelism. The programmer hand-picks the code transformations from among the proposed candidates which are then applied by automatic code transformation techniques. <br/> <br/>This paper contributes to the literature by presenting a profiling tool for discovering thread-level parallelism. We track dependencies at the whole-data structure level rather than at the element level or byte level in order to limit the profiling overhead. We perform a thorough analysis of the needs and costs of this technique. Furthermore, we present and validate the belief that programs with complex control and data flow contain significant amounts of exploitable coarse-grain pipeline parallelism in the program’s outer loops. This observation validates our approach to whole-data structure dependencies. As state-of-the-art compilers focus on loops iterating over data structure members, this observation also explains why our approach finds coarse-grain pipeline parallelism in cases that have remained out of reach for state-of-the-art compilers. In cases where traditional compilation techniques do find parallelism, our approach allows to discover higher degrees of parallelism, allowing a 40% speedup over traditional compilation techniques. Moreover, we demonstrate real speedups on multiple hardware platforms. <br/> <br/>

Identificador

http://pure.qub.ac.uk/portal/en/publications/a-profilebased-tool-for-finding-pipeline-parallelism-in-sequential-programs(25bb39de-e8fc-430e-b832-5792562dfb16).html

http://dx.doi.org/10.1016/j.parco.2010.05.006

Idioma(s)

eng

Direitos

info:eu-repo/semantics/closedAccess

Fonte

Rul , S , Vandierendonck , H & De Bosschere , K 2010 , ' A profile-based tool for finding pipeline parallelism in sequential programs ' Parallel Computing , vol 36 , no. 9 , pp. 531-551 . DOI: 10.1016/j.parco.2010.05.006

Palavras-Chave #/dk/atira/pure/subjectarea/asjc/1700/1705 #Computer Networks and Communications #/dk/atira/pure/subjectarea/asjc/1700/1712 #Software #/dk/atira/pure/subjectarea/asjc/1700/1708 #Hardware and Architecture #/dk/atira/pure/subjectarea/asjc/1700/1702 #Artificial Intelligence #/dk/atira/pure/subjectarea/asjc/1700/1704 #Computer Graphics and Computer-Aided Design #/dk/atira/pure/subjectarea/asjc/2600/2614 #Theoretical Computer Science
Tipo

article