206 research outputs found
Research on parallel logic language implementation and architecture at ICOT
Abstract is not availabl
Parallel processing and expert systems
Whether it be monitoring the thermal subsystem of Space Station Freedom, or controlling the navigation of the autonomous rover on Mars, NASA missions in the 1990s cannot enjoy an increased level of autonomy without the efficient implementation of expert systems. Merely increasing the computational speed of uniprocessors may not be able to guarantee that real-time demands are met for larger systems. Speedup via parallel processing must be pursued alongside the optimization of sequential implementations. Prototypes of parallel expert systems have been built at universities and industrial laboratories in the U.S. and Japan. The state-of-the-art research in progress related to parallel execution of expert systems is surveyed. The survey discusses multiprocessors for expert systems, parallel languages for symbolic computations, and mapping expert systems to multiprocessors. Results to date indicate that the parallelism achieved for these systems is small. The main reasons are (1) the body of knowledge applicable in any given situation and the amount of computation executed by each rule firing are small, (2) dividing the problem solving process into relatively independent partitions is difficult, and (3) implementation decisions that enable expert systems to be incrementally refined hamper compile-time optimization. In order to obtain greater speedups, data parallelism and application parallelism must be exploited
On the Implementation of GNU Prolog
GNU Prolog is a general-purpose implementation of the Prolog language, which
distinguishes itself from most other systems by being, above all else, a
native-code compiler which produces standalone executables which don't rely on
any byte-code emulator or meta-interpreter. Other aspects which stand out
include the explicit organization of the Prolog system as a multipass compiler,
where intermediate representations are materialized, in Unix compiler
tradition. GNU Prolog also includes an extensible and high-performance finite
domain constraint solver, integrated with the Prolog language but implemented
using independent lower-level mechanisms. This article discusses the main
issues involved in designing and implementing GNU Prolog: requirements, system
organization, performance and portability issues as well as its position with
respect to other Prolog system implementations and the ISO standardization
initiative.Comment: 30 pages, 3 figures, To appear in Theory and Practice of Logic
Programming (TPLP); Keywords: Prolog, logic programming system, GNU, ISO,
WAM, native code compilation, Finite Domain constraint
Parallel processing and expert systems
Whether it be monitoring the thermal subsystem of Space Station Freedom, or controlling the navigation of the autonomous rover on Mars, NASA missions in the 90's cannot enjoy an increased level of autonomy without the efficient use of expert systems. Merely increasing the computational speed of uniprocessors may not be able to guarantee that real time demands are met for large expert systems. Speed-up via parallel processing must be pursued alongside the optimization of sequential implementations. Prototypes of parallel expert systems have been built at universities and industrial labs in the U.S. and Japan. The state-of-the-art research in progress related to parallel execution of expert systems was surveyed. The survey is divided into three major sections: (1) multiprocessors for parallel expert systems; (2) parallel languages for symbolic computations; and (3) measurements of parallelism of expert system. Results to date indicate that the parallelism achieved for these systems is small. In order to obtain greater speed-ups, data parallelism and application parallelism must be exploited
Recommended from our members
Software Portability
This thesis represents the submission to the Open University for the degree of Master of Philosophy.
The research topic lies within the discipline of computer science and in particular problems associated with the transportability of computer software are investigated.
The study period was organised into 3 parts:
- A literature search to look at what work had been done in the area.
- The design of an intermediate language for a compiler.
- The specification, design and implementation of a functional programming language in order to develop a portable programming environment.
This thesis covers the work of the period Sep78 to Jun82, all of which was performed by part time study.
The Thesis comprises 4 major sections and an appendix which shows program listings. The sections are as follows:
- Section 1: The introduction
- Section 2: The result of a literature search.
- Section 3: A design for a compiler intermediate language, Ivor, covering the architecture of the underlying abstract machine and the structure of the intermediate language.
- Section 4: The design and implementation of a function based programming language. Mule, including the structure of the language and a description of the implementation
An abstract model for parallel execution of prolog
Logic programming has been used in a broad range of fields, from artifficial intelligence
applications to general purpose applications, with great success. Through its
declarative semantics, by making use of logical conjunctions and disjunctions, logic
programming languages present two types of implicit parallelism: and-parallelism and
or-parallelism.
This thesis focuses mainly in Prolog as a logic programming language, bringing out
an abstract model for parallel execution of Prolog programs, leveraging the Extended
Andorra Model (EAM) proposed by David H.D. Warren, which exploits the implicit
parallelism in the programming language. A meta-compiler implementation for an
intermediate language for the proposed model is also presented.
This work also presents a survey on the state of the art relating to implemented Prolog
compilers, either sequential or parallel, along with a walk-through of the current parallel
programming frameworks. The main used model for Prolog compiler implementation,
the Warren Abstract Machine (WAM) is also analyzed, as well as the WAM’s successor
for supporting parallelism, the EAM; Sumário:
Um Modelo Abstracto para
Execução Paralela de Prolog
A programação em lógica tem sido utilizada em diversas áreas, desde aplicações de
inteligência artificial até aplicações de uso genérico, com grande sucesso. Pela sua
semântica declarativa, fazendo uso de conjunções e disjunções lógicas, as linguagens de
programação em lógica possuem dois tipos de paralelismo implícito: ou-paralelismo e
e-paralelismo.
Esta tese foca-se em particular no Prolog como linguagem de programação em lógica,
apresentando um modelo abstracto para a execução paralela de programas em Prolog,
partindo do Extended Andorra Model (EAM) proposto por David H.D. Warren, que
tira partido do paralelismo implícito na linguagem. É apresentada uma implementação
de um meta-compilador para uma linguagem intermédia para o modelo proposto.
É feita uma revisão sobre o estado da arte em termos de implementações sequenciais
e paralelas de compiladores de Prolog, em conjunto com uma visita pelas linguagens
para implementação de sistemas paralelos. É feita uma análise ao modelo principal
para implementação de compiladores de Prolog, a Warren Abstract Machine (WAM) e
da sua evolução para suportar paralelismo, a EAM
Analysis of the Path Tracing rendering method on CPU and GPU
Fa molts anys que es realitza recerca al camp de la renderització realista. Tenim diversos mètodes capaços d'aconseguir imatges amb un gran grau de realisme, com pot ser Ray Tracing, Path Tracing, Photon Mapping o Metropolis Light Transport. A excepció del Ray Tracing, la resta de mètodes tracten de resoldre l'Equació de Renderitzat mitjançant aproximacions (és impossible calcular-la íntegrament, ja que necessitaríem temps i potència de càlcul infinita). Gràcies a poder aproximar aquesta equació es poden aconseguir efectes de forma natural, sense necessitat d'un postprocessat, com motion blur, depth of field, càustiques, etc. El mètode que implementarem i estudiarem és el Path Tracing. Realitzarem diverses versions d'aquest mètode amb les quals podrem explorar quina arquitectura (GPU o CPU) ens ofereix una major avantatge pel que fa al rendiment per al nostre algoritme. Per això comptarem amb diverses màquines, una amb un hardware d'última generació, una amb un hardware més econòmic i una última màquina pensada per un entorn professional. És molt usual que les aplicacions que implementen aquest mètode s'utilitzen d'estructures de dades que permeten millorar de forma molt notable el rendiment d'aquesta. Per aquesta raó, implementarem una Bounding Volume Hierarchy, un estructura de tipus arbre, per a la representació de l'escena i així augmentar el rendiment. Estudiarem com recorre-la de dues formes diferents, una recursiva molt més natural en aquest tipus d'estructures i un altre iterativa, per veure com afecta al rendiment de l'aplicació en la GPU. És ben sabut que les funcions recursives no són gens òptimes a la GPU. Per últim, implementarem un seguit de filtres d'eliminació de soroll. El mètode de Path Tracing produeix imatges molt sorolloses si s'utilitzen poques mostres per píxel, per això l'ús de filtres d'eliminació de soroll és molt comú. Això ens permetrà trobar un equilibri entre el nombre de mostres per píxel i la necessitat d'un postfiltratge de la imatge resultant.The field of realistic rendering has been investigated for many years. We have different methods capable of creating images with a high degree of realism, such as Ray Tracing, Path Tracing, Photon Mapping or Metropolis Light Transport. Except for Ray Tracing, the rest of the cited methods try to solve the Rendering Equation by approximations (it is impossible to calculate it completely because we would need time and infinite computing power). Thanks to being able to approximate this equation, effects can be achieved naturally, without needing any post-processing, such as motion blur, depth of field, caustics, etc. The method that we will implement and study is Path Tracing. We will make several versions of this method with which we will explore which architecture (GPU or CPU) gives us a greater advantage in terms of performance for our algorithm. For this, we will have different machines, one with the last generation hardware, one with cheaper hardware and the last machine with hardware thought for a professional environment. It is very usual that the applications that implement this method are assisted by accelerating structures that allow improving in a very notable way the performance of this one. For this same reason, we will implement a Bounding Volume Hierarchy, a tree-type structure, to represent our scene and thus increase performance. We will study how to go through it in two different ways, one recursive much more natural in this type of structure and another iterative, to see how it affects the performance of the application on the GPU. It's well known that the GPU is not optimal for recursive functions. Finally, we'll implement a set of denoising filters. Path tracing produces very noisy images when using a few samples per pixel, so the use of denoising filters is very common. This will also help us find a balance between the number of samples per pixel and the need for post-filtering of the output image
- …