Jornada de investigación de Doctorandos Enero 2020

Fecha: 22 de enero de 2020

Lugar: Sala de Grados, Facultad de Informática

Organización de las Jornadas

  • La jornada estará organizada en una sesión de 15:30 a 17:00
  • Cada ponente dispondrá de 10 minutos para realizar su presentación más 5 minutos para responder a preguntas.

Presentaciones

PonentePonenciaResumen
Gorka Suárez García Derivación de tipos polimórficos en Erlang

Erlang es un lenguaje de programación funcional concurrente de tipado dinámico. Actualmente existen herramientas como Dialyzer para la comprobación de tipos en programas escritos en Erlang, para detectar errores de ejecución. Esta herramienta -basada en la noción de los success types, una sobre-aproximación a la semántica de la expresión-, carece de la capacidad de inferir tipos polimórficos, así como de un marco teórico que pruebe su corrección.

Nuestro trabajo está orientado a formalizar una herramienta que pueda inferir success types polimórficos. Para ello estamos construyendo un sistema de tipos, cuya primera parte es un sistema de derivación de tipos polimórficos con su corrección y la segunda será un algoritmo de inferencia que sirva de base para implementar una herramienta que analice tipos.

Por último, nuestros tipos permiten polimorfismo, así como sobrecarga de tipos funcionales, aportando una mayor precisión a la hora de analizar expresiones del lenguaje. Aclarar que la sobrecarga de tipos funcionales representa las diferentes ramas de ejecución de una expresión en un programa.

Rubén Rafael Rubio Cuéllar Comprobación de modelos guiados por estrategias en lógica de reescritura.

Si tuviéramos que escribir un libro de cocina usando la lógica de reescritura, lo natural sería representar los ingredientes y utensilios mediante términos y ecuaciones, y las posibles acciones del cocinero (cocer, partir, verter...) como reglas que reescriben estos términos. Sin embargo, al preparar un plato no se deben realizar estas operaciones de cualquier manera, es preciso seguir una receta. En el contexto de la reescritura, a eso lo llamamos estrategia.

En Maude, terminada la implementación de su lenguaje de estrategias, es posible especificar estas recetas y ejecutarlas (aunque el resultado no será comestible, por el momento). Además, la extensión del comprobador de modelos para sistemas así descritos permite aplicarles esa técnica de verificación muy utilizada en los modelos clásicos para asegurar que todo el proceso cumple ciertas propiedades temporales. El trabajo realizado comprende estas dos tareas y su aplicación a casos de estudio interesantes, no necesariamente gastronómicos. Con el fin de evitar que la audiencia quede frita con lo ya expuesto en anteriores ocasiones, se contarán los últimos avances en la cuestión.

Antonio F. G. Sevilla Proyecto VisSE: Visualizando la SignoEscritura

El proyecto "Visualizando la Signoescritura" consiste en desarrollar una seriede herramientas con el objetivo de poder utilizar efectivamente la SignoEscritura en el mundo digital. La SignoEscritura es un sistema de transcripción de la Lengua de Signos, que permite escribirla de manera icónica en forma de texto.

Se desarrollará un reconocedor automático de SignoEscritura, capaz de entender textos escritos con ella, extrayendo los parámetros de las imágenes que codifican la realización signada. La información extraída será en sí de utilidad, siendo una codificación abstracta de la Lengua de Signos, y permitirá utilizar ésta de manera efectiva en el ordenador.

Adicionalmente, otras aplicaciones convertirán esta codificación en representaciones que ayuden a utilizar la SignoEscritura. Por un lado, una descripción en lenguaje sencillo describirá de manera fácil de entender los movimientos y formas a realizar con las manos, tanto para un Sordo no familiarizado con la SignoEscritura, como para un oyente sin conocimientos de LSE.

Por otro lado, un avatar tridimensional animado representará los signos, constituyendo una realización digital de la SignoEscritura que permitirá entenderla y aprenderla mejor, así como comunicar información en Lengua de Signos Española a personas que no conozcan el sistema.

Luis M. Costero Valero Gestión Automática de Recursos para Múltiples Aplicaciones Concurrentes Maleables

El aumento del número de núcleos dentro de un mismo procesador se ha establecido como la tendencia actual para incrementar el rendimiento. Sin embargo, la explotación correcta de un número elevado de recursos no es una tarea sencilla.

Por un lado, la utilización de todos los recursos por una única aplicación puede suponer un gran esfuerzo al programador, o incluso ser imposible debido a la propia naturaleza de la misma. En el otro extremo, la ejecución de múltiples aplicaciones de forma concurrente puede favorecer que no se desperdicien recursos. Sin embargo, esta última aproximación tradicionalmente realizada a través del Sistema Operativo, no garantiza el máximo aprovechamiento de los mismos ya que ignora características propias de cada una de las aplicaciones que pueden ser modificadas en tiempo de ejecución.

Durante la presentación se introducirá la idea de un co-planificador consciente de las aplicaciones, y se mostrará como, a través de la modificación en tiempo de ejecución de diferentes parámetros tanto del entorno como de las propias aplicaciones, se puede ejecutar múltiples aplicaciones simultáneamente con un uso y compartición de los recursos óptimo. Adicionalmente, se mostrará como dotar a estos sistemas de inteligencia propia para realizar la toma de decisiones. Todas estas ideas se desarrollarán sobre una aplicación ampliamente utilizada en el mundo real: codificación de vídeo HEVC en tiempo real.

Adrián García García Particionado eficiente de cache en cluster para mejorar la justicia en procesadores multicore comerciales Los procesadores multicore están ampliamente presentes en sistemas de cómputo de diferentes segmentos del mercado. A pesar de sus beneficios, la contención que aparece de forma natural cuando múltiples aplicaciones compiten por el uso de los recursos compartidos entre los cores –como la caché de último nivel (LLC)– puede causar una degradación sustancial en el rendimiento global. Se ha demostrado que asignar aplicaciones de la carga de trabajo a particiones disjuntas de la LLC, posiblemente de diferentes tamaños, ayuda a mitigar los efectos de la contención en recursos compartidos. En este artı́culo proponemos LFOC, una estrategia de particionado en cluster que intenta proporcionar justicia y, al mismo tiempo, mantener un rendimiento global del sistema aceptable. LFOC utiliza la tecnologı́a Intel CAT, que permite dividir la LLC en particiones. Para alcanzar este objetivo LFOC emula el comportamiento de la solución óptima de particionado en cluster, que hemos aproximado con un simulador en diferentes escenarios. Con este fin, LFOC separa las aplicaciones streaming agresoras de las aplicaciones sensibles a la compartición de cache, asignándolas a diferentes particiones.