3 research outputs found

    A Novel Compiler Support for Automatic Parallelization on Multicore Systems

    Get PDF
    [Abstract] The widespread use of multicore processors is not a consequence of significant advances in parallel programming. In contrast, multicore processors arise due to the complexity of building power-efficient, high-clock-rate, single-core chips. Automatic parallelization of sequential applications is the ideal solution for making parallel programming as easy as writing programs for sequential computers. However, automatic parallelization remains a grand challenge due to its need for complex program analysis and the existence of unknowns during compilation. This paper proposes a new method for converting a sequential application into a parallel counterpart that can be executed on current multicore processors. It hinges on an intermediate representation based on the concept of domain-independent kernel (e.g., assignment, reduction, recurrence). Such kernel-centric view hides the complexity of the implementation details, enabling the construction of the parallel version even when the source code of the sequential application contains different syntactic variations of the computations (e.g., pointers, arrays, complex control flows). Experiments that evaluate the effectiveness and performance of our approach with respect to state-of-the-art compilers are also presented. The benchmark suite consists of synthetic codes that represent common domain-independent kernels, dense/sparse linear algebra and image processing routines, and full-scale applications from SPEC CPU2000.[Resumen] El uso generalizado de procesadores multin煤cleo no es consecuencia de avances significativos en programaci贸n paralela. Por el contrario, los procesadores multin煤cleo surgen debido a la complejidad de construir chips monon煤cleo que sean eficiente energ茅ticamente y tengan altas velocidades de reloj. La paralelizaci贸n autom谩tica de aplicaciones secuenciales es la soluci贸n ideal para hacer la programaci贸n paralela tan f谩cil como escribir programas para ordenadores secuenciales. Sin embargo, la paralelizaci贸n autom谩tica continua a ser un gran reto debido a su necesidad de complejos an谩lisis del programa y la existencia de inc贸gnitas durante la compilaci贸n. Este art铆culo propone un nuevo m茅todo para convertir una aplicaci贸n secuencial en su contrapartida paralela que pueda ser ejecutada en los procesadores multin煤cleo actuales. Este m茅todo depende de una representaci贸n intermedia basada en el concepto de n煤cleos independientes del dominio (p. ej., asignaci贸n, reducci贸n, recurrencia). Esta visi贸n centrada en n煤cleos oculta la complejidad de los detalles de implementaci贸n, permitiendo la construcci贸n de la versi贸n paralela incluso cuando el c贸digo fuente de la aplicaci贸n secuencial contiene diferentes variantes de las computaciones (p. ej., punteros, arrays, flujos de control complejos). Se presentan experimentos que eval煤an la efectividad y el rendimiento de nuestra aproximaci贸n con respecto al estado del arte. La serie programas de prueba consiste en c贸digos sint茅ticos que representan n煤cleos independientes del dominio comunes, rutinas de 谩lgebra lineal densa/dispersa y de procesamiento de imagen, y aplicaciones completas del SPEC CPU2000.[Resumo] O uso xeralizado de procesadores multin煤cleo non 茅 consecuencia de avances significativos en programaci贸n paralela. Pola contra, os procesadores multin煤cleo xurden debido 谩 complexidade de construir chips monon煤cleo que sexan eficientes enerx茅ticamente e te帽an altas velocidades de reloxo. A paralelizaci贸n autom谩tica de aplicaci贸ns secuenciais 茅 a soluci贸n ideal para facer a programaci贸n paralela tan sinxela como escribir programas para ordenadores secuenciais. Sen embargo, a paralelizaci贸n autom谩tica continua a ser un gran reto debido a s煤a necesidade de complexas an谩lises do programa e a existencia de inc贸gnitas durante a compilaci贸n. Este artigo prop贸n un novo m茅todo para convertir unha aplicaci贸n secuencias na s煤a contrapartida paralela que poida ser executada nos procesadores multin煤cleo actuais. Este m茅todo depende dunha representaci贸n intermedia baseada no concepto dos n煤cleos independentes do dominio (p. ex., asignaci贸n, reducci贸n, recurrencia). Esta visi贸n centrada en n煤cleos oculta a complexidade dos detalles de implementaci贸n, permitindo a construcci贸n da versi贸n paralela incluso cando o c贸digo fonte da aplicaci贸n secuencial cont茅n diferentes variantes das computaci贸ns (p. ex., punteiros, arrays, fluxos de control complejo). Pres茅ntanse experimentos que eval煤an a efectividade e o rendemento da nosa aproximaci贸n con respecto ao estado da arte. A serie de programas de proba consiste en c贸digos sint茅ticos que representan n煤cleos independentes do dominio comunes, rutinas de 谩lxebra lineal densa/dispersa e de procesamento de imaxe, e aplicaci贸ns completas do SPEC CPU2000.Ministerio de Econom铆a y Competitividad; TIN2010-16735Ministerio de Educaci贸n y Cultura; AP2008-0101

    Autotuning for Automatic Parallelization on Heterogeneous Systems

    Get PDF
    corecore