Revisiting the Sequential Programming Model for Multi-Core

Single-threaded programming is already considered a complicated task. The move to multi-threaded programming only increases the complexity and cost involved in software development due to rewriting legacy code, training of the programmer, increased debugging of the program, and efforts to avoid race...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Bridges, M.J., Vachharajani, N., Yun Zhang, Jablin, T., August, D.I.
Format: Tagungsbericht
Sprache:eng ; jpn
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 84
container_issue
container_start_page 69
container_title
container_volume
creator Bridges, M.J.
Vachharajani, N.
Yun Zhang
Jablin, T.
August, D.I.
description Single-threaded programming is already considered a complicated task. The move to multi-threaded programming only increases the complexity and cost involved in software development due to rewriting legacy code, training of the programmer, increased debugging of the program, and efforts to avoid race conditions, deadlocks, and other problems associated with parallel programming. To address these costs, other approaches, such as automatic thread extraction, have been explored. Unfortunately, the amount of parallelism that has been automatically extracted is generally insufficient to keep many cores busy. This paper argues that this lack of parallelism is not an intrinsic limitation of the sequential programming model, but rather occurs for two reasons. First, there exists no framework for automatic thread extraction that brings together key existing state-of-the-art compiler and hardware techniques. This paper shows that such a framework can yield scalable parallelization on several SPEC CINT2000 benchmarks. Second, existing sequential programming languages force programmers to define a single legal program outcome, rather than allowing for a range of legal outcomes. This paper shows that natural extensions to the sequential programming model enable parallelization for the remainder of the SPEC CINT2000 suite. Our experience demonstrates that, by changing only 60 source code lines, all of the C benchmarks in the SPEC CINT2000 suite were parallelizable by automatic thread extraction. This process, constrained by the limits of modern optimizing compilers, yielded a speedup of 454% on these applications.
doi_str_mv 10.1109/MICRO.2007.20
format Conference Proceeding
fullrecord <record><control><sourceid>ieee_6IE</sourceid><recordid>TN_cdi_ieee_primary_4408246</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>4408246</ieee_id><sourcerecordid>4408246</sourcerecordid><originalsourceid>FETCH-LOGICAL-i156t-9271a3b138a697df65012a1ab1235176ae4f0653dc3ed5c7d42de3dc3860ceaa3</originalsourceid><addsrcrecordid>eNotjEtLw0AURkdUsKkuXbnJH0i9d56JOwk-Cg2VquCu3GZu6kja6CQV_Pe26OY7HA58QlwiTBChuK6m5WI-kQBuP0ciQS21RoP4diwScLYwCrTLT8QIwclMa4NnIun7DwDI93Ukbhb8HfowhO06Hd45feavHW-HQG36FLt1pM3mkKrOc5s2XUyrXTuErOwin4vThtqeL_45Fq_3dy_lYzabP0zL21kW0NghK6RDUitUOdnC-cYaQElIK5TKoLPEugFrlK8Ve1M7r6Xng-UWaiZSY3H19xuYefkZw4biz1JryKW26heg2UgI</addsrcrecordid><sourcetype>Publisher</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>Revisiting the Sequential Programming Model for Multi-Core</title><source>IEEE Electronic Library (IEL) Conference Proceedings</source><creator>Bridges, M.J. ; Vachharajani, N. ; Yun Zhang ; Jablin, T. ; August, D.I.</creator><creatorcontrib>Bridges, M.J. ; Vachharajani, N. ; Yun Zhang ; Jablin, T. ; August, D.I.</creatorcontrib><description>Single-threaded programming is already considered a complicated task. The move to multi-threaded programming only increases the complexity and cost involved in software development due to rewriting legacy code, training of the programmer, increased debugging of the program, and efforts to avoid race conditions, deadlocks, and other problems associated with parallel programming. To address these costs, other approaches, such as automatic thread extraction, have been explored. Unfortunately, the amount of parallelism that has been automatically extracted is generally insufficient to keep many cores busy. This paper argues that this lack of parallelism is not an intrinsic limitation of the sequential programming model, but rather occurs for two reasons. First, there exists no framework for automatic thread extraction that brings together key existing state-of-the-art compiler and hardware techniques. This paper shows that such a framework can yield scalable parallelization on several SPEC CINT2000 benchmarks. Second, existing sequential programming languages force programmers to define a single legal program outcome, rather than allowing for a range of legal outcomes. This paper shows that natural extensions to the sequential programming model enable parallelization for the remainder of the SPEC CINT2000 suite. Our experience demonstrates that, by changing only 60 source code lines, all of the C benchmarks in the SPEC CINT2000 suite were parallelizable by automatic thread extraction. This process, constrained by the limits of modern optimizing compilers, yielded a speedup of 454% on these applications.</description><identifier>ISSN: 1072-4451</identifier><identifier>ISBN: 0769530478</identifier><identifier>ISBN: 9780769530475</identifier><identifier>EISBN: 142441511X</identifier><identifier>EISBN: 9781424415113</identifier><identifier>DOI: 10.1109/MICRO.2007.20</identifier><language>eng ; jpn</language><publisher>IEEE</publisher><subject>Computer languages ; Costs ; Debugging ; Hardware ; Law ; Legal factors ; Parallel programming ; Programming profession ; System recovery ; Yarn</subject><ispartof>40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007), 2007, p.69-84</ispartof><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/4408246$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>309,310,776,780,785,786,2052,4036,4037,27902,54895</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/4408246$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Bridges, M.J.</creatorcontrib><creatorcontrib>Vachharajani, N.</creatorcontrib><creatorcontrib>Yun Zhang</creatorcontrib><creatorcontrib>Jablin, T.</creatorcontrib><creatorcontrib>August, D.I.</creatorcontrib><title>Revisiting the Sequential Programming Model for Multi-Core</title><title>40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007)</title><addtitle>MICRO</addtitle><description>Single-threaded programming is already considered a complicated task. The move to multi-threaded programming only increases the complexity and cost involved in software development due to rewriting legacy code, training of the programmer, increased debugging of the program, and efforts to avoid race conditions, deadlocks, and other problems associated with parallel programming. To address these costs, other approaches, such as automatic thread extraction, have been explored. Unfortunately, the amount of parallelism that has been automatically extracted is generally insufficient to keep many cores busy. This paper argues that this lack of parallelism is not an intrinsic limitation of the sequential programming model, but rather occurs for two reasons. First, there exists no framework for automatic thread extraction that brings together key existing state-of-the-art compiler and hardware techniques. This paper shows that such a framework can yield scalable parallelization on several SPEC CINT2000 benchmarks. Second, existing sequential programming languages force programmers to define a single legal program outcome, rather than allowing for a range of legal outcomes. This paper shows that natural extensions to the sequential programming model enable parallelization for the remainder of the SPEC CINT2000 suite. Our experience demonstrates that, by changing only 60 source code lines, all of the C benchmarks in the SPEC CINT2000 suite were parallelizable by automatic thread extraction. This process, constrained by the limits of modern optimizing compilers, yielded a speedup of 454% on these applications.</description><subject>Computer languages</subject><subject>Costs</subject><subject>Debugging</subject><subject>Hardware</subject><subject>Law</subject><subject>Legal factors</subject><subject>Parallel programming</subject><subject>Programming profession</subject><subject>System recovery</subject><subject>Yarn</subject><issn>1072-4451</issn><isbn>0769530478</isbn><isbn>9780769530475</isbn><isbn>142441511X</isbn><isbn>9781424415113</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2007</creationdate><recordtype>conference_proceeding</recordtype><sourceid>6IE</sourceid><sourceid>RIE</sourceid><recordid>eNotjEtLw0AURkdUsKkuXbnJH0i9d56JOwk-Cg2VquCu3GZu6kja6CQV_Pe26OY7HA58QlwiTBChuK6m5WI-kQBuP0ciQS21RoP4diwScLYwCrTLT8QIwclMa4NnIun7DwDI93Ukbhb8HfowhO06Hd45feavHW-HQG36FLt1pM3mkKrOc5s2XUyrXTuErOwin4vThtqeL_45Fq_3dy_lYzabP0zL21kW0NghK6RDUitUOdnC-cYaQElIK5TKoLPEugFrlK8Ve1M7r6Xng-UWaiZSY3H19xuYefkZw4biz1JryKW26heg2UgI</recordid><startdate>2007</startdate><enddate>2007</enddate><creator>Bridges, M.J.</creator><creator>Vachharajani, N.</creator><creator>Yun Zhang</creator><creator>Jablin, T.</creator><creator>August, D.I.</creator><general>IEEE</general><scope>6IE</scope><scope>6IL</scope><scope>CBEJK</scope><scope>RIE</scope><scope>RIL</scope></search><sort><creationdate>2007</creationdate><title>Revisiting the Sequential Programming Model for Multi-Core</title><author>Bridges, M.J. ; Vachharajani, N. ; Yun Zhang ; Jablin, T. ; August, D.I.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-i156t-9271a3b138a697df65012a1ab1235176ae4f0653dc3ed5c7d42de3dc3860ceaa3</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng ; jpn</language><creationdate>2007</creationdate><topic>Computer languages</topic><topic>Costs</topic><topic>Debugging</topic><topic>Hardware</topic><topic>Law</topic><topic>Legal factors</topic><topic>Parallel programming</topic><topic>Programming profession</topic><topic>System recovery</topic><topic>Yarn</topic><toplevel>online_resources</toplevel><creatorcontrib>Bridges, M.J.</creatorcontrib><creatorcontrib>Vachharajani, N.</creatorcontrib><creatorcontrib>Yun Zhang</creatorcontrib><creatorcontrib>Jablin, T.</creatorcontrib><creatorcontrib>August, D.I.</creatorcontrib><collection>IEEE Electronic Library (IEL) Conference Proceedings</collection><collection>IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume</collection><collection>IEEE Xplore All Conference Proceedings</collection><collection>IEEE Electronic Library (IEL)</collection><collection>IEEE Proceedings Order Plans (POP All) 1998-Present</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Bridges, M.J.</au><au>Vachharajani, N.</au><au>Yun Zhang</au><au>Jablin, T.</au><au>August, D.I.</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Revisiting the Sequential Programming Model for Multi-Core</atitle><btitle>40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007)</btitle><stitle>MICRO</stitle><date>2007</date><risdate>2007</risdate><spage>69</spage><epage>84</epage><pages>69-84</pages><issn>1072-4451</issn><isbn>0769530478</isbn><isbn>9780769530475</isbn><eisbn>142441511X</eisbn><eisbn>9781424415113</eisbn><abstract>Single-threaded programming is already considered a complicated task. The move to multi-threaded programming only increases the complexity and cost involved in software development due to rewriting legacy code, training of the programmer, increased debugging of the program, and efforts to avoid race conditions, deadlocks, and other problems associated with parallel programming. To address these costs, other approaches, such as automatic thread extraction, have been explored. Unfortunately, the amount of parallelism that has been automatically extracted is generally insufficient to keep many cores busy. This paper argues that this lack of parallelism is not an intrinsic limitation of the sequential programming model, but rather occurs for two reasons. First, there exists no framework for automatic thread extraction that brings together key existing state-of-the-art compiler and hardware techniques. This paper shows that such a framework can yield scalable parallelization on several SPEC CINT2000 benchmarks. Second, existing sequential programming languages force programmers to define a single legal program outcome, rather than allowing for a range of legal outcomes. This paper shows that natural extensions to the sequential programming model enable parallelization for the remainder of the SPEC CINT2000 suite. Our experience demonstrates that, by changing only 60 source code lines, all of the C benchmarks in the SPEC CINT2000 suite were parallelizable by automatic thread extraction. This process, constrained by the limits of modern optimizing compilers, yielded a speedup of 454% on these applications.</abstract><pub>IEEE</pub><doi>10.1109/MICRO.2007.20</doi><tpages>16</tpages></addata></record>
fulltext fulltext_linktorsrc
identifier ISSN: 1072-4451
ispartof 40th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO 2007), 2007, p.69-84
issn 1072-4451
language eng ; jpn
recordid cdi_ieee_primary_4408246
source IEEE Electronic Library (IEL) Conference Proceedings
subjects Computer languages
Costs
Debugging
Hardware
Law
Legal factors
Parallel programming
Programming profession
System recovery
Yarn
title Revisiting the Sequential Programming Model for Multi-Core
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-02-14T04%3A38%3A34IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-ieee_6IE&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Revisiting%20the%20Sequential%20Programming%20Model%20for%20Multi-Core&rft.btitle=40th%20Annual%20IEEE/ACM%20International%20Symposium%20on%20Microarchitecture%20(MICRO%202007)&rft.au=Bridges,%20M.J.&rft.date=2007&rft.spage=69&rft.epage=84&rft.pages=69-84&rft.issn=1072-4451&rft.isbn=0769530478&rft.isbn_list=9780769530475&rft_id=info:doi/10.1109/MICRO.2007.20&rft_dat=%3Cieee_6IE%3E4408246%3C/ieee_6IE%3E%3Curl%3E%3C/url%3E&rft.eisbn=142441511X&rft.eisbn_list=9781424415113&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rft_ieee_id=4408246&rfr_iscdi=true