A Case for Combining Compile-Time and Run-Time Parallelization

This paper demonstrates that significant improvements to automatic parallelization technology require that existing systems be extended in two ways: (1) they must combine high-quality compile-time analysis with low-cost run-time testing; and, (2) they must take control flow into account during analy...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Moon, Sungdo, So, Byoungro, Hall, Mary W., Murphy, Brian
Format: Tagungsbericht
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 106
container_issue
container_start_page 91
container_title
container_volume
creator Moon, Sungdo
So, Byoungro
Hall, Mary W.
Murphy, Brian
description This paper demonstrates that significant improvements to automatic parallelization technology require that existing systems be extended in two ways: (1) they must combine high-quality compile-time analysis with low-cost run-time testing; and, (2) they must take control flow into account during analysis. We support this claim with the results of an experiment that measures the safety of parallelization at run time for loops left unparallelized by the Stanford SUIF compiler’s automatic parallelization system. We present results of measurements on programs from two benchmark suites — Specfp95 and Nas sample benchmarks — which identify inherently parallel loops in these programs that are missed by the compiler. We characterize remaining parallelization opportunities, and find that most of the loops require run-time testing, analysis of control flow, or some combination of the two. We present a new compile-time analysis technique that can be used to parallelize most of these remaining parallel loops. This technique is designed to not only improve the results of compile-time parallelization, but also to produce low-cost, directed run-time tests that allow the system to defer binding of parallelization until run-time when safety cannot be proven statically. We call this approach predicated array data-flow analysis. We augment array data-flow analysis, which the compiler uses to identify independent and privatizable arrays, by associating with each array data-flow value a predicate. Predicated array data-flow analysis allows the compiler to derive “optimistic” data-flow values guarded by predicates; these predicates can be used to derive a run-time test guaranteeing the safety of parallelization.
doi_str_mv 10.1007/3-540-49530-4_7
format Conference Proceeding
fullrecord <record><control><sourceid>pascalfrancis_sprin</sourceid><recordid>TN_cdi_pascalfrancis_primary_1570955</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1570955</sourcerecordid><originalsourceid>FETCH-LOGICAL-p1377-ac03b2460ec1d48098256ccaf679e49b1f94a471c6376fc4af244990da17b6b63</originalsourceid><addsrcrecordid>eNo9kDtPwzAUhc1LopTOrBlYDdfx49YLEop4SZVAqMzWjetUhtSJYhjg15O2iOU-zjk6w8fYhYArAYDXkmsFXFktx-nwgM0szuWo7SQ8ZBNhhOBSKnv07xktsMRjNgEJJbeo5Ck7y_kdAEq05YTd3BYV5VA03VBU3aaOKab19upjG_gybkJBaVW8fqX980IDtW1o4w99xi6ds5OG2hxmf3vK3u7vltUjXzw_PFW3C94LicjJg6xLZSB4sVJzsPNSG--pMWiDsrVorCKFwhuJpvGKmlIpa2FFAmtTGzlll_venrKnthko-ZhdP8QNDd9OaASr9Rjj-1genbQOg6u77iM7AW7L0Ek3MnE7YG5kKH8Bu4xdAw</addsrcrecordid><sourcetype>Index Database</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>A Case for Combining Compile-Time and Run-Time Parallelization</title><source>Springer Books</source><creator>Moon, Sungdo ; So, Byoungro ; Hall, Mary W. ; Murphy, Brian</creator><contributor>O’Hallaron, David R.</contributor><creatorcontrib>Moon, Sungdo ; So, Byoungro ; Hall, Mary W. ; Murphy, Brian ; O’Hallaron, David R.</creatorcontrib><description>This paper demonstrates that significant improvements to automatic parallelization technology require that existing systems be extended in two ways: (1) they must combine high-quality compile-time analysis with low-cost run-time testing; and, (2) they must take control flow into account during analysis. We support this claim with the results of an experiment that measures the safety of parallelization at run time for loops left unparallelized by the Stanford SUIF compiler’s automatic parallelization system. We present results of measurements on programs from two benchmark suites — Specfp95 and Nas sample benchmarks — which identify inherently parallel loops in these programs that are missed by the compiler. We characterize remaining parallelization opportunities, and find that most of the loops require run-time testing, analysis of control flow, or some combination of the two. We present a new compile-time analysis technique that can be used to parallelize most of these remaining parallel loops. This technique is designed to not only improve the results of compile-time parallelization, but also to produce low-cost, directed run-time tests that allow the system to defer binding of parallelization until run-time when safety cannot be proven statically. We call this approach predicated array data-flow analysis. We augment array data-flow analysis, which the compiler uses to identify independent and privatizable arrays, by associating with each array data-flow value a predicate. Predicated array data-flow analysis allows the compiler to derive “optimistic” data-flow values guarded by predicates; these predicates can be used to derive a run-time test guaranteeing the safety of parallelization.</description><identifier>ISSN: 0302-9743</identifier><identifier>ISBN: 9783540651727</identifier><identifier>ISBN: 3540651721</identifier><identifier>EISSN: 1611-3349</identifier><identifier>EISBN: 9783540495307</identifier><identifier>EISBN: 3540495304</identifier><identifier>DOI: 10.1007/3-540-49530-4_7</identifier><language>eng</language><publisher>Berlin, Heidelberg: Springer Berlin Heidelberg</publisher><subject>Applied sciences ; Benchmark Suite ; Computer science; control theory; systems ; Exact sciences and technology ; Language processing and microprogramming ; Loop Body ; Parallel Loop ; Program Language Design ; Software ; Symbolic Analysis</subject><ispartof>Languages, Compilers, and Run-Time Systems for Scalable Computers, 2002, p.91-106</ispartof><rights>Springer-Verlag Berlin Heidelberg 1998</rights><rights>1999 INIST-CNRS</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://link.springer.com/content/pdf/10.1007/3-540-49530-4_7$$EPDF$$P50$$Gspringer$$H</linktopdf><linktohtml>$$Uhttps://link.springer.com/10.1007/3-540-49530-4_7$$EHTML$$P50$$Gspringer$$H</linktohtml><link.rule.ids>309,310,775,776,780,785,786,789,4035,4036,27904,38234,41421,42490</link.rule.ids><backlink>$$Uhttp://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&amp;idt=1570955$$DView record in Pascal Francis$$Hfree_for_read</backlink></links><search><contributor>O’Hallaron, David R.</contributor><creatorcontrib>Moon, Sungdo</creatorcontrib><creatorcontrib>So, Byoungro</creatorcontrib><creatorcontrib>Hall, Mary W.</creatorcontrib><creatorcontrib>Murphy, Brian</creatorcontrib><title>A Case for Combining Compile-Time and Run-Time Parallelization</title><title>Languages, Compilers, and Run-Time Systems for Scalable Computers</title><description>This paper demonstrates that significant improvements to automatic parallelization technology require that existing systems be extended in two ways: (1) they must combine high-quality compile-time analysis with low-cost run-time testing; and, (2) they must take control flow into account during analysis. We support this claim with the results of an experiment that measures the safety of parallelization at run time for loops left unparallelized by the Stanford SUIF compiler’s automatic parallelization system. We present results of measurements on programs from two benchmark suites — Specfp95 and Nas sample benchmarks — which identify inherently parallel loops in these programs that are missed by the compiler. We characterize remaining parallelization opportunities, and find that most of the loops require run-time testing, analysis of control flow, or some combination of the two. We present a new compile-time analysis technique that can be used to parallelize most of these remaining parallel loops. This technique is designed to not only improve the results of compile-time parallelization, but also to produce low-cost, directed run-time tests that allow the system to defer binding of parallelization until run-time when safety cannot be proven statically. We call this approach predicated array data-flow analysis. We augment array data-flow analysis, which the compiler uses to identify independent and privatizable arrays, by associating with each array data-flow value a predicate. Predicated array data-flow analysis allows the compiler to derive “optimistic” data-flow values guarded by predicates; these predicates can be used to derive a run-time test guaranteeing the safety of parallelization.</description><subject>Applied sciences</subject><subject>Benchmark Suite</subject><subject>Computer science; control theory; systems</subject><subject>Exact sciences and technology</subject><subject>Language processing and microprogramming</subject><subject>Loop Body</subject><subject>Parallel Loop</subject><subject>Program Language Design</subject><subject>Software</subject><subject>Symbolic Analysis</subject><issn>0302-9743</issn><issn>1611-3349</issn><isbn>9783540651727</isbn><isbn>3540651721</isbn><isbn>9783540495307</isbn><isbn>3540495304</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2002</creationdate><recordtype>conference_proceeding</recordtype><recordid>eNo9kDtPwzAUhc1LopTOrBlYDdfx49YLEop4SZVAqMzWjetUhtSJYhjg15O2iOU-zjk6w8fYhYArAYDXkmsFXFktx-nwgM0szuWo7SQ8ZBNhhOBSKnv07xktsMRjNgEJJbeo5Ck7y_kdAEq05YTd3BYV5VA03VBU3aaOKab19upjG_gybkJBaVW8fqX980IDtW1o4w99xi6ds5OG2hxmf3vK3u7vltUjXzw_PFW3C94LicjJg6xLZSB4sVJzsPNSG--pMWiDsrVorCKFwhuJpvGKmlIpa2FFAmtTGzlll_venrKnthko-ZhdP8QNDd9OaASr9Rjj-1genbQOg6u77iM7AW7L0Ek3MnE7YG5kKH8Bu4xdAw</recordid><startdate>20020924</startdate><enddate>20020924</enddate><creator>Moon, Sungdo</creator><creator>So, Byoungro</creator><creator>Hall, Mary W.</creator><creator>Murphy, Brian</creator><general>Springer Berlin Heidelberg</general><general>Springer-Verlag</general><scope>IQODW</scope></search><sort><creationdate>20020924</creationdate><title>A Case for Combining Compile-Time and Run-Time Parallelization</title><author>Moon, Sungdo ; So, Byoungro ; Hall, Mary W. ; Murphy, Brian</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-p1377-ac03b2460ec1d48098256ccaf679e49b1f94a471c6376fc4af244990da17b6b63</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2002</creationdate><topic>Applied sciences</topic><topic>Benchmark Suite</topic><topic>Computer science; control theory; systems</topic><topic>Exact sciences and technology</topic><topic>Language processing and microprogramming</topic><topic>Loop Body</topic><topic>Parallel Loop</topic><topic>Program Language Design</topic><topic>Software</topic><topic>Symbolic Analysis</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Moon, Sungdo</creatorcontrib><creatorcontrib>So, Byoungro</creatorcontrib><creatorcontrib>Hall, Mary W.</creatorcontrib><creatorcontrib>Murphy, Brian</creatorcontrib><collection>Pascal-Francis</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Moon, Sungdo</au><au>So, Byoungro</au><au>Hall, Mary W.</au><au>Murphy, Brian</au><au>O’Hallaron, David R.</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>A Case for Combining Compile-Time and Run-Time Parallelization</atitle><btitle>Languages, Compilers, and Run-Time Systems for Scalable Computers</btitle><date>2002-09-24</date><risdate>2002</risdate><spage>91</spage><epage>106</epage><pages>91-106</pages><issn>0302-9743</issn><eissn>1611-3349</eissn><isbn>9783540651727</isbn><isbn>3540651721</isbn><eisbn>9783540495307</eisbn><eisbn>3540495304</eisbn><abstract>This paper demonstrates that significant improvements to automatic parallelization technology require that existing systems be extended in two ways: (1) they must combine high-quality compile-time analysis with low-cost run-time testing; and, (2) they must take control flow into account during analysis. We support this claim with the results of an experiment that measures the safety of parallelization at run time for loops left unparallelized by the Stanford SUIF compiler’s automatic parallelization system. We present results of measurements on programs from two benchmark suites — Specfp95 and Nas sample benchmarks — which identify inherently parallel loops in these programs that are missed by the compiler. We characterize remaining parallelization opportunities, and find that most of the loops require run-time testing, analysis of control flow, or some combination of the two. We present a new compile-time analysis technique that can be used to parallelize most of these remaining parallel loops. This technique is designed to not only improve the results of compile-time parallelization, but also to produce low-cost, directed run-time tests that allow the system to defer binding of parallelization until run-time when safety cannot be proven statically. We call this approach predicated array data-flow analysis. We augment array data-flow analysis, which the compiler uses to identify independent and privatizable arrays, by associating with each array data-flow value a predicate. Predicated array data-flow analysis allows the compiler to derive “optimistic” data-flow values guarded by predicates; these predicates can be used to derive a run-time test guaranteeing the safety of parallelization.</abstract><cop>Berlin, Heidelberg</cop><pub>Springer Berlin Heidelberg</pub><doi>10.1007/3-540-49530-4_7</doi><tpages>16</tpages></addata></record>
fulltext fulltext
identifier ISSN: 0302-9743
ispartof Languages, Compilers, and Run-Time Systems for Scalable Computers, 2002, p.91-106
issn 0302-9743
1611-3349
language eng
recordid cdi_pascalfrancis_primary_1570955
source Springer Books
subjects Applied sciences
Benchmark Suite
Computer science
control theory
systems
Exact sciences and technology
Language processing and microprogramming
Loop Body
Parallel Loop
Program Language Design
Software
Symbolic Analysis
title A Case for Combining Compile-Time and Run-Time Parallelization
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-26T01%3A32%3A53IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-pascalfrancis_sprin&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=A%20Case%20for%20Combining%20Compile-Time%20and%20Run-Time%20Parallelization&rft.btitle=Languages,%20Compilers,%20and%20Run-Time%20Systems%20for%20Scalable%20Computers&rft.au=Moon,%20Sungdo&rft.date=2002-09-24&rft.spage=91&rft.epage=106&rft.pages=91-106&rft.issn=0302-9743&rft.eissn=1611-3349&rft.isbn=9783540651727&rft.isbn_list=3540651721&rft_id=info:doi/10.1007/3-540-49530-4_7&rft_dat=%3Cpascalfrancis_sprin%3E1570955%3C/pascalfrancis_sprin%3E%3Curl%3E%3C/url%3E&rft.eisbn=9783540495307&rft.eisbn_list=3540495304&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true