Lenguaje visual para el desarrollo de programas paralelos - Quiroz Fabián, José Luis (Universidad Autónoma Metropolitana, 2019)
Hoy por hoy, las arquitecturas paralelas se encuentran en todas partes, desde clusters, computadoras con múltiples unidades de procesa-miento, hasta celulares y tabletas. Sin embargo, el programar estosdispositivos de forma eficiente puede ser una tarea compleja. El programar en estas arquitecturas paralelas requiere: que el desarrollador tenga un conocimiento profundo del problema a resolver y los lenguajes, herramientas y bibliotecas de programación (lo anterior se complica cuando los conocimientos del programador son únicamente de programación secuencial). Este problema se puede reducir significativamente mediante el uso de lenguajes visuales, los cuales permiten esconder aspectos teóricos y de implementación relacionados con la especificación de la comunicación y administración de procesos (por ejemplo creación de procesos y grupos). Esta tesis presenta VPPL (Visual Parallel Programming Language), un lenguaje visual para el desarrollo de programas paralelos que permite especificar un programa a través del modelo de flujos de trabajo (Workflow), los cuales se construyen mediante la composición de iconos. Los iconos en VPPL son de diferentes tipos y permiten especificar: flujo de control (organización del flujo de trabajo), operaciones de entrada y salida, comunicación y procesamiento. Los iconos de procesamiento de VPPL incluyen un conjunto de patrones de cómputo paralelo, SPMD (Single Program Multiple Data), MPMD (Multiple Program Multiple Data), Pipeline y Maestro-Esclavo. Los programasen VPPL son descritos por medio de una gramática formal visual. En la tesis se propone también una ambiente de desarrollo integrado, el cual se denomina VPPE (Visual Parallel Programming Environment) para construir programas en VPPL. El ambiente tiene una arquitectura definida para un funcionamiento en la nube, la cual para su ejecución solo requiere un navegador web. Cuando un flujo de trabajose ejecuta, VPPE transparentemente genera código en un lenguaje de alto nivel textual (Java-MPI) el cual se ejecuta en un cluster. Para validar la propuesta, mostramos una comparación cualitativa y de rendimiento. La primera permite diferenciar los pasos de programación de un programa paralelo realizado de forma textual como tradicionalmente se implementa vs realizar el desarrollo del programa con VPPLy VPPE. La segunda comparación permite evaluar el desempeño de programas generados con VPPL.