首页> 外文期刊>Parallel Computing >Parallelizing irregular and pointer-based computations automatically: Perspectives from logic and constraint programming
【24h】

Parallelizing irregular and pointer-based computations automatically: Perspectives from logic and constraint programming

机译:自动并行化不规则和基于指针的计算:逻辑和约束编程的观点

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

摘要

Irregular computations pose some of the most interesting and challenging problems in automatic parallelization. Irregularity appears in certain kinds of numerical problems and is pervasive in symbolic applications. Such computations often use dynamic data structures, which make heavy use of pointers. This complicates all the steps of a parallelizing compiler, from independence detection to task partitioning and placement. Starting in the mid 80s there has been significant progress in the development of parallelizing compilers for logic pro- gramming (and more recently, constraint programming) resulting in quite capable paralle- lizers. The typical applications of these paradigms frequently involve irregular computations, and make heavy use of dynamic data structures with pointers, since logical variables represent in practice a well-behaved form of pointers. This arguably makes the techniques used in these compilers potentially interesting. In this paper, we introduce in a tutorial way, some of the problems faced by parallelizing compilers for logic and constraint programs and provide pointers to some of the significant progress made in the area. In particular, this work has resulted in a series of achievements in the areas of inter-procedural pointer aliasing analysis for independence detection, cost models and cost analysis, cactus-stack memory management, techniques for managing speculative and irregular computations through task granularity control and dynamic task allocation (such as work-stealing schedulers), etc.
机译:不规则计算在自动并行化中提出了一些最有趣和最具挑战性的问题。不规则性出现在某些类型的数字问题中,并且在符号应用中普遍存在。这种计算通常使用动态数据结构,该结构大量使用了指针。这使并行化编译器的所有步骤变得复杂,从独立性检测到任务分区和放置。从80年代中期开始,用于逻辑编程的并行化编译器(以及最近的约束编程)的开发取得了重大进展,从而产生了功能强大的并行器。这些范例的典型应用经常涉及不规则计算,并大量使用带有指针的动态数据结构,因为逻辑变量实际上代表了行为良好的指针形式。可以说,这可能会使这些编译器中使用的技术变得有趣。在本文中,我们以教程的方式介绍了并行化逻辑和约束程序的编译器所面临的一些问题,并提供了在该领域取得的一些重要进展的指针。特别是,这项工作在过程间指针别名分析(用于独立性检测),成本模型和成本分析,仙人掌堆栈内存管理,通过任务粒度控制管理推测性和不规则计算的技术以及以下方面取得了一系列成就。动态任务分配(例如,窃取工作的调度程序)等

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号