<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2227-1899</journal-id>
<journal-title><![CDATA[Revista Cubana de Ciencias Informáticas]]></journal-title>
<abbrev-journal-title><![CDATA[Rev cuba cienc informat]]></abbrev-journal-title>
<issn>2227-1899</issn>
<publisher>
<publisher-name><![CDATA[Editorial Ediciones Futuro]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2227-18992016000400001</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Paralelización del algoritmo Fuzzy Miner con OpenCL]]></article-title>
<article-title xml:lang="en"><![CDATA[Fuzzy Miner algorithm parallelization with OpenCL]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Fulgueira Camilo]]></surname>
<given-names><![CDATA[Marlis]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Reyes Burunate]]></surname>
<given-names><![CDATA[William]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,complejo de investigación de tecnologías integradas (citi).  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2016</year>
</pub-date>
<volume>10</volume>
<numero>4</numero>
<fpage>1</fpage>
<lpage>14</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S2227-18992016000400001&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S2227-18992016000400001&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S2227-18992016000400001&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[RESUMEN La minería de procesos es una disciplina que ofrece un conjunto de algoritmos, que facilitan la obtención de información de registros de eventos. Sin embargo, el procesamiento de grandes cantidades de datos en ocasiones resulta costoso, debido a los tiempos de ejecución dedicados a esta tarea. El presente artículo refleja una implementación del algoritmo de minería de procesos Fuzzy Miner usando el lenguaje C++. El algoritmo implementado es la base de una segunda propuesta realizada en el artículo, en la cual se emplean técnicas de programación paralela, específicamente, OpenCL. El objetivo que se persigue con este estudio es disminuir el tiempo de procesamiento del algoritmo Fuzzy Miner implementado. Las pruebas efectuadas emplean diferentes datos y distintas arquitecturas hardware, logrando disminuir significativamente el tiempo de ejecución al procesar lo datos en paralelo. Los resultados más relevantes se obtienen con los registros de eventos más grandes y las mejores arquitecturas.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[ABSTRACT Process mining is a discipline that provides a set of algorithms that facilitate obtaining information from event logs. However, the processing of large amounts of data sometimes costly, due to the execution times dedicated to this task. This article reflects an implementation of the algorithm Fuzzy Miner mining process using the C ++ language. The implemented algorithm is based on a proposal made in the second article, in which parallel programming techniques are used, specifically, OpenCL. The objective pursued with this study is to reduce the processing time of the algorithm implemented Fuzzy Miner. The tests carried out using different data and different hardware platforms, thus significantly reducing runtime while processing the data in parallel. The most relevant results are obtained with the records of major events and the best architectures.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Computación Paralela]]></kwd>
<kwd lng="es"><![CDATA[Fuzzy Miner]]></kwd>
<kwd lng="es"><![CDATA[OpenCL]]></kwd>
<kwd lng="en"><![CDATA[Miner Fuzzy]]></kwd>
<kwd lng="en"><![CDATA[OpenCL]]></kwd>
<kwd lng="en"><![CDATA[Parallel Computing]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>ART&Iacute;CULO  ORIGINAL</B></font></p>     <p>&nbsp;</p>     <p><font size="4"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Paralelizaci&oacute;n del algoritmo Fuzzy Miner con OpenCL</font></strong></font></p>     <p>&nbsp;</p>     <p><font size="3"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Fuzzy</font></strong><font face="Verdana, Arial, Helvetica, sans-serif"><strong> Miner algorithm  parallelization with OpenCL</strong></font><strong></strong></font></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <P><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Marlis Fulgueira Camilo<strong><sup>1*</sup></strong>,William Reyes Burunate<strong><sup>1</sup></strong></font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>1</sup>Complejo de Investigaci&oacute;n de Tecnolog&iacute;as Integradas (CITI). {<a href="mailto:mfulgueirac,%20wreyes@citi.cu">mfulgueirac, wreyes}@citi.cu</a></font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">    <br> </font></p>     ]]></body>
<body><![CDATA[<P><font face="Verdana, Arial, Helvetica, sans-serif"><span class="class"><font size="2">*Autor para la correspondencia: </font></span></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <a href="mailto:mfulgueirac@citi.cu">mfulgueirac@citi.cu</a><a href="mailto:jova@uci.cu"></a></font><font face="Verdana, Arial, Helvetica, sans-serif"><a href="mailto:losorio@ismm.edu.cu"></a> </font>     <p>&nbsp;</p>     <p>&nbsp;</p> <hr>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RESUMEN</b> </font>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La miner&iacute;a de procesos es una disciplina que ofrece un conjunto de  algoritmos, que facilitan la obtenci&oacute;n de informaci&oacute;n de registros de eventos.  Sin embargo, el procesamiento de grandes cantidades de datos en ocasiones  resulta costoso, debido a los tiempos de ejecuci&oacute;n dedicados a esta tarea. El  presente art&iacute;culo refleja una implementaci&oacute;n del algoritmo de miner&iacute;a de  procesos Fuzzy Miner usando el lenguaje C++. El algoritmo implementado es la  base de una segunda propuesta realizada en el art&iacute;culo, en la cual se emplean  t&eacute;cnicas de programaci&oacute;n paralela, espec&iacute;ficamente, OpenCL. El objetivo que se  persigue con este estudio es disminuir el tiempo de procesamiento del algoritmo  Fuzzy Miner implementado. Las pruebas efectuadas emplean diferentes datos y  distintas arquitecturas hardware, logrando disminuir significativamente el  tiempo de ejecuci&oacute;n al procesar lo datos en paralelo. Los resultados m&aacute;s  relevantes se obtienen con los registros de eventos m&aacute;s grandes y las mejores  arquitecturas.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Palabras clave:</span></b></font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Computaci&oacute;n Paralela, Fuzzy Miner, OpenCL.</font></p> <hr>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>ABSTRACT</span></b> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Process mining is a discipline that provides a set of algorithms that  facilitate obtaining information from event logs. However, the processing of  large amounts of data sometimes costly, due to the execution times dedicated to  this task. This article reflects an implementation of the algorithm Fuzzy Miner  mining process using the C ++ language. The implemented algorithm is based on a  proposal made in the second article, in which parallel programming techniques  are used, specifically, OpenCL. The objective pursued with this study is to  reduce the processing time of the algorithm implemented Fuzzy Miner. The tests  carried out using different data and different hardware platforms, thus  significantly reducing runtime while processing the data in parallel. The most  relevant results are obtained with the records of major events and the best  architectures.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Key words: </span></b>Miner Fuzzy, OpenCL, Parallel Computing.</font></p> <hr>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>INTRODUCCI&Oacute;N</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La Miner&iacute;a de Procesos es un &aacute;rea de  investigaci&oacute;n que permite realizar un estudio met&oacute;dico de un proceso, basado en  informaci&oacute;n y hechos concretos (Drucker and Sierra 2003; Weijters, van Der Aalst et al. 2006; Smart, Maddern et al. 2009; Van Der Aalst 2011) . Los algoritmos de miner&iacute;a de procesos  deben ser capaces de ofrecer una vista de alto nivel de los procesos  analizados. Entre ellos se pueden citar Alpha Mining (van Dongen, De  Medeiros et al. 2009; Zeng, He et al. 2011; Aruna Devi. C  September &ndash; October 2013) , Genetic Mining  (Ghosh, Biswas et al.  2010; Zeng, He et al. 2011), Heuristic  Miner (Zeng, He et al. 2011; .R.J June 2011) y Fuzzy Mining (Zeng, He et al. 2011).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El presente art&iacute;culo est&aacute; enfocado espec&iacute;ficamente en el  algoritmo Fuzzy Miner, el cual permite reducir un registro de eventos (Xia 2010; Zeng, He et al.  2011). Un evento  representa una actividad espec&iacute;fica, realizada durante un proceso en  particular. El evento puede tener varios atributos, como:  identificador, fecha de ejecuci&oacute;n, originador, entre otros. El uso de este  algoritmo con grandes cantidades de datos se identifica como un problema,  debido a los largos tiempos de ejecuci&oacute;n dedicados a dicha tarea. La  disminuci&oacute;n del tiempo de ejecuci&oacute;n de algoritmos complejos, es tema com&uacute;n en  diversos campos de desarrollo en la actualidad. La computaci&oacute;n paralela permite  realizar simult&aacute;neamente un conjunto de c&aacute;lculos aprovechando para ello los  recursos disponibles de las computadoras paralelas, cuyo objetivo fundamental  es disminuir el tiempo de ejecuci&oacute;n de las aplicaciones respecto a lo que se  pudiera lograr con un solo procesador (Parberry 1987; Carriero and Gelernter 1992; Jada 1992; Hariri and  Parashar 2004) . Diversas  son los t&eacute;cnicas dedicados a este prop&oacute;sito, enfocados siempre a lenguajes de  programaci&oacute;n espec&iacute;ficos como OpenMP (Sterling 2002; Bischof 2008; Chapman, Jost et  al. 2008; Matloff 2011; Pacheco 2011; OpenMP 2015) ,  CUDA (Luebke 2008; Nickolls, Buck et  al. 2008; Sanders and Kandrot 2010; Farber 2011; Cook 2012; Wilt 2013)  y  OpenCL (Barak, Ben-Nun et al. 2010; Tsuchiyama, Nakamura et al. 2010; Gaster, Howes et  al. 2012; Kowalik and Pu&#378;niakowski 2012; Munshi, Gaster et  al. 2012; Scarpino 2012; AMD 2013; Intel 2013; Tay 2013) .  La bibliograf&iacute;a consultada (Fulgueira-Camilo, Ins&uacute;a-Su&aacute;rez et al.  2016; Fulgueira-Camilo,  Ins&uacute;a-Su&aacute;rez et al. 2016) muestra  avances en la paralelizaci&oacute;n de algoritmos de miner&iacute;a de procesos. La presente  investigaci&oacute;n pretende disminuir el tiempo de ejecuci&oacute;n del algoritmo Fuzzy  Miner incorporando t&eacute;cnicas de programaci&oacute;n paralela. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a><strong>Algoritmo Fuzzy Miner</strong></a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El algoritmo de miner&iacute;a de procesos Fuzzy Miner fue propuesto por Christian W. G&uuml;nther y Wil M. P. van der Aalst (G&uuml;nther and Van Der Aalst 2007). El  mismo es utilizado en procesos poco estructurados, tambi&eacute;n conocidos como  procesos &ldquo;espagueti&rdquo; (ver<a href="/img/revistas/rcci/v10n4/f0101416.jpg" target="_blank"> Figura 1</a> ).  Dichos procesos por lo general son dif&iacute;ciles de comprender, ya que son  visualizados todos los detalles de un proceso sin diferenciar entre importantes  o no. La idea general del algoritmo Fuzzy Miner consiste en eliminar los  eventos (actividades) menos representativos del proceso, con el objetivo de  simplificar y visualizar mejor dicho proceso. Para ello, Fuzzy Miner se basa en  dos m&eacute;tricas principales: importancia y correlaci&oacute;n (G&uuml;nther and Van  Der Aalst 2007; Xia  2010). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las m&eacute;tricas citadas anteriormente est&aacute;n asociados a las actividades  presentes en los registros (log) de eventos. La importancia especifica el nivel de inter&eacute;s con que se desea que ocurra un evento o una  sucesi&oacute;n de eventos (arista), es decir, la  frecuencia de aparici&oacute;n de dicho evento o arista (G&uuml;nther and Van Der Aalst 2007). Por  otra parte, la correlaci&oacute;n se determina entre aristas solamente e indica que tan cerca se encuentra un evento de otro (G&uuml;nther and Van Der Aalst 2007). Dicha  correlaci&oacute;n se puede establecer de diversas maneras, seg&uacute;n el inter&eacute;s  particular del usuario final. En su generalidad se usan valores como el tiempo  u originador de eventos para determinar una correlaci&oacute;n. Por ejemplo, si dos  eventos consecutivos se ejecutaron en tiempos cercanos o fueron realizados por  un mismo originador se consideran correlacionados.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Basado en los valores de importancia y  correlaci&oacute;n la reducci&oacute;n del proceso se determina siguiendo estos tres  criterios fundamentales (G&uuml;nther and Van Der  Aalst 2007):</font></p> <ol>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nodos  con alta importancia persisten en el grafo.</font></p>   </li>       ]]></body>
<body><![CDATA[<li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nodos  con poca importancia y altamente correlacionados se agrupan en nodos.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nodos  con poca importancia y poco correlacionados se eliminan del grafo.</font></p>   </li>     </ol>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La visualizaci&oacute;n del algoritmo, por lo  general, es guiada por cuatro aspectos fundamentales:</font></p> <ol>       <li>         <p><font size="2"><em><font face="Verdana, Arial, Helvetica, sans-serif">Agregaci&oacute;n</font></em><font face="Verdana, Arial, Helvetica, sans-serif">: Se forman nodos  compuestos, con el objetivo de reducir la informaci&oacute;n mostrada.</font></font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>Abstracci&oacute;n</em>: Los nodos y aristas  menos importantes, seg&uacute;n su nivel de importancia y correlaci&oacute;n no se  visualizan.</font></p>   </li>       ]]></body>
<body><![CDATA[<li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>&Eacute;nfasis</em>: La informaci&oacute;n  importante, d&iacute;gase nodos y aristas, se visualiza de manera exaltada, haciendo  uso de colores, contraste y tama&ntilde;o.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>Personalizaci&oacute;n</em>: El grafo final de  nodos y aristas que se visualiza es cambiante, seg&uacute;n el nivel de detalle que se  desee visualizar.</font></p>   </li>     </ol>     <p><font size="2"><a><font face="Verdana, Arial, Helvetica, sans-serif"><strong>Principios de la implementaci&oacute;n del  Fuzzy Miner</strong></font></a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el art&iacute;culo  se presenta una versi&oacute;n del algoritmo implementado en C++, la cual est&aacute;  dividida en dos fases fundamentales. La primera fase relacionada con la carga  de los datos y la segunda fase enfocada a la obtenci&oacute;n de cinco valores  relacionados con los eventos y las aristas (ver <a href="#t01">Tabla 1</a> ).</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n4/t0101416.jpg" alt="t01" width="304" height="231"><a name="t01"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la implementaci&oacute;n desarrollada, la importancia es representada por un  valor decimal entre 0 y 1, basado en la frecuencia de aparici&oacute;n de eventos y  aristas. Mientras que para la correlaci&oacute;n se erigen los originadores, es decir, para dos eventos consecutivos si los originadores son iguales,  entonces existe correlaci&oacute;n. Por ejemplo, la<a href="#f02"> Figura 2</a> muestra un peque&ntilde;o registro de eventos compuesto por dos trazas. Como se  puede apreciar existen cuatro eventos distintos A, B, C y D, donde los colores  representan el originador del evento.</font></p>     <p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><img src="/img/revistas/rcci/v10n4/f0201416.jpg" alt="f02" width="306" height="106"><a name="f02"></a></font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="#t02">Tabla <em>2</em></a> y la <a href="#t03">Tabla 3</a>   muestran c&oacute;mo queda la frecuencia y la importancia para eventos y aristas  respectivamente, donde al evento con mayor frecuencia le corresponde la mayor  importancia.</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n4/t0201416.jpg" alt="t02" width="273" height="83"><a name="t02"></a></p>     <p align="center"><img src="/img/revistas/rcci/v10n4/t0301416.jpg" alt="t03" width="347" height="87"><a name="t03"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El valor de correlaci&oacute;n se determina teniendo en cuenta los originadores de  los eventos, la </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="#t04">Tabla <em>4</em></a> refleja c&oacute;mo quedar&iacute;a dicha correlaci&oacute;n y su correspondiente importancia.</font> </p>     <p align="center"><img src="/img/revistas/rcci/v10n4/t0401416.jpg" alt="t04" width="351" height="76"><a name="t04"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una vez obtenidos todos los  valores mostrados en la <a href="#t01">Tabla 1</a> , se  visualizan todos los datos correspondientes a los eventos y aristas.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a><strong>Dise&ntilde;o paralelo del algoritmo Fuzzy Miner</strong></a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la propuesta de implementaci&oacute;n del Fuzzy Miner se  identifican dos fases fundamentales, explicadas brevemente en el ep&iacute;grafe  anterior. La primera fase es totalmente secuencial, mientras que en la segunda se  identifican regiones que pueden ser paralelizadas. Estas regiones a paralelizar  fueron reconocidas despu&eacute;s de analizar y ejecutar el algoritmo con diversos  registros de eventos. La <a href="/img/revistas/rcci/v10n4/f0301416.jpg" target="_blank">Figura 3</a> muestra dicha regi&oacute;n y en negrita los valores  determinantes para la ejecuci&oacute;n eficiente del algoritmo de forma paralela,  principalmente las variables que contienen la cantidad de eventos y la cantidad  de trazas (<em>sizeEvents</em> y <em>sizeTraces respectivamente). </em>Estas dos  variables determinan la aceleraci&oacute;n de la implementaci&oacute;n paralela, es decir, a  mayor cantidad de eventos y trazas, el tiempo de ejecuci&oacute;n del algoritmo  paralelo ser&aacute; mejor respecto al secuencial. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El algoritmo  almacena los eventos y las aristas diferentes en dos listas separadas, los  cuales son identificados inequ&iacute;vocamente por un n&uacute;mero. La paralelizaci&oacute;n  consiste b&aacute;sicamente en obtener los datos 1, 3 y 5 de la <a href="#t01">Tabla 1</a>  de  manera paralela. Siguiendo con la idea de la <a href="/img/revistas/rcci/v10n4/f0301416.jpg" target="_blank">Figura 3</a> el  procedimiento secuencial calcula dichos datos para los eventos A, B, C y D (ver  <a href="#f04">Figura  4</a>).  Mientras que de forma paralela se podr&iacute;an acortar los tiempos de ejecuci&oacute;n (ver<a href="#f05"> Figura  5</a>).</font></p>     ]]></body>
<body><![CDATA[<p align="center"><img src="/img/revistas/rcci/v10n4/f0401416.jpg" alt="f04" width="183" height="187"><a name="f04"></a><img src="/img/revistas/rcci/v10n4/f0501416.jpg" alt="f05" width="164" height="188"><a name="f05"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La implementaci&oacute;n paralela del algoritmo es desarrollada utilizando  OpenCL. OpenCL fue creado por el Grupo Khronos en el 2008, es un est&aacute;ndar abierto que posibilita el uso de dispositivos  CPU y GPU. Provee una API de funciones para interactuar con los dispositivos  disponibles en la arquitectura de hardware (Barak, Ben-Nun et  al. 2010; Tsuchiyama,  Nakamura et al. 2010; Gaster,  Howes et al. 2012; Kowalik  and Pu&#378;niakowski 2012; Munshi, Gaster et al. 2012; Scarpino 2012; AMD 2013; Intel 2013; Tay 2013) .</font></p>     <p><font size="2"><a><font face="Verdana, Arial, Helvetica, sans-serif"><strong>Validaci&oacute;n de  resultados</strong></font></a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las pruebas  realizadas pretenden evaluar el algoritmo paralelo implementado. Para ello se  emplean m&eacute;tricas para evaluar algoritmos paralelos como la aceleraci&oacute;n (Stallings 2010; Gebali 2011; Pacheco 2011) y la eficiencia  paralela (Kumar, Grama et al. 1994; Pacheco 2011; McCool, Reinders  et al. 2012). Adem&aacute;s, se emplean varios  escenarios de prueba los cuales se describen a continuaci&oacute;n:</font></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Arquitectura  1</font></strong><font face="Verdana, Arial, Helvetica, sans-serif">: Intel Core 2 Quad y una tarjeta de video AMD Radeon HD 6850.</font></font></p>     <p><font size="2"><font face="Verdana, Arial, Helvetica, sans-serif"><strong>Arquitectura  2</strong>: Intel Core i7 y una tarjeta de video nVidia Geforce GTX 260.</font></font></p>     <p><font size="2"><font face="Verdana, Arial, Helvetica, sans-serif">Los detalles de las arquitecturas se  muestran en la <a href="/img/revistas/rcci/v10n4/t0501416.jpg" target="_blank">Tabla 5</a>. Los dispositivos pertenecen a distintos fabricantes,  con generaciones y arquitecturas que surgieron entre el 2007 y el 2012. </font></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="#t06">Tabla 6</a>  muestra las  caracter&iacute;sticas de las Bases de Datos empleadas, teniendo como fundamental  propiedad, el aumento del n&uacute;mero de eventos y trazas de un proceso analizado. </font></p>     <p align="center"><img src="/img/revistas/rcci/v10n4/t0601416.jpg" alt="t06" width="518" height="117"><a name="t06"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los tiempos de ejecuci&oacute;n del Fuzzy Miner equivalen al promedio de 5  iteraciones del algoritmo para todas las pruebas realizadas. El sistema  operativo empleado es Windows 7 de 64 bits.<a href="/img/revistas/rcci/v10n4/f0601416.jpg" target="_blank"> La Figura 6</a> muestra los resultados  al ejecutar el algoritmo con las 4 bases de datos y sobre la arquitectura 1. Se  puede apreciar, que con las primeras tres bases de datos los tiempos de  ejecuci&oacute;n se comportan relativamente iguales, no siendo as&iacute; para la mayor de  las bases de datos. Los tiempos de ejecuci&oacute;n de esta &uacute;ltima comienzan a  disminuir al ejecutar en paralelo.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="/img/revistas/rcci/v10n4/f0701416.jpg" target="_blank">Figura  7</a> muestra el funcionamiento de  dicho procesador, cuando ejecuta la implementaci&oacute;n secuencial, espec&iacute;ficamente  en la porci&oacute;n reflejada en la <a href="/img/revistas/rcci/v10n4/f0301416.jpg" target="_blank">Figura 3</a>. Mientras que la <a href="/img/revistas/rcci/v10n4/f0801416.jpg" target="_blank">Figura  8</a> muestra dicho comportamiento pero con la  implementaci&oacute;n paralela.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El an&aacute;lisis anterior es repetido de forma similar en la arquitectura 2,  pero solo con la base de datos m&aacute;s grande, ya que esta evidencia los mejores  resultados y se realiza una comparaci&oacute;n con los resultados obtenidos en la  arquitectura 1. La <a href="/img/revistas/rcci/v10n4/f0901416.jpg" target="_blank">Figura 9</a> refleja dichos valores junto con el resultado  obtenido anteriormente en  <a href="/img/revistas/rcci/v10n4/f0601416.jpg" target="_blank"> La Figura 6</a>. Estos valores permiten discernir que la  ejecuci&oacute;n paralela en CPU y GPU pr&aacute;cticamente mantienen los tiempos de  procesamiento muy parecidos. Dicho esto, se determina calcular y analizar las  m&eacute;tricas de aceleraci&oacute;n y eficiencia enfoc&aacute;ndose espec&iacute;ficamente en la  ejecuci&oacute;n secuencial y paralela en CPU.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Como es posible apreciar en las <a href="/img/revistas/rcci/v10n4/f0601416.jpg" target="_blank">Figura 6</a> y <a href="/img/revistas/rcci/v10n4/f0901416.jpg" target="_blank">Figura 9</a> a mayor cantidad de eventos el  algoritmo paralelo es mejor que el secuencial. Teniendo en cuenta la <a href="/img/revistas/rcci/v10n4/f0301416.jpg" target="_blank">Figura 3</a>,  es la cantidad de eventos quien define el tiempo de ejecuci&oacute;n de los  algoritmos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las m&eacute;tricas son aplicadas a  los datos de la <a href="/img/revistas/rcci/v10n4/f0901416.jpg" target="_blank">Figura 9</a>. Seg&uacute;n dichos valores la aceleraci&oacute;n queda de la  siguiente manera: </font></p>     <p align="center"><img src="/img/revistas/rcci/v10n4/fo0101416.jpg" alt="fo01" width="436" height="61"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los resultados permiten apreciar, que la ejecuci&oacute;n del algoritmo  paralelo alcanza un incremento de velocidad aproximadamente de 1.54 en la  arquitectura 1 y 2.17 para la arquitectura 2 respecto a sus implementaciones  secuenciales. Teniendo en cuenta estos valores, se observa mediante la <a href="#f10">Figura 10</a> un incremento  del Speed Up de 0.63 entre estos dos procesadores.</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n4/f1001416.jpg" alt="f10" width="322" height="270"><a name="f10"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La eficiencia es calculada y analizada igualmente con las arquitecturas  anteriores, enfoc&aacute;ndose en los 4 y 8 hilos de ejecuci&oacute;n que poseen estas  arquitecturas. Los correspondientes resultados se presentan a continuaci&oacute;n:</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n4/fo0201416.jpg" alt="fo02" width="415" height="52"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="#f11">Figura 11</a> muestra una mayor eficiencia por parte de la arquitectura  1, lo que demuestra un mayor uso del procesador al momento de procesar en  paralelo el algoritmo Fuzzy Miner.</font></p>     ]]></body>
<body><![CDATA[<p align="center"><img src="/img/revistas/rcci/v10n4/f1101416.jpg" alt="f11" width="316" height="220"><a name="f11"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se evidencia que las CPU se usan eficientemente un 39% y 27% del tiempo  de ejecuci&oacute;n del algoritmo. El algoritmo tiene una componente secuencial que  limita la eficiencia que puede lograse en una computadora. Teniendo en cuenta  la  <a href="/img/revistas/rcci/v10n4/f0801416.jpg" target="_blank">Figura  8</a>, se evidencia que en la ejecuci&oacute;n paralela cuando se llega a la  porci&oacute;n paralelizada el algoritmo logra aprovechar al 100% los hilos de  ejecuci&oacute;n de la arquitectura, pero existe una parte intr&iacute;nsecamente secuencial  que no puede aprovechar las capacidades de las arquitecturas de pruebas.</font></p>     <p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>CONCLUSIONES</B></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El presente art&iacute;culo cumple con los objetivos trazados inicialmente,  propiciando una implementaci&oacute;n paralela que posibilita disminuir el tiempo de  la implementaci&oacute;n secuencial cuando la cantidad de eventos es igual o mayor que  85184. Los resultados logrados, son de 1.54 y 2.17 de aceleraci&oacute;n, para  procesadores Intel Core 2 Quad Q9300 e Intel Core  i7-920 respectivamente. Esto evidencia nuevamente las fortalezas de los  nuevos procesadores y la utilidad de la Computaci&oacute;n Paralela para lograr  disminuir los tiempos de ejecuci&oacute;n de algoritmos complejos. Por otra parte, se  identifica como id&oacute;neos para este tipo de algoritmos los dispositivos CPU. Se  recomienda como trabajo futuro el uso de esta implementaci&oacute;n con bases de datos  mayores. Tambi&eacute;n es necesario el posterior an&aacute;lisis de la implementaci&oacute;n para  su ejecuci&oacute;n en arquitecturas paralelas y distribuidas.</font></p>     <p>&nbsp;</p>     <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>REFERENCIAS    BIBLIOGR&Aacute;FICAS</B></font>     <!-- ref --><p><font size="2"><a><font face="Verdana, Arial, Helvetica, sans-serif">AMD (2013). Accelerated parallel  processing: OpenCL programming guide, Advanced Micro Devices, Inc.    </font></a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>ARUNA DEVI. C, D. S.  (2013). </a>&quot;Application Of Business Process Mining Using Control Flow  Perspective In Manufacturing Unit.&quot; (5).     </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>BARAK, A., T. BEN-NUN, et al. (2010).  A package for OpenCL based heterogeneous computing on clusters with many GPU  devices. Cluster Computing Workshops and Posters (CLUSTER WORKSHOPS), 2010 IEEE  International Conference on, IEEE.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>BISCHOF, C. (2008). Parallel  Computing: Architectures, Algorithms, and Applications, IOS Press.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>CARRIERO, N. and D. GELERNTER (1992).  How to Write Parallel Programs: A First Course MIT Press.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>COOK, S. (2012). CUDA programming: a  developer's guide to parallel computing with GPUs, Newnes.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>CHAPMAN, B., G. JOST, et al. (2008).  Using OpenMP: portable shared memory parallel programming, MIT press.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>DRUCKER, P. F. and J. A. SIERRA (2003). </a>El management del futuro, Sudamericana.     </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>FARBER, R. (2011). CUDA application  design and development, Elsevier.    </a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>FULGUEIRA-CAMILO, M.,  E. INS&Uacute;A-SU&Aacute;REZ, et al. (2016). &quot;Aceleraci&oacute;n del algoritmo &ldquo;Alineamiento  de trazas&rdquo; empleando CUDA.&quot; Revista Cubana de Ingenier&iacute;a <strong>7</strong>(1): 27-35.</a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>FULGUEIRA-CAMILO, M.,  E. INS&Uacute;A-SU&Aacute;REZ, et al. (2016). &quot;Implementaci&oacute;n del Algoritmo Trace  Alignment Empleando T&eacute;cnicas de Programaci&oacute;n Paralela.&quot; Revista de  Ingenier&iacute;a&quot; L&aacute;mpsakos&quot;(15): 11-21.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>GASTER, B., L. HOWES,  et al. </a>(2012). Heterogeneous Computing with OpenCL: Revised OpenCL 1, Newnes.     </font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>GEBALI, F. (2011). Algorithms and  Parallel Computing, Wiley.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>GHOSH, S., S. BISWAS, et al. (2010).  &quot;Mining frequent itemsets using genetic algorithm.&quot; arXiv preprint  arXiv:1011.0328.    </a></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>G&Uuml;NTHER, C. W. and W. M. Van Der AALST  (2007). Fuzzy mining&ndash;adaptive process simplification based on multi-perspective  metrics. Business Process Management, Springer<strong>: </strong>328-343.</a></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>G&Uuml;NTHER, C. W. and W. M. Van Der AALST  (2007). Fuzzy mining&ndash;adaptive process simplification based on multi-perspective  metrics. International Conference on Business Process Management, Springer.</a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>HARIRI, S. and M. PARASHAR (2004).  Tools and environments for parallel and distributed computing, John Wiley &amp;  Sons.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>INTEL (2013). Intel&nbsp; SDK for OpenCL Applications. Optimization  Guide, Intel Corporation.    </a> </font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>JADA, J. (1992). An introduction to  parallel algorithms, Addison Wesley.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>KOWALIK, J. and T. PU&#377;NIAKOWSKI (2012).  Using OpenCL: Programming Massively Parallel Computers, IOS Press.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>KUMAR, V., A. GRAMA, et  al. </a>(1994). Introduction to parallel computing: design and analysis of  algorithms, Benjamin/Cummings Publishing Company Redwood City, CA.     </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>LUEBKE, D. (2008). CUDA: Scalable  parallel programming for high-performance scientific computing. Biomedical  Imaging: From Nano to Macro, 2008. ISBI 2008. 5th IEEE International Symposium  on, IEEE.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>MATLOFF, N. (2011). &quot;Programming  on parallel machines.&quot; University of California, Davis.    </a> </font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>MCCOOL, M., J. REINDERS, et al.  (2012). Structured parallel programming: patterns for efficient computation,  Elsevier.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>MUNSHI, A., B. GASTER, et al. (2012).  OpenCL Programming Guide, Addison-Wesley Professional.    </a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>NICKOLLS, J., I. BUCK, et al. (2008).  &quot;Scalable parallel programming with CUDA.&quot; Queue <strong>6</strong>(2): 40-53.</a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>OPENMP (2015). OpenMP Application  Program Interface, OpenMP Architecture Review Board.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>PACHECO, P. (2011). An introduction  to parallel programming, Elsevier.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>PARBERRY, I. (1987). Parallel  complexity theory, John Wiley &amp; Son.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>SANDERS, J. and E. KANDROT (2010).  CUDA by example: an introduction to general-purpose GPU programming,  Addison-Wesley.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>SCARPINO, M. (2012). Opencl in  Action: How to Accelerate Graphics and Computation. NY, USA: Manning.    </a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>SMART, P., H. MADDERN, et al. (2009).  &quot;Understanding business process management: Implications for theory and  practice.&quot; British Journal of Management <strong>20</strong>(4): 491-507.</a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>STALLINGS, W. (2010). Computer  Organization and Architecture: Designing for Performance, Prentice Hall.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>STERLING, T. L. (2002). Beowulf  cluster computing with Linux, MIT press.    </a> </font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>TAY, R. (2013). OpenCL Parallel  Programming Development Cookbook, Packt Publishing.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>TSUCHIYAMA, R., T. NAKAMURA,  et al. </a>(2010). &quot;The opencl programming book.&quot; Fixstars Corporation.     </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>Van Der AALST, W. (2011). Process  mining: discovery, conformance and enhancement of business processes, Springer  Science &amp; Business Media.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>Van DONGEN, B. F., A.  A. De MEDEIROS, et al. </a>(2009). Process mining: Overview and outlook of petri net  discovery algorithms. Transactions on Petri Nets and Other Models of  Concurrency II, Springer<strong>: </strong>225-242.     </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>WEIJTERS, A., W. M. van  Der AALST, et al. </a>(2006). &quot;Process mining with the heuristics  miner-algorithm.&quot; Technische Universiteit Eindhoven, Tech. Rep. WP <strong>166</strong>: 1-34.     </font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>WILT, N. (2013). CUDA Handbook: A  Comprehensive Guide to GPU Programming, Addison-Wesley Professional.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>XIA, J. (2010). &quot;Automatic  determination of graph simplification parameter values for fuzzy miner.&quot;  Eindhoven University of Technology. Netherlands.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>ZENG, R., X. HE, et al. (2011). A  Method to Build and Analyze Scientific Workflows from Provenance through  Process Mining. TaPP.    </a></font> </p>     <p name="_ENREF_1">&nbsp;</p>     <p name="_ENREF_1">&nbsp;</p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Recibido: 25/08/2015    <br> Aceptado: 28/09/2016</font></p>     ]]></body>
<body><![CDATA[ ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[AMD]]></surname>
</name>
</person-group>
<source><![CDATA[Accelerated parallel processing: OpenCL programming guide]]></source>
<year>2013</year>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ARUNA DEVI]]></surname>
<given-names><![CDATA[C, D. S]]></given-names>
</name>
</person-group>
<source><![CDATA[Application Of Business Process Mining Using Control Flow Perspective In Manufacturing Unit.]]></source>
<year>2013</year>
<volume>5</volume>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BARAK]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[BEN-NUN]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<source><![CDATA[A package for OpenCL based heterogeneous computing on clusters with many GPU devices]]></source>
<year>2010</year>
<publisher-name><![CDATA[IEEE International Conference]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BISCHOF]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
</person-group>
<source><![CDATA[Parallel Computing: Architectures, Algorithms, and Applications]]></source>
<year>2008</year>
<publisher-name><![CDATA[IOS Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CARRIERO]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
<name>
<surname><![CDATA[GELERNTER]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[How to Write Parallel Programs: A First Course MIT Press]]></source>
<year>1992</year>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[COOK]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[CUDA programming: a developer's guide to parallel computing with GPUs]]></source>
<year>2012</year>
<publisher-name><![CDATA[Newnes]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CHAPMAN]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[JOST]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[Using OpenMP: portable shared memory parallel programming]]></source>
<year>2008</year>
<publisher-name><![CDATA[MIT press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[DRUCKER]]></surname>
<given-names><![CDATA[P. F]]></given-names>
</name>
<name>
<surname><![CDATA[SIERRA]]></surname>
<given-names><![CDATA[J. A]]></given-names>
</name>
</person-group>
<source><![CDATA[El management del futuro]]></source>
<year>2003</year>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[FARBER]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[CUDA application design and development]]></source>
<year>2011</year>
<publisher-name><![CDATA[Elsevier]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[FULGUEIRA-CAMILO]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[INSÚA-SUÁREZ]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Aceleración del algoritmo Alineamiento de trazas empleando CUDA]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<volume>7</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>27-35</page-range></nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[FULGUEIRA-CAMILO]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[INSÚA-SUÁREZ]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<source><![CDATA[Implementación del Algoritmo Trace Alignment Empleando Técnicas de Programación Paralela]]></source>
<year>2016</year>
<volume>15</volume>
<page-range>11-21</page-range><publisher-name><![CDATA[Revista de Ingeniería Lámpsakos]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GASTER]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[HOWES]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
</person-group>
<source><![CDATA[Heterogeneous Computing with OpenCL: Revised OpenCL]]></source>
<year>2012</year>
<publisher-name><![CDATA[Newnes]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GEBALI]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<source><![CDATA[Algorithms and Parallel Computing]]></source>
<year>2011</year>
<publisher-name><![CDATA[Wiley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GHOSH]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[BISWAS]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[Mining frequent itemsets using genetic algorithm]]></source>
<year>2010</year>
</nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GÜNTHER]]></surname>
<given-names><![CDATA[C. W]]></given-names>
</name>
<name>
<surname><![CDATA[Van Der AALST]]></surname>
<given-names><![CDATA[W. M.]]></given-names>
</name>
</person-group>
<source><![CDATA[Fuzzy mining-adaptive process simplification based on multi-perspective metrics]]></source>
<year>2007</year>
<page-range>328-343</page-range><publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B16">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GÜNTHER]]></surname>
<given-names><![CDATA[C. W]]></given-names>
</name>
<name>
<surname><![CDATA[Van Der AALST]]></surname>
<given-names><![CDATA[W. M.]]></given-names>
</name>
</person-group>
<source><![CDATA[Fuzzy mining-adaptive process simplification based on multi-perspective metrics]]></source>
<year>2007</year>
<publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B17">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[HARIRI]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[PARASHAR]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Tools and environments for parallel and distributed computing]]></source>
<year>2004</year>
<publisher-name><![CDATA[John Wiley & Sons]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B18">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[INTEL]]></surname>
</name>
</person-group>
<source><![CDATA[Intel SDK for OpenCL Applications]]></source>
<year>2013</year>
<publisher-name><![CDATA[Intel Corporation]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B19">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[JADA]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[An introduction to parallel algorithms]]></source>
<year>1992</year>
<publisher-name><![CDATA[Addison Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B20">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[KOWALIK]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[PU&#377;NIAKOWSKI]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<source><![CDATA[Using OpenCL: Programming Massively Parallel Computers]]></source>
<year>2012</year>
<publisher-name><![CDATA[IOS Press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B21">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[KUMAR]]></surname>
<given-names><![CDATA[V]]></given-names>
</name>
<name>
<surname><![CDATA[GRAMA]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Introduction to parallel computing: design and analysis of algorithms]]></source>
<year>1994</year>
<publisher-name><![CDATA[Benjamin/Cummings Publishing Company Redwood City]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B22">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[LUEBKE]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[CUDA: Scalable parallel programming for high-performance scientific computing]]></source>
<year>2008</year>
<publisher-name><![CDATA[IEEE International Symposium on, IEEE]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B23">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MATLOFF]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<source><![CDATA[Programming on parallel machines]]></source>
<year>2011</year>
<publisher-name><![CDATA[University of California]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B24">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MCCOOL]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[REINDERS]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Structured parallel programming: patterns for efficient computation]]></source>
<year>2012</year>
<publisher-name><![CDATA[Elsevier]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B25">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MUNSHI]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[GASTER]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
</person-group>
<source><![CDATA[OpenCL Programming Guide]]></source>
<year>2012</year>
<publisher-name><![CDATA[Addison-Wesley Professional]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B26">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[NICKOLLS]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[BUCK]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Scalable parallel programming with CUDA.]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<volume>6</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>40-53</page-range></nlm-citation>
</ref>
<ref id="B27">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[OPENMP]]></surname>
</name>
</person-group>
<source><![CDATA[OpenMP Application Program Interface]]></source>
<year>2015</year>
</nlm-citation>
</ref>
<ref id="B28">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[PACHECO]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[An introduction to parallel programming]]></source>
<year>2011</year>
<publisher-name><![CDATA[Elsevier]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B29">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[PARBERRY]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
</person-group>
<source><![CDATA[Parallel complexity theory]]></source>
<year>1987</year>
<publisher-name><![CDATA[John Wiley & Son]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B30">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SANDERS]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[KANDROT]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<source><![CDATA[CUDA by example: an introduction to general-purpose GPU programming]]></source>
<year>2010</year>
<publisher-name><![CDATA[Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B31">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SCARPINO]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Opencl in Action: How to Accelerate Graphics and Computation]]></source>
<year>2012</year>
<publisher-loc><![CDATA[^eNY NY]]></publisher-loc>
<publisher-name><![CDATA[Manning]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B32">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SMART]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[MADDERN]]></surname>
<given-names><![CDATA[H]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Understanding business process management: Implications for theory and practice]]></article-title>
<source><![CDATA[]]></source>
<year></year>
<volume>20</volume>
<numero>4</numero>
<issue>4</issue>
<page-range>491-507</page-range></nlm-citation>
</ref>
<ref id="B33">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[STALLINGS]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
</person-group>
<source><![CDATA[Computer Organization and Architecture: Designing for Performance]]></source>
<year>2010</year>
<publisher-name><![CDATA[Prentice Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B34">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[STERLING]]></surname>
<given-names><![CDATA[T. L]]></given-names>
</name>
</person-group>
<source><![CDATA[Beowulf cluster computing with Linux]]></source>
<year>2002</year>
<publisher-name><![CDATA[MIT press]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B35">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[TAY]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[OpenCL Parallel Programming Development Cookbook]]></source>
<year>2013</year>
<publisher-name><![CDATA[Packt Publishing]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B36">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[TSUCHIYAMA]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[NAKAMURA]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
</person-group>
<source><![CDATA[The opencl programming book]]></source>
<year>2010</year>
<publisher-name><![CDATA[Fixstars Corporation.]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B37">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Van Der AALST]]></surname>
<given-names><![CDATA[W]]></given-names>
</name>
</person-group>
<source><![CDATA[Process mining: discovery, conformance and enhancement of business processes]]></source>
<year>2011</year>
<publisher-name><![CDATA[Springer Science & Business Media]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B38">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Van DONGEN]]></surname>
<given-names><![CDATA[B. F]]></given-names>
</name>
<name>
<surname><![CDATA[De MEDEIROS]]></surname>
<given-names><![CDATA[A. A]]></given-names>
</name>
</person-group>
<source><![CDATA[Process mining: Overview and outlook of petri net discovery algorithms.]]></source>
<year>2009</year>
<page-range>225-242</page-range><publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B39">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[WEIJTERS]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[van Der AALST]]></surname>
<given-names><![CDATA[W. M]]></given-names>
</name>
</person-group>
<source><![CDATA[Process mining with the heuristics miner-algorithm]]></source>
<year></year>
<volume>166</volume>
<page-range>1-34</page-range><publisher-name><![CDATA[Technische Universiteit Eindhoven]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B40">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[WILT]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<source><![CDATA[CUDA Handbook: A Comprehensive Guide to GPU Programming]]></source>
<year>2013</year>
<publisher-name><![CDATA[Addison-Wesley Professional]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B41">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[XIA]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Automatic determination of graph simplification parameter values for fuzzy miner.]]></source>
<year>2010</year>
<publisher-name><![CDATA[Eindhoven University of Technology]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B42">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ZENG]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[X]]></surname>
<given-names><![CDATA[HE]]></given-names>
</name>
</person-group>
<source><![CDATA[A Method to Build and Analyze Scientific Workflows from Provenance through Process Mining]]></source>
<year>2011</year>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
