首页> 外文学位 >Scheduling deterministric parallel programs.
【24h】

Scheduling deterministric parallel programs.

机译:调度确定性并行程序。

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

摘要

Deterministic parallel programs yield the same results regardless of how parallel tasks are interleaved or assigned to processors. This drastically simplifies reasoning about the correctness of these programs. However, the performance of parallel programs still depends upon this assignment of tasks, as determined by a part of the language implementation called the scheduling policy.;In this thesis, I define a novel cost semantics for a parallel language that enables programmers to reason formally about different scheduling policies. This cost semantics forms a basis for a suite of prototype profiling tools. These tools allow programmers to simulate and visualize program execution under different scheduling policies and understand how the choice of policy affects application memory use.;My cost semantics also provides a specification for implementations of the language. As an example of such an implementation, I have extended MLton, a compiler and runtime system for Standard ML, with support for parallelism and implemented several different scheduling policies. Using my cost semantics and profiler, I found a memory leak caused by a bug in one of the existing optimizations in MLton.;In addition to memory use, this cost semantics precisely captures when a parallel schedule deviates from the uni-processor execution of a given program. The number of deviations acts as a important conceptual tool in reasoning about concrete measures of performance I use this metric to derive new bounds on the overhead of existing work stealing implementations of parallel futures and to suggest more efficient alternatives.;This work represents an important step in understanding how to develop programs and programming languages for multi-core and multi-processor architectures. In particular, a cost semantics provides an abstraction that helps to ensure adequate performance without sacrificing the ability to reason about programs at a high level.
机译:无论并行任务如何交错或分配给处理器,确定性并行程序都会产生相同的结果。这极大地简化了有关这些程序正确性的推理。但是,并行程序的性能仍然取决于任务的分配,这取决于语言实现的一部分,即调度策略。;在本文中,我为并行语言定义了一种新颖的成本语义,使程序员能够正式推理。关于不同的调度策略。这种成本语义构成了一套原型分析工具的基础。这些工具允许程序员在不同的调度策略下模拟和可视化程序执行,并了解策略的选择如何影响应用程序内存的使用。我的成本语义还为语言的实现提供了规范。作为这种实现的示例,我扩展了MLton,它是用于标准ML的编译器和运行时系统,具有对并行性的支持,并实现了几种不同的调度策略。使用我的成本语义和事件探查器,我发现了MLton中现有优化之一中的错误导致的内存泄漏;除了内存使用之外,当并行调度偏离单处理器执行时,该成本语义还可以精确捕获。给定程序。偏差的数量是推理有关具体绩效指标的重要概念工具,我使用此指标来推导窃取并行期货实现的现有工作的开销的新界限,并提出更有效的替代方案。了解如何为多核和多处理器体系结构开发程序和编程语言。特别地,成本语义提供了一种抽象,该抽象有助于确保适当的性能而又不牺牲对程序进行高级推理的能力。

著录项

  • 作者

    Spoonhower, Daniel John.;

  • 作者单位

    Carnegie Mellon University.;

  • 授予单位 Carnegie Mellon University.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2009
  • 页码 192 p.
  • 总页数 192
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号