SHF:Small: Data Triggered Threads for Removing Redundant Execution and Increasing Parallelism
SHF:Small: Data Triggered Threads for Removing Redundant Execution and Increasing Parallelism
批准号:
1219059
负责人:
Dean Tullsen
金额:
$50.0万
依托单位国家:
美国
项目类别:
Standard Grant
财政年份:
2012
资助国家:
美国
项目状态:
已结题
起止时间:
2012-06-01 至 2016-05-31
中文摘要
随着高性能通用处理器进一步进入芯片多处理器时代,随着内核数量的不断增加,该行业面临两个巨大的挑战。第一个问题是,当许多可用的软件不容易并行化时,如何有效地利用硬件并行性。第二个挑战是管理这些处理器所消耗的功率和能量。在功率有限的情况下,只有提高每瓦特性能,我们才能扩展性能。数据触发线程(DTT)是一种新的编程和执行模型,旨在解决这两个问题。任何利用并行性的传统体系结构都是通过基于控制流启动新的并行计算来实现的?也就是说,执行(即核心S程序计数器)到达一个分叉指令,或者可能是一个pThREAD CREATE调用。相反,当内存中的数据发生更改时,DTT会生成一个新线程。程序员指定一个函数,该函数没有附加到一组调用点(程序中调用该函数的位置),而是附加到数据结构类型中的变量甚至字段。当程序修改该变量时,另一个核心(或多线程上下文)中的线程会自动生成以执行数据触发线程,其中包含依赖于更改的数据的代码。与传统的并行性描述机制相比,数据触发线程具有两个关键优势。第一种情况是,一旦源数据被修改,依赖计算就会立即可用。第二个问题是,只有在触发数据实际被修改时才需要执行依赖计算?在许多情况下,情况并非如此。这项工作利用了一个巨大的新机会来消除冗余计算。在C SPEC基准测试中,78%的加载是冗余的(这意味着相同的加载获取的值与它最后一次访问相同的地址时相同)。对这些值进行运算的计算通常也是多余的。计算机体系结构及相关领域的研究人员一直在努力降低每条指令的功耗,并取得了稳步进展。不过,不执行这些指令要好得多。这项研究正在探索许多机会来利用这种新的执行模型,包括:(1)通过体系结构支持的数据触发线程,(2)纯软件数据触发线程,(3)数据触发线程来补充现有的并行应用程序,(4)在编译器中自动生成数据触发线程,以及(5)使用数据触发线程的编程体验?从头开始编写的DTT代码与修改为使用DTT的程序有何不同,新手程序员将生成什么样的代码,这对体系结构和软件运行时实现有何影响?处理器的代际性能扩展对国家和世界经济至关重要?不仅是硬件供应商,软件行业也是如此,每当有人升级他们的系统时,软件行业就会销售产品。数据触发线程编程和执行模型代表了性能扩展的两个关键障碍的解决方案。它为程序员提供了一种表达并行性的新方法,从而解决了并行性危机。它以最有效的方式解决了电源问题?通过不执行不需要执行的计算。
英文摘要
As high-performance general-purpose processors advance further into the chip multiprocessor era, with ever increasing core counts, the industry faces two huge challenges. The first is how to effectively use that hardware parallelism when much of the available software does not parallelize easily. The second challenge is managing the power and energy consumed by these processors. Given constrained power, we can only scale performance if we improve the performance delivered per Watt. Data-triggered threads (DTT) is a new programming and execution model designed to address both of these issues. Any conventional architecture that exploits parallelism does so by initiating new parallel computation based on control flow ? that is, execution (i.e., the core?s program counter) reaches a fork instruction or maybe a pthread create call. DTT instead spawns a new thread when data in memory is changed. The programmer specifies a function that is not attached to a set of call sites (a place in the program where the function is called), but rather is attached to a variable or even a field in a data structure type. When that variable is modified by the program, a thread in another core (or multithreading context) is automatically spawned to execute the data-triggered thread, containing code that depends on the changed data.Data-triggered threads provide two key advantages over traditional mechanisms for describing parallelism. The first is that the dependent computation becomes available immediately, as soon as the source data is modified. The second is that the dependent computation need only be executed if the triggering data is actually modified ? in many cases it is not. This work exploits a huge new opportunity to eliminate redundant computation. In the C SPEC benchmarks, 78% of loads are redundant (meaning the same load fetches the same value as the last time it went to the same address). The computation which operates on those values is often also redundant. Researchers in computer architecture and related areas have been working to reduce the power consumed by each instruction, and have made steady progress. It is far preferable, though, to just not execute those instructions ? no power or energy optimization will beat that.This research is exploring a number of opportunities to exploit this new execution model, including: (1) Data triggered threads via architectural support, (2) software-only data triggered threads, (3) data triggered threads to complement existing parallel applications, (4) automatic generation of data triggered threads in the compiler, and (5) programming experience with data triggered threads ? how does DTT code written from scratch differ from programs modified to use DTT, what kind of code will novice programmers produce, and how does that impact the architectural and software runtime implementations.Generation-to-generation performance scaling of processors is critically important to the national and world economy ? not just to hardware vendors, but also the software industries that sell products every time someone upgrades their system. The data triggered threads programming and execution model represents solutions to the two key barriers to performance scaling. It addresses the parallelism crisis by giving the programmer a new way to express parallelism. It addresses the power problem in the most effective way possible ? by not executing computation that does not need to be done.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
FoMR: Heterogeneity Under-The-Hood: Leveraging the Decoder for Highly Specialized, Programmer Transparent Microarchitectures
-
批准号:1823444
-
项目类别:Standard Grant
-
资助金额:$1.0万
-
财政年份:2018
-
负责人:Dean Tullsen
-
依托单位:
Context-Sensitive Decoding: Exploiting Translated ISAs for Security, Safety, Energy, and Performance
-
批准号:1652925
-
项目类别:Standard Grant
-
资助金额:$30.0万
-
财政年份:2016
-
负责人:Dean Tullsen
-
依托单位:
SHF: Medium: Bridging the Software/Hardware Gap Towards Efficient, Heterogeneous, and Predictable Datacenters
-
批准号:1302682
-
项目类别:Standard Grant
-
资助金额:$75.0万
-
财政年份:2013
-
负责人:Dean Tullsen
-
依托单位:
SHF: Small: Architectural Support for New Parallel Execution Paradigms Via Agile Threads
-
批准号:1018356
-
项目类别:Standard Grant
-
资助金额:$46.8万
-
财政年份:2010
-
负责人:Dean Tullsen
-
依托单位:
Architectural Support for Parallelism on Multi-Core Architectures
-
批准号:0702349
-
项目类别:Standard Grant
-
资助金额:$30.0万
-
财政年份:2007
-
负责人:Dean Tullsen
-
依托单位:
Concurrent Optimization for Multi-Core and Multithreaded Architectures
-
批准号:0541434
-
项目类别:Continuing Grant
-
资助金额:$0.0万
-
财政年份:2006
-
负责人:Dean Tullsen
-
依托单位:
Compiler Optimizations to Exploit Simultaneous Multithreading
-
批准号:0311683
-
项目类别:Continuing Grant
-
资助金额:$35.0万
-
财政年份:2003
-
负责人:Dean Tullsen
-
依托单位:
Critical Path Computing
-
批准号:0105743
-
项目类别:Standard Grant
-
资助金额:$30.0万
-
财政年份:2001
-
负责人:Dean Tullsen
-
依托单位:
Hardware Generation of Threads in a Multithreading Processor
-
批准号:9808697
-
项目类别:Continuing Grant
-
资助金额:$42.26万
-
财政年份:1998
-
负责人:Dean Tullsen
-
依托单位:
CAREER: A Simultaneous Multithreading System Architecture
-
批准号:9701708
-
项目类别:Standard Grant
-
资助金额:$21.0万
-
财政年份:1997
-
负责人:Dean Tullsen
-
依托单位:
国内基金
海外基金
登录
查看更多内容
昼夜节律性small RNA在血斑形成时间推断中的法医学应用研究
-
批准号:
-
项目类别:省市级项目
-
资助金额:--
-
批准年份:2024
-
负责人:
-
依托单位:
tRNA-derived small RNA上调YBX1/CCL5通路参与硼替佐米诱导慢性疼痛的机制研究
-
批准号:
-
项目类别:省市级项目
-
资助金额:10.0万元
-
批准年份:2022
-
负责人:张祥忠
-
依托单位:
Small RNA调控I-F型CRISPR-Cas适应性免疫性的应答及分子机制
-
批准号:32000033
-
项目类别:青年科学基金项目
-
资助金额:24.0万元
-
批准年份:2020
-
负责人:林平
-
依托单位:
Small RNAs调控解淀粉芽胞杆菌FZB42生防功能的机制研究
-
批准号:31972324
-
项目类别:面上项目
-
资助金额:58.0万元
-
批准年份:2019
-
负责人:高学文
-
依托单位:
变异链球菌small RNAs连接LuxS密度感应与生物膜形成的机制研究
-
批准号:81900988
-
项目类别:青年科学基金项目
-
资助金额:21.0万元
-
批准年份:2019
-
负责人:毛梦莹
-
依托单位:
肠道细菌关键small RNAs在克罗恩病发生发展中的功能和作用机制
-
批准号:31870821
-
项目类别:面上项目
-
资助金额:56.0万元
-
批准年份:2018
-
负责人:陈江宁
-
依托单位:
基于small RNA 测序技术解析鸽分泌鸽乳的分子机制
-
批准号:31802058
-
项目类别:青年科学基金项目
-
资助金额:26.0万元
-
批准年份:2018
-
负责人:麻慧
-
依托单位:
Small RNA介导的DNA甲基化调控的水稻草矮病毒致病机制
-
批准号:31772128
-
项目类别:面上项目
-
资助金额:60.0万元
-
批准年份:2017
-
负责人:吴建国
-
依托单位:
基于small RNA-seq的针灸治疗桥本甲状腺炎的免疫调控机制研究
-
批准号:81704176
-
项目类别:青年科学基金项目
-
资助金额:20.0万元
-
批准年份:2017
-
负责人:赵继梦
-
依托单位:
水稻OsSGS3与OsHEN1调控small RNAs合成及其对抗病性的调节
-
批准号:91640114
-
项目类别:重大研究计划
-
资助金额:85.0万元
-
批准年份:2016
-
负责人:何祖华
-
依托单位: