首页> 外文学位 >Compiler and Runtime Techniques for Automatic Parallelization of Sequential Applications.
【24h】

Compiler and Runtime Techniques for Automatic Parallelization of Sequential Applications.

机译:顺序应用程序自动并行化的编译器和运行时技术。

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

摘要

Multicore designs have emerged as the mainstream design paradigm for the microprocessor industry. Unfortunately, providing multiple cores does not directly translate into performance for most applications. An attractive approach for exploiting multiple cores is to rely on tools, both compilers and runtime optimizers, to automatically extract threads from sequential applications. This dissertation tackles many challenges faced in automatic parallelization of sequential applications, including general-purpose applications written in C/C++ and client-side web applications written in JavaScript, with the goal of achieving speedup on commodity multicore systems. First, a complete parallelizing compiler system for C/C++ is introduced. This system successfully identifies parallelization opportunities in programs and transforms the code to a parallel version. A matching runtime system, STMlite, is proposed to monitor the parallelized program behavior and fix any misspeculations that might happen. We show that this system can generate and execute parallel programs that are upto 2.2x faster than their sequential counterparts, when executed on an 8-core commodity system.;The second piece of work focuses on a similar problem in a very different application domain, JavaScript programs running on the client's web browser. This dissertation is the first research work that proposes dynamic and automatic parallelization of JavaScript applications. The nature of the JavaScript language and its target execution environments impose a completely different set of challenges that we intend to solve. We first propose the ParaScript parallelizing engine, which identifies and speculatively parallelizes potentially parallel code segments while the code is running in the browser. A low-cost and highly customized speculation approach verifies the execution of the parallelized client-side code and rolls back in case of any misspeculation. Dynamic parallelization using ParaScript yields an average of 2.18x speedup over sequential JavaScript code on an 8-core commodity system. In addition, we introduce ParaGuard, a technique which executes the runtime checks required by trace-based JavaScript compilers in parallel with the main execution. ParaGuard is able to improve performance by 15% by using an additional core in multi-core systems.
机译:多核设计已成为微处理器行业的主流设计范例。不幸的是,对于大多数应用程序而言,提供多个内核并不能直接转化为性能。利用多个内核的一种有吸引力的方法是依赖于编译器和运行时优化器的工具,以从顺序应用程序中自动提取线程。本文旨在解决顺序应用程序自动并行化所面临的许多挑战,这些应用程序包括以C / C ++编写的通用应用程序和以JavaScript编写的客户端Web应用程序,目的是实现商品多核系统的加速。首先,介绍了一个完整的C / C ++并行化编译器系统。该系统成功地识别了程序中的并行化机会,并将代码转换为并行版本。提出了一个匹配的运行时系统STMlite,以监视并行程序的行为并修复可能发生的任何错误推测。我们展示了当在8核商品系统上执行时,该系统可以生成和执行比顺序执行程序快2.2倍的并行程序。第二部分工作重点是在非常不同的应用程序域中的类似问题,在客户端的网络浏览器上运行的JavaScript程序。本文是提出JavaScript应用程序动态和自动并行化的第一项研究工作。 JavaScript语言的性质及其目标执行环境带来了我们打算解决的一组完全不同的挑战。我们首先提出ParaScript并行化引擎,该引擎在浏览器中运行代码时识别并推测性地并行化潜在的并行代码段。低成本且高度定制的推测方法可验证并行化客户端代码的执行,并在发生任何推测时回滚。使用ParaScript进行动态并行化处理,比8核商品系统上的顺序JavaScript代码平均提高了2.18倍的速度。另外,我们介绍了ParaGuard,该技术与主要执行并行执行基于跟踪的JavaScript编译器所需的运行时检查。通过在多核系统中使用附加核,ParaGuard能够将性能提高15%。

著录项

  • 作者

    Mehrara, Mojtaba.;

  • 作者单位

    University of Michigan.;

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

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号