Intermediate language extensions for parallelism

Jisheng Zhao, Vivek Sarkar
{"title":"Intermediate language extensions for parallelism","authors":"Jisheng Zhao, Vivek Sarkar","doi":"10.1145/2095050.2095103","DOIUrl":null,"url":null,"abstract":"An Intermediate Language (IL) specifies a program at a level of abstraction that includes precise semantics for state updates and control flow, but leaves unspecified the low-level software and hardware mechanisms that will be used to implement the semantics. Past ILs have followed the Von Neumann execution model by making sequential execution the default, and by supporting parallelism with runtime calls for lower-level mechanisms such as threads and locks. Now that the multicore trend is making parallelism the default execution model for all software, it behooves us as a community to study the fundamental requirements in parallel execution models and explore how they can be supported by first-class abstractions at the IL level.\n In this paper, we introduce five key requirements for Parallel Intermediate Representations (PIR): 1) Lightweight asynchronous tasks and communications, 2) Explicit locality, 3) Directed Synchronization with Dynamic Parallelism:, 4) Mutual Exclusion and Isolation with Dynamic Parallelism, and 5) Relaxed Exception semantics for Parallelism. We summarize the approach being taken in the Habanero Multicore Software Research project at Rice University to define a Parallel Intermediate Representation (PIR) to address these requirements. We discuss the basic issues of designing and implementing PIRs within the Habanero-Java (HJ) compilation framework that spans multiple levels of PIRs. By demonstrating several program optimizations developed in the HJ compilation framework, we show that this new PIR-based approach to compiler development brings robustness to the process of analyzing and optimizing parallel programs and is applicable to a wide range of task-parallelism programming models available today.","PeriodicalId":143880,"journal":{"name":"SPLASH Workshops","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2011-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"31","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"SPLASH Workshops","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2095050.2095103","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 31

Abstract

An Intermediate Language (IL) specifies a program at a level of abstraction that includes precise semantics for state updates and control flow, but leaves unspecified the low-level software and hardware mechanisms that will be used to implement the semantics. Past ILs have followed the Von Neumann execution model by making sequential execution the default, and by supporting parallelism with runtime calls for lower-level mechanisms such as threads and locks. Now that the multicore trend is making parallelism the default execution model for all software, it behooves us as a community to study the fundamental requirements in parallel execution models and explore how they can be supported by first-class abstractions at the IL level. In this paper, we introduce five key requirements for Parallel Intermediate Representations (PIR): 1) Lightweight asynchronous tasks and communications, 2) Explicit locality, 3) Directed Synchronization with Dynamic Parallelism:, 4) Mutual Exclusion and Isolation with Dynamic Parallelism, and 5) Relaxed Exception semantics for Parallelism. We summarize the approach being taken in the Habanero Multicore Software Research project at Rice University to define a Parallel Intermediate Representation (PIR) to address these requirements. We discuss the basic issues of designing and implementing PIRs within the Habanero-Java (HJ) compilation framework that spans multiple levels of PIRs. By demonstrating several program optimizations developed in the HJ compilation framework, we show that this new PIR-based approach to compiler development brings robustness to the process of analyzing and optimizing parallel programs and is applicable to a wide range of task-parallelism programming models available today.
并行的中间语言扩展
中间语言(Intermediate Language, IL)在抽象级别上指定程序,其中包括用于状态更新和控制流的精确语义,但未指定将用于实现语义的低级软件和硬件机制。过去的il遵循Von Neumann执行模型,将顺序执行作为默认值,并支持线程和锁等低级机制的运行时并行调用。现在,多核趋势使并行成为所有软件的默认执行模型,作为一个社区,我们有必要研究并行执行模型的基本需求,并探索如何通过IL级的一等抽象来支持它们。本文介绍了并行中间表示(PIR)的五个关键要求:1)轻量级异步任务和通信;2)显式局部性;3)动态并行的定向同步;4)动态并行的互斥和隔离;5)并行的放松异常语义。我们总结了Rice大学Habanero多核软件研究项目所采用的方法,以定义并行中间表示(Parallel Intermediate Representation, PIR)来满足这些需求。我们讨论了在跨越多个级别pir的Habanero-Java (HJ)编译框架中设计和实现pir的基本问题。通过演示在HJ编译框架中开发的几个程序优化,我们展示了这种新的基于pir的编译器开发方法为分析和优化并行程序的过程带来了鲁棒性,并且适用于当今可用的广泛的任务并行编程模型。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信