133 research outputs found

    Feedback Driven Annotation and Refactoring of Parallel Programs

    Get PDF

    ParaSCAN: A Static Profiler to Help Parallelization

    Get PDF
    Parallelizing software often starts by profiling to identify program paths that are worth parallelizing. Static profiling techniques, e.g. hot paths, can be used to identify parallelism opportunities for programs that lack representative inputs and in situations where dynamic techniques aren\u27t applicable, e.g. parallelizing compilers and refactoring tools. Existing static techniques for identification of hot paths rely on path frequencies. Relying on path frequencies alone isn\u27t sufficient for identifying parallelism opportunities. We propose a novel automated approach for static profiling that combines both path frequencies and computational weight of the paths. We apply our technique called ParaSCAN to parallelism recommendation, where it is highly effective. Our results demonstrate that ParaSCAN\u27s recommendations cover all the parallelism manually identified by experts with 85% accuracy and in some cases also identifies parallelism missed by the experts

    Finding Lightweight Opportunities for Parallelism in .NET C#

    Get PDF
    Adding parallelism to .NET C# software programs has become a great option that can be used to enable performance. But how can we find out if the existing large complex software programs are even suitable for parallelism, other than investing a lot of time by checking it by hand? By using static analysis to find dependencies in the source code of software programs, we are able to find actual opportunities for parallelism. This list of generated opportunities for parallelism provides information needed to make the decision whether it is worth the time and effort to implement parallelism to a software program, and also provides guidance for the programmers when parallelism is implemented

    Software Engineering for Multicore Systems - An Experience Report

    Get PDF

    High Performance with Prescriptive Optimization and Debugging

    Get PDF

    Restructuring Fortran legacy applications for parallel computing in multiprocessors

    Get PDF
    As it is widely known, multi-core computers are broadly used these days, and automatic parallelization of sequential programs is still a challenge. In this context, we propose a set of code transformations to be applied automatically by a tool in order to transform sequential legacy systems into their parallel version. We implement these transformations by applying a lightweight source code analysis based on rewritable AST (Abstract Syntax Tree). Since it is not always possible to automatically parallelize the code, we also implemented some specific analyses in order to report possible changes that would allow specific parallelization. Additionally, we present some examples in which these transformations were conducted and the corresponding performance experiments.Instituto de Investigación en Informátic
    corecore