Observatorio de I+D+i UPM

Memorias de investigación
Automatic Unrestricted Independent And-Parallelism in Declarative Multiparadigm Languages
Áreas de investigación
  • Lenguaje de programación
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 an interesting and promising 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 pro- gramming 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, as well as sometimes a more direct encoding of lazy evalu- ation, 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 au- tomatic 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 uses 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 alterna- tive 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.
Tipo de Tesis
Sobresaliente cum laude
Esta actividad pertenece a memorias de investigación
  • Participante: Amadeo Casas Cuadrado (Universidad de Nuevo Mexico)
  • Director: Manuel de Hermenegildo Salinas (UPM)
  • Director: Manuel Carro Liñares (UPM)
Grupos de investigación, Departamentos, Centros e Institutos de I+D+i relacionados
  • Creador: Grupo de Investigación: Computación lógica, Lenguajes, Implementación y Paralelismo (CLIP)
  • Departamento: Lenguajes y Sistemas Informáticos e Ingeniería de Software
  • Departamento: Inteligencia Artificial
S2i 2021 Observatorio de investigación @ UPM con la colaboración del Consejo Social UPM
Cofinanciación del MINECO en el marco del Programa INNCIDE 2011 (OTR-2011-0236)
Cofinanciación del MINECO en el marco del Programa INNPACTO (IPT-020000-2010-22)