Universidad Complutense de Madrid
E-Prints Complutense

May-Happen-in-Paralell Analysis with Returned Futures



Downloads per month over past year

Gordillo Alguacil, Pablo (2017) May-Happen-in-Paralell Analysis with Returned Futures. [Trabajo Fin de Máster]



This work presents a May-Happen-in-Parallel (MHP) analysis with returned futures for languages based on concurrent objects. The concurrency model is based on the actor model where the objects are the concurrency units. The idea behind it is that each object has its own processor.
MHP is a fundamental analysis to reason about concurrent programs. It infers the pairs of program points that may execute in parallel, or interleave their execution. This information is essential in order to prove, among other things, absence of data races, deadlock freeness, termination, and resource usage. The existing MHP analyses take advantage of the synchronization points. These points are used by the analysis to learn if a task has finished its execution and thus will not happen in parallel with the other tasks that are executing.
This thesis presents an MHP analysis for asynchronous programs that use futures as synchronization mechanism. Future variables are available in most concurrent languages (e.g., in the library concurrent of Java, in the standard thread library of C++, and in Scala and Python). The novelty of our analysis is that it is able to infer MHP relations that involve future variables that are returned by asynchronous tasks. Futures are returned when a task needs to await for another task created in an inner scope, e.g., task t needs to await for the termination of task p that is spawned by task q that is spawned during the execution of t (not necessarily by t). Thus, task p is awaited by task t which is in an outer scope. The challenge for the analysis is to (back) propagate the synchronization of tasks through future variables from inner to outer scopes.
The analysis presented over-approximates the real parallelism of a program and is carried out in two phases: (1) a local phase to infer the relations existing between the different methods and (2) a global phase where the information extracted from the local phase is composed. Finally, the implementation of the analysis has been integrated in SACO, a static analyzer of concurrent programs.
The main technical results [9] have been selected to be published in the proceedings of the 15th International Symposium on Automated Technology for Verification and Analysis 2017 (ATVA'17): http://www.iarcs.org.in/atva2017. This conference is classified as category A in the international ranking CORE.

Resumen (otros idiomas)

Este trabajo presenta un análisis estático de May-Happen-in-Parallel (puede-ocurrir-en-paralelo) con devolución de variables futuras para lenguajes basados en objetos concurrentes. El modelo de concurrencia está basado en el modelo de actores, donde los objetos son las unidades concurrentes. En este modelo de concurrencia cada objeto tiene su propio procesador. El análisis de May-Happen-in-Parallel (MHP) es fundamental para razonar sobre programas concurrentes. El análisis infiere qué puntos del programa pueden ejecutarse en paralelo o entrelazar su ejecución. Esta información es esencial para demostrar la ausencia de carreras de datos, de interbloqueos, la terminación o el consumo de recursos, entre otros, de programas concurrentes. Los análisis MHP existentes extraen información de los puntos de sincronización. Estos puntos permiten al análisis saber si una tarea ha finalizado su ejecución y, por tanto, no va a ejecutarse en paralelo con el resto de tareas en ejecución. Este trabajo presenta un análisis MHP para programas asíncronos que utilizan variables futuras como mecanismo de sincronización. Las variables futuras están disponibles en la mayoría de lenguajes concurrentes (como por ejemplo en la librería concurrent de Java, en la librería estándar de threads de C++, y en Scala y Python). Lo novedoso de nuestro análisis es su capacidad para inferir la relación MHP existente entre variables futuras devueltas por tareas asíncronas. Estas variables son devueltas cuando una tarea necesita bloquear su ejecución hasta que otra tarea creada en un ámbito interno finalice su ejecución, por ejemplo, la tarea t necesita esperar a que la tarea p finalice su ejecución, la cual ha sido creada por la tarea q que es creada durante la ejecución de t (pero no necesariamente por ella). Por tanto, la terminación de la tarea p es sincronizada en la tarea t la cual se encuentra en un ámbito más exterior (respecto al ámbito en el que p ha sido creada). El análisis presentado sobre-aproxima el paralelismo real de un programa y se lleva a cabo en dos fases: (1) una fase local en la que se infieren las relaciones existentes entre los distintos métodos y (2) una fase global donde la información de la fase local se compone. Finalmente, la implementación del análisis ha sido incorporada a SACO, un analizador estático de programas concurrentes. Los principales resultados de este trabajo [9] serán publicados en el Simposio Internacional de Tecnología Automática para Verificación y Análisis 2017 (ATVA'17): http://www.iarcs.org.in/atva2017. Se trata de un congreso calificado como A en el ranking de congresos CORE.

Item Type:Trabajo Fin de Máster
Additional Information:

Máster en Ingeniería Informática, Facultad de Informática, Departamento de Sistemas Informáticos y Computación, curso 2016-2017

DirectorsDirector email
Albert Albiol, Elvira María
Genaim, Samir
Uncontrolled Keywords:May-Happen-in-parallel Analysis, Parallelism, Concurrency, Returned future variables, Static analysis, ABS language
Palabras clave (otros idiomas):Análisis May-Happen-in-Parallel, Paralelismo, Concurrencia, Devolución de variables futuras, Análisis estático, Lenguaje ABS
Subjects:Sciences > Computer science > Programming languages (Electronic computers)
Sciences > Computer science > Computer programming
Título del Máster:Máster en Ingeniería Informática
ID Code:43978
Deposited On:21 Jul 2017 10:24
Last Modified:21 Jul 2017 10:24

Origin of downloads

Repository Staff Only: item control page