Intel's Array Building Blocks: A retargetable, dynamic compiler and embedded language

Our ability to create systems with large amount of hardware parallelism is exceeding the average software developer's ability to effectively program them. This is a problem that plagues our industry. Since the vast majority of the world's software developers are not parallel programming ex...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Newburn, Chris J., So, Byoungro, Liu, Zhenying, McCool, Michael, Ghuloum, Anwar, Toit, Stefanus Du, Wang, Zhi Gang, Du, Zhao Hui, Chen, Yongjian, Wu, Gansha, Guo, Peng, Liu, Zhanglin, Zhang, Dan
Format: Tagungsbericht
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 235
container_issue
container_start_page 224
container_title
container_volume
creator Newburn, Chris J.
So, Byoungro
Liu, Zhenying
McCool, Michael
Ghuloum, Anwar
Toit, Stefanus Du
Wang, Zhi Gang
Du, Zhao Hui
Chen, Yongjian
Wu, Gansha
Guo, Peng
Liu, Zhanglin
Zhang, Dan
description Our ability to create systems with large amount of hardware parallelism is exceeding the average software developer's ability to effectively program them. This is a problem that plagues our industry. Since the vast majority of the world's software developers are not parallel programming experts, making it easy to write, port, and debug applications with sufficient core and vector parallelism is essential to enabling the use of multi- and many-core processor architectures. However, hardware architectures and vector ISAs are also shifting and diversifying quickly, making it difficult for a single binary to run well on all possible targets. Because of this, retargetability and dynamic compilation are of growing relevance. This paper introduces Intel® Array Building Blocks (ArBB), which is a retargetable dynamic compilation framework. This system focuses on making it easier to write and port programs so that they can harvest data and thread parallelism on both multi-core and heterogeneous many-core architectures, while staying within standard C++. ArBB interoperates with other programming models to help meet the demands we hear from customers for a solution with both greater programmer productivity and good performance. This work makes contributions in language features, compiler architecture, code transformations and optimizations. It presents performance data from the current beta release of ArBB and quantitatively shows the impact of some key analyses, enabling transformations and optimizations for a variety of benchmarks that are of interest to our customers.
doi_str_mv 10.5555/2190025.2190069
format Conference Proceeding
fullrecord <record><control><sourceid>acm</sourceid><recordid>TN_cdi_acm_books_10_5555_2190025_2190069_brief</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>acm_books_10_5555_2190025_2190069</sourcerecordid><originalsourceid>FETCH-acm_books_10_5555_2190025_21900693</originalsourceid><addsrcrecordid>eNpjYBA3NNAzBQJ9I0NLAwMjUz0wbWbJzMBlaGZoZGFibGpmysHAW1ycZQAEZmYWFpZGnAyynnklqTnqxQqORUWJlQpOpZk5KZl56QpOOfnJ2cU8DKxpiTnFqbxQmptBw801xNlDNzE5Nz4pPz-7ON7QIB5kbTzU2niotcbcDHpEKo1PKspMTTMmwWwAI1w88w</addsrcrecordid><sourcetype>Publisher</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>Intel's Array Building Blocks: A retargetable, dynamic compiler and embedded language</title><source>IEEE Electronic Library (IEL) Conference Proceedings</source><creator>Newburn, Chris J. ; So, Byoungro ; Liu, Zhenying ; McCool, Michael ; Ghuloum, Anwar ; Toit, Stefanus Du ; Wang, Zhi Gang ; Du, Zhao Hui ; Chen, Yongjian ; Wu, Gansha ; Guo, Peng ; Liu, Zhanglin ; Zhang, Dan</creator><creatorcontrib>Newburn, Chris J. ; So, Byoungro ; Liu, Zhenying ; McCool, Michael ; Ghuloum, Anwar ; Toit, Stefanus Du ; Wang, Zhi Gang ; Du, Zhao Hui ; Chen, Yongjian ; Wu, Gansha ; Guo, Peng ; Liu, Zhanglin ; Zhang, Dan</creatorcontrib><description>Our ability to create systems with large amount of hardware parallelism is exceeding the average software developer's ability to effectively program them. This is a problem that plagues our industry. Since the vast majority of the world's software developers are not parallel programming experts, making it easy to write, port, and debug applications with sufficient core and vector parallelism is essential to enabling the use of multi- and many-core processor architectures. However, hardware architectures and vector ISAs are also shifting and diversifying quickly, making it difficult for a single binary to run well on all possible targets. Because of this, retargetability and dynamic compilation are of growing relevance. This paper introduces Intel® Array Building Blocks (ArBB), which is a retargetable dynamic compilation framework. This system focuses on making it easier to write and port programs so that they can harvest data and thread parallelism on both multi-core and heterogeneous many-core architectures, while staying within standard C++. ArBB interoperates with other programming models to help meet the demands we hear from customers for a solution with both greater programmer productivity and good performance. This work makes contributions in language features, compiler architecture, code transformations and optimizations. It presents performance data from the current beta release of ArBB and quantitatively shows the impact of some key analyses, enabling transformations and optimizations for a variety of benchmarks that are of interest to our customers.</description><identifier>ISBN: 1612843565</identifier><identifier>ISBN: 9781612843568</identifier><identifier>DOI: 10.5555/2190025.2190069</identifier><language>eng</language><publisher>Washington, DC, USA: IEEE Computer Society</publisher><subject>Software and its engineering ; Software and its engineering -- Software notations and tools ; Software and its engineering -- Software notations and tools -- Compilers ; Software and its engineering -- Software notations and tools -- General programming languages ; Software and its engineering -- Software notations and tools -- General programming languages -- Language types ; Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Parallel programming languages</subject><ispartof>Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization, 2011, p.224-235</ispartof><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>309,310,780,784,789,790,27925</link.rule.ids></links><search><creatorcontrib>Newburn, Chris J.</creatorcontrib><creatorcontrib>So, Byoungro</creatorcontrib><creatorcontrib>Liu, Zhenying</creatorcontrib><creatorcontrib>McCool, Michael</creatorcontrib><creatorcontrib>Ghuloum, Anwar</creatorcontrib><creatorcontrib>Toit, Stefanus Du</creatorcontrib><creatorcontrib>Wang, Zhi Gang</creatorcontrib><creatorcontrib>Du, Zhao Hui</creatorcontrib><creatorcontrib>Chen, Yongjian</creatorcontrib><creatorcontrib>Wu, Gansha</creatorcontrib><creatorcontrib>Guo, Peng</creatorcontrib><creatorcontrib>Liu, Zhanglin</creatorcontrib><creatorcontrib>Zhang, Dan</creatorcontrib><title>Intel's Array Building Blocks: A retargetable, dynamic compiler and embedded language</title><title>Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization</title><description>Our ability to create systems with large amount of hardware parallelism is exceeding the average software developer's ability to effectively program them. This is a problem that plagues our industry. Since the vast majority of the world's software developers are not parallel programming experts, making it easy to write, port, and debug applications with sufficient core and vector parallelism is essential to enabling the use of multi- and many-core processor architectures. However, hardware architectures and vector ISAs are also shifting and diversifying quickly, making it difficult for a single binary to run well on all possible targets. Because of this, retargetability and dynamic compilation are of growing relevance. This paper introduces Intel® Array Building Blocks (ArBB), which is a retargetable dynamic compilation framework. This system focuses on making it easier to write and port programs so that they can harvest data and thread parallelism on both multi-core and heterogeneous many-core architectures, while staying within standard C++. ArBB interoperates with other programming models to help meet the demands we hear from customers for a solution with both greater programmer productivity and good performance. This work makes contributions in language features, compiler architecture, code transformations and optimizations. It presents performance data from the current beta release of ArBB and quantitatively shows the impact of some key analyses, enabling transformations and optimizations for a variety of benchmarks that are of interest to our customers.</description><subject>Software and its engineering</subject><subject>Software and its engineering -- Software notations and tools</subject><subject>Software and its engineering -- Software notations and tools -- Compilers</subject><subject>Software and its engineering -- Software notations and tools -- General programming languages</subject><subject>Software and its engineering -- Software notations and tools -- General programming languages -- Language types</subject><subject>Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Parallel programming languages</subject><isbn>1612843565</isbn><isbn>9781612843568</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2011</creationdate><recordtype>conference_proceeding</recordtype><sourceid/><recordid>eNpjYBA3NNAzBQJ9I0NLAwMjUz0wbWbJzMBlaGZoZGFibGpmysHAW1ycZQAEZmYWFpZGnAyynnklqTnqxQqORUWJlQpOpZk5KZl56QpOOfnJ2cU8DKxpiTnFqbxQmptBw801xNlDNzE5Nz4pPz-7ON7QIB5kbTzU2niotcbcDHpEKo1PKspMTTMmwWwAI1w88w</recordid><startdate>20110402</startdate><enddate>20110402</enddate><creator>Newburn, Chris J.</creator><creator>So, Byoungro</creator><creator>Liu, Zhenying</creator><creator>McCool, Michael</creator><creator>Ghuloum, Anwar</creator><creator>Toit, Stefanus Du</creator><creator>Wang, Zhi Gang</creator><creator>Du, Zhao Hui</creator><creator>Chen, Yongjian</creator><creator>Wu, Gansha</creator><creator>Guo, Peng</creator><creator>Liu, Zhanglin</creator><creator>Zhang, Dan</creator><general>IEEE Computer Society</general><scope/></search><sort><creationdate>20110402</creationdate><title>Intel's Array Building Blocks</title><author>Newburn, Chris J. ; So, Byoungro ; Liu, Zhenying ; McCool, Michael ; Ghuloum, Anwar ; Toit, Stefanus Du ; Wang, Zhi Gang ; Du, Zhao Hui ; Chen, Yongjian ; Wu, Gansha ; Guo, Peng ; Liu, Zhanglin ; Zhang, Dan</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-acm_books_10_5555_2190025_21900693</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2011</creationdate><topic>Software and its engineering</topic><topic>Software and its engineering -- Software notations and tools</topic><topic>Software and its engineering -- Software notations and tools -- Compilers</topic><topic>Software and its engineering -- Software notations and tools -- General programming languages</topic><topic>Software and its engineering -- Software notations and tools -- General programming languages -- Language types</topic><topic>Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Parallel programming languages</topic><toplevel>online_resources</toplevel><creatorcontrib>Newburn, Chris J.</creatorcontrib><creatorcontrib>So, Byoungro</creatorcontrib><creatorcontrib>Liu, Zhenying</creatorcontrib><creatorcontrib>McCool, Michael</creatorcontrib><creatorcontrib>Ghuloum, Anwar</creatorcontrib><creatorcontrib>Toit, Stefanus Du</creatorcontrib><creatorcontrib>Wang, Zhi Gang</creatorcontrib><creatorcontrib>Du, Zhao Hui</creatorcontrib><creatorcontrib>Chen, Yongjian</creatorcontrib><creatorcontrib>Wu, Gansha</creatorcontrib><creatorcontrib>Guo, Peng</creatorcontrib><creatorcontrib>Liu, Zhanglin</creatorcontrib><creatorcontrib>Zhang, Dan</creatorcontrib></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Newburn, Chris J.</au><au>So, Byoungro</au><au>Liu, Zhenying</au><au>McCool, Michael</au><au>Ghuloum, Anwar</au><au>Toit, Stefanus Du</au><au>Wang, Zhi Gang</au><au>Du, Zhao Hui</au><au>Chen, Yongjian</au><au>Wu, Gansha</au><au>Guo, Peng</au><au>Liu, Zhanglin</au><au>Zhang, Dan</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Intel's Array Building Blocks: A retargetable, dynamic compiler and embedded language</atitle><btitle>Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization</btitle><date>2011-04-02</date><risdate>2011</risdate><spage>224</spage><epage>235</epage><pages>224-235</pages><isbn>1612843565</isbn><isbn>9781612843568</isbn><abstract>Our ability to create systems with large amount of hardware parallelism is exceeding the average software developer's ability to effectively program them. This is a problem that plagues our industry. Since the vast majority of the world's software developers are not parallel programming experts, making it easy to write, port, and debug applications with sufficient core and vector parallelism is essential to enabling the use of multi- and many-core processor architectures. However, hardware architectures and vector ISAs are also shifting and diversifying quickly, making it difficult for a single binary to run well on all possible targets. Because of this, retargetability and dynamic compilation are of growing relevance. This paper introduces Intel® Array Building Blocks (ArBB), which is a retargetable dynamic compilation framework. This system focuses on making it easier to write and port programs so that they can harvest data and thread parallelism on both multi-core and heterogeneous many-core architectures, while staying within standard C++. ArBB interoperates with other programming models to help meet the demands we hear from customers for a solution with both greater programmer productivity and good performance. This work makes contributions in language features, compiler architecture, code transformations and optimizations. It presents performance data from the current beta release of ArBB and quantitatively shows the impact of some key analyses, enabling transformations and optimizations for a variety of benchmarks that are of interest to our customers.</abstract><cop>Washington, DC, USA</cop><pub>IEEE Computer Society</pub><doi>10.5555/2190025.2190069</doi></addata></record>
fulltext fulltext
identifier ISBN: 1612843565
ispartof Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization, 2011, p.224-235
issn
language eng
recordid cdi_acm_books_10_5555_2190025_2190069_brief
source IEEE Electronic Library (IEL) Conference Proceedings
subjects Software and its engineering
Software and its engineering -- Software notations and tools
Software and its engineering -- Software notations and tools -- Compilers
Software and its engineering -- Software notations and tools -- General programming languages
Software and its engineering -- Software notations and tools -- General programming languages -- Language types
Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Parallel programming languages
title Intel's Array Building Blocks: A retargetable, dynamic compiler and embedded language
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-24T19%3A19%3A04IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-acm&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Intel's%20Array%20Building%20Blocks:%20A%20retargetable,%20dynamic%20compiler%20and%20embedded%20language&rft.btitle=Proceedings%20of%20the%209th%20Annual%20IEEE/ACM%20International%20Symposium%20on%20Code%20Generation%20and%20Optimization&rft.au=Newburn,%20Chris%20J.&rft.date=2011-04-02&rft.spage=224&rft.epage=235&rft.pages=224-235&rft.isbn=1612843565&rft.isbn_list=9781612843568&rft_id=info:doi/10.5555/2190025.2190069&rft_dat=%3Cacm%3Eacm_books_10_5555_2190025_2190069%3C/acm%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true