首页> 外文学位 >Introspective pushdown analysis and Nebo.
【24h】

Introspective pushdown analysis and Nebo.

机译:内省式下推分析和Nebo。

获取原文
获取原文并翻译 | 示例

摘要

In the static analysis of functional programs, control-flow analysis (kappa-CFA) is a classic method of approximating program behavior as a finite state automata. CFA2 and abstract garbage collection are two recent, yet orthogonal improvements, on kappa-CFA. CFA2 approximates program behavior as a pushdown system, using summarization for the stack. CFA2 can accurately approximate arbitrarily-deep recursive function calls, whereas kappa-CFA cannot. Abstract garbage collection removes unreachable values from the store/heap. If unreachable values are not removed from a static analysis, they can become reachable again, which pollutes the final analysis and makes it less precise. Unfortunately, as these two techniques were originally formulated, they are incompatible. CFA2's summarization technique for managing the stack obscures the stack such that abstract garbage collection is unable to examine the stack for reachable values.;This dissertation presents introspective pushdown control-flow analysis, which manages the stack explicitly through stack changes (pushes and pops). Because this analysis is able to examine the stack by how it has changed, abstract garbage collection is able to examine the stack for reachable values. Thus, introspective pushdown control-flow analysis merges successfully the benefits of CFA2 and abstract garbage collection to create a more precise static analysis.;Additionally, the high-performance computing community has viewed functional programming techniques and tools as lacking the efficiency necessary for their applications. Nebo is a declarative domain-specific language embedded in C++ for discretizing partial differential equations for transport phenomena. For efficient execution, Nebo exploits a version of expression templates, based on the C++ template system, which is a type-less, completely-pure, Turing-complete functional language with burdensome syntax. Nebo's declarative syntax supports functional tools, such as point-wise lifting of complex expressions and functional composition of stencil operators. Nebo's primary abstraction is mathematical assignment, which separates what a calculation does from how that calculation is executed. Currently Nebo supports single-core execution, multicore (thread-based) parallel execution, and GPU execution. With single-core execution, Nebo performs on par with the loops and code that it replaces in Wasatch, a pre-existing high-performance simulation project. With multicore (thread-based) execution, Nebo can linearly scale (with roughly 90% efficiency) up to 6 processors, compared to its single-core execution. Moreover, Nebo's GPU execution can be up to 37x faster than its single-core execution. Finally, Wasatch (the pre-existing high-performance simulation project which uses Nebo) can scale up to 262K cores.
机译:在功能程序的静态分析中,控制流分析(kappa-CFA)是一种将程序行为近似为有限状态自动机的经典方法。 CFA2和抽象垃圾收集是对kappa-CFA的两个最新但正交的改进。 CFA2使用堆栈摘要将程序行为近似为下推系统。 CFA2可以准确地近似任意深度的递归函数调用,而kappa-CFA则不能。抽象垃圾收集从存储/堆中删除无法访问的值。如果无法从静态分析中删除无法达到的值,它们可能会再次变为可达到的值,这将污染最终分析并降低其准确性。不幸的是,由于这两种技术是最初制定的,因此不兼容。 CFA2用于管理堆栈的摘要技术使堆栈变得模糊,以致抽象垃圾收集无法检查堆栈的可到达值。本文提出了自省的下推控制流分析,该分析通过堆栈更改(推送和弹出)显式管理堆栈。因为此分析能够通过更改堆栈的方式检查堆栈,所以抽象垃圾收集可以检查堆栈的可到达值。因此,内省式下推控制流分析成功地融合了CFA2和抽象垃圾收集的好处,从而创建了更精确的静态分析。此外,高性能计算社区认为功能性编程技术和工具缺乏其应用程序所需的效率。 。 Nebo是C ++中嵌入的一种声明性领域特定语言,用于离散化运输现象的偏微分方程。为了高效执行,Nebo利用了基于C ++模板系统的表达式模板版本,该版本是一种无类型,完全纯净,具有图灵完整语法的图灵完备功能语言。 Nebo的声明性语法支持功能性工具,例如复杂表达式的逐点提升和模板运算符的功能组合。 Nebo的主要抽象是数学赋值,它将计算的内容与该计算的执行方式分开。目前,Nebo支持单核执行,多核(基于线程)并行执行和GPU执行。通过单核执行,Nebo可以与Wasatch(一个预先存在的高性能仿真项目)中所替换的循环和代码媲美。与单核执行相比,通过多核(基于线程)执行,Nebo可以线性扩展(效率大约为90%)最多6个处理器。而且,Nebo的GPU执行速度可以比其单核执行速度快37倍。最后,Wasatch(使用Nebo的现有高性能仿真项目)可以扩展到262K内核。

著录项

  • 作者

    Earl, Christopher.;

  • 作者单位

    The University of Utah.;

  • 授予单位 The University of Utah.;
  • 学科 Computer Science.;Engineering Computer.
  • 学位 Ph.D.
  • 年度 2014
  • 页码 154 p.
  • 总页数 154
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号