Registro:
Documento: | Tesis Doctoral |
Disciplina: | computacion |
Título: | Especificación, diseño e implementación de un entorno de programación concurrente basado en patrones |
Título alternativo: | Specification, design and implementation of a pattern-based concurrent programming environment |
Autor: | Pérez, Gervasio Daniel |
Editor: | Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales |
Publicación en la Web: | 2019-04-30 |
Fecha de defensa: | 2018-04-18 |
Fecha en portada: | 2018 |
Grado Obtenido: | Doctorado |
Título Obtenido: | Doctor de la Universidad de Buenos Aires en el área de Ciencias de la Computación |
Director: | Yovine, Sergio Fabián |
Consejero: | Braberman, Víctor Adrián |
Jurado: | Aguirre, Nazareno; Meister, Benoit; Melgratti, Hernán |
Idioma: | Español |
Palabras clave: | MODELOS FORMALES DE CONCURRENCIA; PARALELISMO ESTRUCTURADO; GENERACION DE CODIGO BASADA EN TRANSFORMACIONESFORMAL CONCURRENCY MODELS; STRUCTURED PARALLELISM; TRANSFORMATION BASED CODE GENERATION |
Formato: | PDF |
Handle: |
http://hdl.handle.net/20.500.12110/tesis_n6506_Perez |
PDF: | https://bibliotecadigital.exactas.uba.ar/download/tesis/tesis_n6506_Perez.pdf |
Registro: | https://bibliotecadigital.exactas.uba.ar/collection/tesis/document/tesis_n6506_Perez |
Ubicación: | Dep.COM 006506 |
Derechos de Acceso: | Esta obra puede ser leída, grabada y utilizada con fines de estudio, investigación y docencia. Es necesario el reconocimiento de autoría mediante la cita correspondiente. Pérez, Gervasio Daniel. (2018). Especificación, diseño e implementación de un entorno de programación concurrente basado en patrones. (Tesis Doctoral. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales.). Recuperado de http://hdl.handle.net/20.500.12110/tesis_n6506_Perez |
Resumen:
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.
Abstract:
Developing correct and efficient parallel software in a cost-effective way is challenging. There are a number of pitfalls that lead to incorrect behaviors and poor performance. Pattern-based software design could help achieving correctness and scalability. However, it has several drawbacks: (a) most patterns are not broadly supported by current parallel-programming models and languages; (b) most often than not getting the appropriate pattern right is difficult; and (c) most patterns do not compose easily, thus making it hard to deal with heterogeneous parallelism. As an attempt to overcoming these issues, the contribution of this thesis is threefold. First, it proposes a parallel-programming pattern, called PCR [43], consisting of producers, consumers, and reducers which operate concurrently on data sets. To favor correctness, the semantics of PCRs is mathematically defined in terms of the formalism FXML. PCRs are shown to be composable and to seamlessly subsume other well-known parallel-programming patterns, thus providing a framework for heterogeneous designs. Second, it formally shows how the PCR pattern can be correctly implemented in terms of a more concrete parallel execution model. Third, it proposes a platform-agnostic C++ template library to express PCRs. It briefly presents a prototype compiler based on C++ template re-writing which automatically generates distributed implementations relying on the Intel Concurrent Collections C++ library. The programming and code-generation suite is illustrated through several case studies. Overall, the proposed framework provides means to enhance parallel software quality and productivity through an automated methodology based on high-level, platform-independent programming constructs, and a compiling infrastructure to generate portable, executable code.
Citación:
---------- APA ----------
Pérez, Gervasio Daniel. (2018). Especificación, diseño e implementación de un entorno de programación concurrente basado en patrones. (Tesis Doctoral. Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales.). Recuperado de https://hdl.handle.net/20.500.12110/tesis_n6506_Perez
---------- CHICAGO ----------
Pérez, Gervasio Daniel. "Especificación, diseño e implementación de un entorno de programación concurrente basado en patrones". Tesis Doctoral, Universidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales, 2018.https://hdl.handle.net/20.500.12110/tesis_n6506_Perez
Estadísticas:
Descargas totales desde :
Descargas mensuales
https://bibliotecadigital.exactas.uba.ar/download/tesis/tesis_n6506_Perez.pdf