6 research outputs found

    A Multi-threaded Asynchronous Language

    Full text link

    Dynamic dependency analysis of ordinary programs

    Full text link

    Parallel functional programming for message-passing multiprocessors

    Get PDF
    We propose a framework for the evaluation of implicitly parallel functional programs on message passing multiprocessors with special emphasis on the issue of load bounding. The model is based on a new encoding of the lambda-calculus in Milner's pi-calculus and combines lazy evaluation and eager (parallel) evaluation in the same framework. The pi-calculus encoding serves as the specification of a more concrete compilation scheme mapping a simple functional language into a message passing, parallel program. We show how and under which conditions we can guarantee successful load bounding based on this compilation scheme. Finally we discuss the architectural requirements for a machine to support our model efficiently and we present a simple RISC-style processor architecture which meets those criteria

    Estudo do relaxamento da condição de dupla entrada em uma arquitetura hibrida

    Get PDF
    Orientador: Arthur João CattoArquivo incompleto - falta página 118Dissertação (mestrado) - Universidade Estadual de Campinas, Instituto de Matematica, Estatistica e Ciencia da ComputaçãoResumo: As arquiteturas híbridas resultantes da junção das melhores características dos modelos von Neumann e de fluxo de dados formam uma nova classe de sistemas .paralelos de alto desempenho. A máquina MX é uma proposta preliminar e abstrata de uma arquitetura híbrida que utiliza a técnica de Fluxo de Dados para desmembrar programas em blocos de instruções limitados ao máximo de dois operandos de entrada. Este trabalho apresenta uma análise de técnicas mais eficientes de desmembramento para arquiteturas híbridas cujo modelo de execução não impõe restrições quanto ao número de operandos de entrada de um bloco de instruções. A escalabilidade da máquina MX e a influência do tamanho do bloco de instruções no seu desempenho sustentam a proposta de relaxamento da restrição da dupla entrada de um bloco de instruções, com o propósito de aumentar o desempenho da MX, conservando as suas características arquiteturais.Abstract: Hybrid architectures which result from joining the best features of the von Neumann and data flow computational models give rise to a new class of high performance parallel systems. The MX machine is a preliminary and abstract hybrid architecture proposal which resorts to data flow techniques for partitioning programs into instruction streams which are limited to two entry operands. This thesis presents an analysis of more efficient partitioning techniques for hybrid architectures whose execution model does not restrict the number of entry operands in an instruction stream. The scalability of the MX machine and the influence of the instruction stream size on its performance support a proposal for waiving the double entry limit to an instruction stream, aiming at increasing the performance of the MX machine, without altering its architectural characteristics.MestradoMestre em Ciência da Computaçã

    Granularity in Large-Scale Parallel Functional Programming

    Get PDF
    This thesis demonstrates how to reduce the runtime of large non-strict functional programs using parallel evaluation. The parallelisation of several programs shows the importance of granularity, i.e. the computation costs of program expressions. The aspect of granularity is studied both on a practical level, by presenting and measuring runtime granularity improvement mechanisms, and at a more formal level, by devising a static granularity analysis. By parallelising several large functional programs this thesis demonstrates for the first time the advantages of combining lazy and parallel evaluation on a large scale: laziness aids modularity, while parallelism reduces runtime. One of the parallel programs is the Lolita system which, with more than 47,000 lines of code, is the largest existing parallel non-strict functional program. A new mechanism for parallel programming, evaluation strategies, to which this thesis contributes, is shown to be useful in this parallelisation. Evaluation strategies simplify parallel programming by separating algorithmic code from code specifying dynamic behaviour. For large programs the abstraction provided by functions is maintained by using a data-oriented style of parallelism, which defines parallelism over intermediate data structures rather than inside the functions. A highly parameterised simulator, GRANSIM, has been constructed collaboratively and is discussed in detail in this thesis. GRANSIM is a tool for architecture-independent parallelisation and a testbed for implementing runtime-system features of the parallel graph reduction model. By providing an idealised as well as an accurate model of the underlying parallel machine, GRANSIM has proven to be an essential part of an integrated parallel software engineering environment. Several parallel runtime- system features, such as granularity improvement mechanisms, have been tested via GRANSIM. It is publicly available and in active use at several universities worldwide. In order to provide granularity information this thesis presents an inference-based static granularity analysis. This analysis combines two existing analyses, one for cost and one for size information. It determines an upper bound for the computation costs of evaluating an expression in a simple strict higher-order language. By exposing recurrences during cost reconstruction and using a library of recurrences and their closed forms, it is possible to infer the costs for some recursive functions. The possible performance improvements are assessed by measuring the parallel performance of a hand-analysed and annotated program
    corecore