Especificación, diseño e implementación de un entorno de programación concurrente basado en patrones

La tarea de desarrollar software paralelo que sea eficiente, lógicamente correcto y económico desde un punto de vista de costo-beneficio es compleja. Diversos problemas potenciales pueden causar comportamientos incorrectos y performance pobre. El diseño de software basado en patrones puede ayudar a cubrir los requisitos de correctitud y de escalabilidad. Sin embargo, éste tiene diversos problemas: (a) muchos de los patrones no están disponibles en los modelos y lenguajes actuales de programación paralela; (b) frecuentemente es difícil implementar y utilizar el patrón más apropiado para el problema a resolver; y (c) muchos patrones no proveen fácilmente la capacidad de componerse entre sí, dificultando el soporte para procesamiento paralelo sobre arquitecturas heterogéneas. Con el objetivo de ayudar a solventar estas deficiencias, las contribuciones de esta tesis son tres. Primero, se presenta un nuevo patrón genérico de procesamiento paralelo llamado PCR [43], que consiste en una combinación de elementos productores, consumidores y reductores que operan de manera concurrente sobre un conjunto de datos de entrada. Se provee una definición matemática de la semántica de dicho patrón en términos del formalismo FXML. Se muestra además que los PCRs pueden componerse y comprenden otros patrones de programación paralela conocidos, proveyendo así un entorno compatible con diseños heterogéneos. Segundo, se muestra formalmente que el patrón PCR puede ser implementado de manera correcta en términos de un modelo de concurrencia más concreto a modo de implementación. Tercero, se provee una librería multiplataforma de plantillas C++ que permite expresar instancias concretas del patrón PCR. Se presenta un prototipo de compilador basado en reescritura de plantillas que genera de manera automática implementaciones paralelas y distribuídas de PCRs basándose en la librería de concurrencia Intel Concurrent Collections. El entorno de programación y generación de código se ilustra con diversos casos de estudio. En resumen, el entorno propuesto provee medios para mejorar la calidad y productividad del desarrollo de software paralelo mediante una metodología basada en construcciones de programación de alto nivel e independientes de la plataforma y una infraestructura de compilación para generar código ejecutable portable.

Saved in:
Bibliographic Details
Main Author: Pérez, Gervasio Daniel
Other Authors: Yovine, Sergio Fabián
Format: info:eu-repo/semantics/doctoralThesis biblioteca
Language:spa
Published: Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales
Subjects:MODELOS FORMALES DE CONCURRENCIA, PARALELISMO ESTRUCTURADO, GENERACION DE CODIGO BASADA EN TRANSFORMACIONES, FORMAL CONCURRENCY MODELS, STRUCTURED PARALLELISM, TRANSFORMATION BASED CODE GENERATION,
Online Access:https://hdl.handle.net/20.500.12110/tesis_n6506_Perez
http://repositoriouba.sisbi.uba.ar/gsdl/cgi-bin/library.cgi?a=d&c=aextesis&d=tesis_n6506_Perez_oai
Tags: Add Tag
No Tags, Be the first to tag this record!