Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable

Existen sistemas complejos cuya dinámica es difícil de entender y de los cuales sólo se tiene información de ciertas variables. Este problema es un escenario ideal para el uso de técnicas de descubrimiento de conocimiento como el algoritmo de PC y PC-stable. En este trabajo se realizó una implementa...

Full description

Bibliographic Details
Main Author: Morocho Coronel, Andrés David
Other Authors: Samaniego Alvarado, Esteban Patricio
Format: bachelorThesis
Language:spa
Published: 2018
Subjects:
Online Access:http://dspace.ucuenca.edu.ec/handle/123456789/30312
_version_ 1785802454891233280
author Morocho Coronel, Andrés David
author2 Samaniego Alvarado, Esteban Patricio
author_facet Samaniego Alvarado, Esteban Patricio
Morocho Coronel, Andrés David
author_sort Morocho Coronel, Andrés David
collection DSpace
description Existen sistemas complejos cuya dinámica es difícil de entender y de los cuales sólo se tiene información de ciertas variables. Este problema es un escenario ideal para el uso de técnicas de descubrimiento de conocimiento como el algoritmo de PC y PC-stable. En este trabajo se realizó una implementación eficiente del algoritmo de PC y PC-stable en el lenguaje de programación C, incorporando conocimiento a priori y aplicando técnicas de paralelización para sistemas con memoria compartida (openMP) y distribuida (OpenMPI). El rendimiento de la implementación se comprobó con conjuntos de datos sintéticos y reales, comparándolo con pcalg (R). Además, se reprodujo resultados de aplicar PC-stable en simulaciones de procesos de advección y difusión. Los resultados de las pruebas de rendimiento indican que nuestra implementación con datos sintéticos es hasta 30 veces más rápida que pcalg (serie) y la implementación paralela (openMP) es hasta 3.7 veces más rápida que en serie. Además, nuestra implementación (openMP) con datos reales es hasta 11 veces más rápida que pcalg (paralelo). Aunque los resultados de nuestra implementación con respecto a pcalg varían en 6 de los 1200 conjuntos de datos sintéticos probados, en hasta 22 enlaces (de 910) del DAG resultante, se considera que estas diferencias no tienen impacto en las conclusiones obtenidas de los DAGs resultantes. Al aplicar PC-stable a simulaciones de procesos se encontró que nuestra implementación es más drástica eliminando enlaces en los distintos tiempos. Aunque, los enlaces del DAG resultante tienen el mismo comportamiento que en los resultados que se replican.
format bachelorThesis
id oai:dspace.ucuenca.edu.ec:123456789-30312
institution Universidad de Cuenca
language spa
publishDate 2018
record_format dspace
spelling oai:dspace.ucuenca.edu.ec:123456789-303122022-08-11T14:27:52Z Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable Morocho Coronel, Andrés David Samaniego Alvarado, Esteban Patricio Ingeniería de Sistemas Datos Paralelización Red causal Algoritmos Existen sistemas complejos cuya dinámica es difícil de entender y de los cuales sólo se tiene información de ciertas variables. Este problema es un escenario ideal para el uso de técnicas de descubrimiento de conocimiento como el algoritmo de PC y PC-stable. En este trabajo se realizó una implementación eficiente del algoritmo de PC y PC-stable en el lenguaje de programación C, incorporando conocimiento a priori y aplicando técnicas de paralelización para sistemas con memoria compartida (openMP) y distribuida (OpenMPI). El rendimiento de la implementación se comprobó con conjuntos de datos sintéticos y reales, comparándolo con pcalg (R). Además, se reprodujo resultados de aplicar PC-stable en simulaciones de procesos de advección y difusión. Los resultados de las pruebas de rendimiento indican que nuestra implementación con datos sintéticos es hasta 30 veces más rápida que pcalg (serie) y la implementación paralela (openMP) es hasta 3.7 veces más rápida que en serie. Además, nuestra implementación (openMP) con datos reales es hasta 11 veces más rápida que pcalg (paralelo). Aunque los resultados de nuestra implementación con respecto a pcalg varían en 6 de los 1200 conjuntos de datos sintéticos probados, en hasta 22 enlaces (de 910) del DAG resultante, se considera que estas diferencias no tienen impacto en las conclusiones obtenidas de los DAGs resultantes. Al aplicar PC-stable a simulaciones de procesos se encontró que nuestra implementación es más drástica eliminando enlaces en los distintos tiempos. Aunque, los enlaces del DAG resultante tienen el mismo comportamiento que en los resultados que se replican. There are complex systems whose dynamics are difficult to understand and of which only information of certain variables is available. The amount of information collected from those variables makes the problem an ideal scenario for using knowledge discovery techniques such as PC and PC-stable algorithms. In this work we create an efficient implementation of PC and PC-stable in the C programming language, adding background knowledge and applying parallelization techniques for systems with shared (openMP) and distributed memory (Open MPI). Performance tests of the implementation were performed with synthetic and real data sets and compared with pcalg (R). Also, we reproduced the results of applying PC-stable to simulations of advection and diffusion processes. Results of the performance tests show that our implementation with synthetic data is up to 30 times faster than pcalg (serial) and the parallel implementation (openMP) is up to 3.7 times faster than the serial implementation in C. Furthermore, our implementation (openMP) with real datasets is 11 times faster than parallel pcalg. Although the results of our implementation compared to pcalg differ in 6 of the 1200 synthetic datasets tested, in up to 22 links (of 910) of the resulting DAG. We considered that these differences have no impact on the conclusions obtained from the resultant DAGs. When applying the implementation to simulations of processes, we found that our implementation is more drastic deleting links at different times. Although, the resulting links in the DAG have the same behavior as in the replicated results. Ingeniero de Sistemas Cuenca 2018-05-07T18:56:01Z 2018-05-07T18:56:01Z 2018-05-07 bachelorThesis http://dspace.ucuenca.edu.ec/handle/123456789/30312 spa TS;252 application/pdf application/pdf
spellingShingle Ingeniería de Sistemas
Datos
Paralelización
Red causal
Algoritmos
Morocho Coronel, Andrés David
Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable
title Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable
title_full Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable
title_fullStr Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable
title_full_unstemmed Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable
title_short Implementación de algoritmos de inferencia causal utilizando computación paralela: PC y PC-stable
title_sort implementación de algoritmos de inferencia causal utilizando computación paralela: pc y pc-stable
topic Ingeniería de Sistemas
Datos
Paralelización
Red causal
Algoritmos
url http://dspace.ucuenca.edu.ec/handle/123456789/30312
work_keys_str_mv AT morochocoronelandresdavid implementaciondealgoritmosdeinferenciacausalutilizandocomputacionparalelapcypcstable