首页> 外文学位 >Automatic unrestricted independent and-parallelism in declarative multiparadigm languages.
【24h】

Automatic unrestricted independent and-parallelism in declarative multiparadigm languages.

机译:声明式多范例语言中的自动无限制的独立和并行性。

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

摘要

Parallelism capabilities are becoming ubiquitous thanks to the widespread use of multi-core processors. This has renewed the interest in language-related designs and tools which can simplify the task of producing parallel programs. The use of declarative languages is considered to be a valid approach for increasing performance through the execution of parallel programs. In particular, nondeterminism and partially instantiated data structures give logic programming expressive power beyond that of functional programming. However, functional programming often provides convenient syntactic features, such as having a designated implicit output argument, which allow function call nesting and sometimes results in more compact code, and also sometimes a more direct encoding of lazy evaluation, with its ability to deal with infinite data structures. The high-level nature of these languages, in addition to their relatively simple semantics and the use of logic variables, preserves more of the original parallelism to be uncovered by an automatic parallelization. Different alternatives for performing automatic goal-level, unrestricted independent and-parallelization of logic programs through source-to-source transformations are studied in this work, which use as targets new parallel execution primitives which are simpler and more flexible than the well-known fork-join parallel operator, in order to generate better parallel expressions by exposing more potential parallelism among the literals of a particular program. An alternative approach for implementing and-parallel logic programming languages has also been explored, which tames the complexity of the low-level machinery required by most of the previous implementations by raising core parts to the source language level. A significant portion of the implementation mechanisms of parallel execution is handled directly at the Prolog level with the help of a comparatively small number of concurrency-related primitives that take care of simpler low-level tasks such as locking, and thread and stack set management. Moreover, in order to extend this work to different paradigms, a syntactic functional extension to ISO-standard Prolog systems has been developed, which covers function application, predefined evaluable functors, functional definitions, quoting, and lazy evaluation, and is composable with higher-order and other extensions to ISO-Prolog, such as constraints.
机译:由于多核处理器的广泛使用,并行功能变得无处不在。这重新引起了人们对与语言相关的设计和工具的兴趣,这些设计和工具可以简化生成并行程序的任务。声明性语言的使用被认为是通过执行并行程序来提高性能的有效方法。特别是,不确定性和部分实例化的数据结构赋予逻辑编程以功能性编程之外的表达能力。但是,函数式编程通常提供方便的语法功能,例如具有指定的隐式输出参数,该参数允许函数调用嵌套,并且有时导致更紧凑的代码,并且有时还对懒惰求值进行更直接的编码,并具有处理无限的能力。数据结构。这些语言的高级性质,除了其相对简单的语义和逻辑变量的使用之外,还保留了更多的原始并行性,这些并行性将被自动并行化发现。在这项工作中,研究了通过源到源的转换来执行自动目标级,不受限制的独立和逻辑程序并行化的不同方法,这些方法将新的并行执行原语作为目标,比众所周知的fork更简单,更灵活。 -join并行运算符,以便通过在特定程序的文字之间公开更多潜在的并行性来生成更好的并行表达式。还探索了一种实现和并行逻辑编程语言的替代方法,该方法通过将核心部分提高到源语言级别,从而减轻了大多数以前的实现所需的低级机器的复杂性。并行执行的实现机制中有很大一部分是在Prolog级别上直接处理的,这是通过较少数量的并发相关原语来完成的,这些原语可以处理诸如锁以及线程和堆栈集管理之类的更简单的低级任务。此外,为了将这项工作扩展到不同的范例,已经开发了对ISO标准Prolog系统的语法功能扩展,其中包括功能应用程序,预定义的可评估函子,功能定义,引用和惰性评估,并且可以与更高版本的订单和ISO-Prolog的其他扩展,例如约束。

著录项

  • 作者

    Casas, Amadeo.;

  • 作者单位

    The University of New Mexico.;

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

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号