<?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-18992016000300003</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Algoritmo paralelo en memoria compartida para el cálculo de la pendiente del terreno usando OpenMP]]></article-title>
<article-title xml:lang="en"><![CDATA[Shared memory parallel algorithm for extracting the terrain slope using OpenMP]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Castillo Reyes]]></surname>
<given-names><![CDATA[Grethell]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Acevedo Martínez]]></surname>
<given-names><![CDATA[Liesner]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Luzua Farias]]></surname>
<given-names><![CDATA[Guillermo]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de las Ciencias Informáticas  ]]></institution>
<addr-line><![CDATA[La Lisa La Habana]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>09</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>09</month>
<year>2016</year>
</pub-date>
<volume>10</volume>
<numero>3</numero>
<fpage>27</fpage>
<lpage>41</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S2227-18992016000300003&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S2227-18992016000300003&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S2227-18992016000300003&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[RESUMEN Los Modelos Digitales de Elevación son la base para el cálculo de varios parámetros de caracterización de la topografía del terreno, tales como la pendiente. El cálculo de estos parámetros es importante para los Sistemas de Información Geográfica, debido a que sus aplicaciones tienen impacto directo en la toma de decisiones a la hora de evaluar las características del terreno en situaciones de emergencia, por ejemplo: posibles inundaciones y deslizamientos de tierra en las laderas montañosas. La mayoría de los algoritmos utilizados para su cálculo son complejos desde un punto de vista computacional y dependen del tamaño y la resolución de los MDE. Uno de los principales retos en este sentido consiste en el diseño e implementación de algoritmos paralelos que utilicen todo el potencial de procesamiento de las computadoras modernas con el fin de reducir el tiempo de cálculo. La principal contribución de este trabajo es la propuesta de un algoritmo paralelo de memoria compartida que utiliza las capacidades de computación de los procesadores multinúcleos. La propuesta se llevó a cabo utilizando la interfaz de programación de aplicaciones OpenMP. Los experimentos llevados a cabo muestran un buen rendimiento general.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[ABSTRACT The Digital Elevation Models are the basis to calculate several terrain parameters to characterize topography, such as the slope. The calculation of this parameters is important for the Geographic Information Systems, because their applications have direct impact on decision making when it comes to assess the terrain characteristics in emergency situations, for example: possible floods and landslides in mountainous slopes. Most of the algorithms used are complex from a computational point of view and depend on the size and resolution of the DEMs. One of the main challenges in this regard involves the design and implementation of parallel algorithms that use the full potential of modern computer processing in order to reduce the computation time. The main contribution of this paper is the proposal of a shared memory parallel algorithm that uses computing capabilities of multicore processors. The proposal was implemented using the Application Programming Interface OpenMP. The experiments carried out show a good overall performance.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Modelo Digital de Elevación]]></kwd>
<kwd lng="es"><![CDATA[pendiente]]></kwd>
<kwd lng="es"><![CDATA[procesamiento paralelo]]></kwd>
<kwd lng="en"><![CDATA[Digital Elevation Model]]></kwd>
<kwd lng="en"><![CDATA[parallel processing]]></kwd>
<kwd lng="en"><![CDATA[slope]]></kwd>
<kwd lng="en"><![CDATA[OpenMP]]></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">Algoritmo  paralelo en memoria compartida para el c&aacute;lculo de la pendiente del terreno  usando OpenMP</font></strong></font></p>     <p>&nbsp;</p>     <p><font size="3"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Shared  memory parallel algorithm for extracting the terrain slope using OpenMP</font></strong></font></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <P><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Grethell Castillo Reyes<strong><sup>1*</sup></strong>,Liesner Acevedo Mart&iacute;nez<strong><sup>1</sup></strong>, Guillermo Luzua Farias</font></strong><font face="Verdana, Arial, Helvetica, sans-serif"><strong><sup>1</sup></strong></font></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>1</sup>Universidad de las Ciencias Inform&aacute;ticas. Carretera a San Antonio de los  Ba&ntilde;os, km 2 &frac12;, Torrens, La Lisa, La Habana, CP. 19370.</font> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">    <br>       ]]></body>
<body><![CDATA[<br> </font></p>     <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:gcreyes@uci.cu">gcreyes@uci.cu</a><a href="mailto:barbaro@upr.edu.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">Los Modelos Digitales de Elevaci&oacute;n son la base para el c&aacute;lculo de varios  par&aacute;metros de caracterizaci&oacute;n de la topograf&iacute;a del terreno, tales como la  pendiente. El c&aacute;lculo de estos par&aacute;metros es importante para los Sistemas de  Informaci&oacute;n Geogr&aacute;fica, debido a que sus aplicaciones tienen impacto directo en  la toma de decisiones a la hora de evaluar las caracter&iacute;sticas del terreno en  situaciones de emergencia, por ejemplo: posibles inundaciones y deslizamientos  de tierra en las laderas monta&ntilde;osas. La mayor&iacute;a de los algoritmos utilizados  para su c&aacute;lculo son complejos desde un punto de vista computacional y dependen  del tama&ntilde;o y la resoluci&oacute;n de los MDE. Uno de los principales retos en este  sentido consiste en el dise&ntilde;o e implementaci&oacute;n de algoritmos paralelos que  utilicen todo el potencial de procesamiento de las computadoras modernas con el  fin de reducir el tiempo de c&aacute;lculo. La principal contribuci&oacute;n de este trabajo es  la propuesta de un algoritmo paralelo de memoria compartida que utiliza las  capacidades de computaci&oacute;n de los procesadores multin&uacute;cleos. La propuesta se  llev&oacute; a cabo utilizando la interfaz de programaci&oacute;n de aplicaciones OpenMP. Los  experimentos llevados a cabo muestran un buen rendimiento general.</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">Modelo Digital de Elevaci&oacute;n, pendiente, procesamiento paralelo</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">The Digital Elevation Models are the basis to calculate several terrain  parameters to characterize topography, such as the slope. The calculation of  this parameters is important for the Geographic Information Systems, because  their applications have direct impact on decision making when it comes to  assess the terrain characteristics in emergency situations, for example: possible  floods and landslides in mountainous slopes. Most of the algorithms used are  complex from a computational point of view and depend on the size and  resolution of the DEMs. One of the main challenges in this regard involves the  design and implementation of parallel algorithms that use the full potential of  modern computer processing in order to reduce the computation time. The main  contribution of this paper is the proposal of a shared memory parallel  algorithm that uses computing capabilities of multicore processors. The  proposal was implemented using the Application Programming Interface OpenMP. The  experiments carried out show a good overall performance.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Key words: </span></b>Digital Elevation Model,  parallel processing, slope, OpenMP</font></p> <hr>     ]]></body>
<body><![CDATA[<p>&nbsp;</p>     <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">Los Modelos Digitales de  Elevaci&oacute;n (MDE) representan la elevaci&oacute;n del terreno sobre un nivel base,  obtenida generalmente usando t&eacute;cnicas de teledetecci&oacute;n o LIDAR. Su estructura  constituye normalmente una matriz bidimensional A con n filas m columnas, que conforman nxm celdas, donde <img src="/img/revistas/rcci/v10n3/fo0103316.jpg" alt="fo0103" width="53" height="15"> Cada celda <img src="/img/revistas/rcci/v10n3/fo0203316.jpg" alt="fo03" width="42" height="17">con <img src="/img/revistas/rcci/v10n3/fo0303316.jpg" alt="fo03" width="121" height="17"> representa un valor num&eacute;rico  que toma valores en R y que describe  la elevaci&oacute;n del terreno en ese punto (Mart&iacute;nez, 2011).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Este modelo es  la base para un gran n&uacute;mero de algoritmos de an&aacute;lisis de superficies, que  permiten calcular y modelar par&aacute;metros propios del terreno para caracterizar la  topograf&iacute;a, como es el caso de la pendiente. Este atributo, no solo contribuye  de manera general a las ramas que engloban el tratamiento y an&aacute;lisis de la  informaci&oacute;n geogr&aacute;fica, sino que, adem&aacute;s, diversos modelos ambientales dependen  en gran medida de su resultado. Es empleado en un conjunto de estudios para el  an&aacute;lisis de la inclinaci&oacute;n de superficies, determinaci&oacute;n de zonas de poca  pendiente favorables para la construcci&oacute;n (Rodr&iacute;guez and  Su&aacute;rez 2010) o zonas de mucha pendiente que  determinan erosi&oacute;n o deslizamientos de tierra (Biesemans et al.  2000). Permiten  adem&aacute;s generar mapas de sombra para percibir la profundidad de una superficie  en tres dimensiones (Bernhard, 2001) y determinar la variabilidad de  un relieve en un entorno determinado (Seitavuopio et al.  2005).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Investigaciones realizadas (Nikolakopoulos et al. 2006; Frau et al. 2011) demuestran que con los avances tecnol&oacute;gicos, la  disponibilidad de datos de la superficie del terreno ha ido en aumento  sostenido y cada vez con un mayor nivel de resoluci&oacute;n espacial y precisi&oacute;n.  Como resultado, la memoria requerida para el almacenamiento de los MDE  generados es cada vez mayor. Adem&aacute;s, el c&aacute;lculo para la extracci&oacute;n de los  par&aacute;metros del terreno se hace cada vez m&aacute;s costoso a trav&eacute;s de los algoritmos  secuenciales (Jiang et al. 2013). Aunque se han propuesto diversos enfoques  matem&aacute;ticos (Rodr&iacute;guez and Su&aacute;rez 2010), su complejidad temporal continua siendo <img src="/img/revistas/rcci/v10n3/fo0403316.jpg" alt="fo04" width="48" height="21">con respecto al origen de  datos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Teniendo en  cuenta esto, varios autores, se enfocan en la utilizaci&oacute;n de sistemas  distribuidos para reducir el tiempo de ejecuci&oacute;n de los algoritmos para el  c&aacute;lculo de la pendiente, empleando la Interfaz de Paso de Mensajes (MPI) (Zhan and Qin 2012; Qin et al. 2014b). Las soluciones propuestas son  eficientes respecto a las variantes secuenciales, sin embargo, requieren que se  cuente con una infraestructura de c&aacute;lculo dedicada a ese fin (ejemplo: un  cl&uacute;ster o multiprocesador). Por otro lado, con la llamada &ldquo;Revoluci&oacute;n  Multin&uacute;cleo&rdquo; (Herlihy, 2007) las computadoras personales  cuentan con arquitecturas paralelas que, bien aprovechadas, pueden usarse para  la ejecuci&oacute;n de tareas en paralelo y obtener mejores tiempos de respuesta para  las aplicaciones.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el presente trabajo se exponen los principales  enfoques matem&aacute;ticos para la obtenci&oacute;n de la pendiente del terreno. Se propone  un algoritmo para su c&aacute;lculo paralelo empleando la t&eacute;cnica de programaci&oacute;n  OpenMP y se realiza un an&aacute;lisis comparativo con el algoritmo secuencial empleado  para su c&aacute;lculo. Adem&aacute;s, se valoran par&aacute;metros como la ganancia de velocidad y  la eficiencia del algoritmo paralelo. </font></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">C&aacute;lculo de la pendiente</font></strong> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Dentro del &aacute;lgebra de mapas, las funciones para el  an&aacute;lisis del terreno a partir de la extracci&oacute;n de sus par&aacute;metros son  clasificadas como funciones de an&aacute;lisis focal o de vecindad, en relaci&oacute;n con la  distribuci&oacute;n de las celdas que se utilizan para obtener un resultado. Esto se  debe a que el valor de una celda se obtiene a partir de su propio valor y  teniendo en cuenta el valor de sus vecinos m&aacute;s pr&oacute;ximos, definiendo una matriz  de recorrido de tama&ntilde;o nxn &nbsp;alrededor de la celda analizada, como se  muestra en la<a href="#f01"> Figura 1</a>. Las funciones m&aacute;s habituales emplean matrices con n=3. Posteriormente, esta matriz  se utiliza para obtener el valor de ese punto en el terreno derivado de la  aplicaci&oacute;n de un algoritmo de an&aacute;lisis espacial. </font></p>     ]]></body>
<body><![CDATA[<p align="center"><img src="/img/revistas/rcci/v10n3/f0103316.jpg" alt="f01" width="397" height="155"><a name="f01"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La pendiente es una de las  caracter&iacute;sticas que se define en la literatura como par&aacute;metro primario del  terreno, debido a que constituye el punto de partida para la realizaci&oacute;n de  otros an&aacute;lisis basados en la obtenci&oacute;n de par&aacute;metros m&aacute;s complejos derivados de  este y que permiten aportar mayor informaci&oacute;n sobre las caracter&iacute;sticas del  relieve en un entorno determinado (Serrano et al. 1998) . Existen varios enfoques  matem&aacute;ticos para su c&aacute;lculo (Fleming and Hoffer  1979; Horn, 1981; Zevenbergen and  Thorne 1987), sin embargo, estudios  realizados (Rodr&iacute;guez and  Su&aacute;rez 2010; Zhou and Liu 2004) arrojan como conclusi&oacute;n que los  m&aacute;s apropiados son el m&eacute;todo de Diferencia Finita de segundo grado (Zevenbergen and  Thorne 1987) y el m&eacute;todo de Diferencia Finita  de tercer grado (Horn, 1981).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Dado un punto a<sub>ij</sub> del terreno, la pendiente P(a<sub>ij</sub>) se calcula como sigue:</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/fo0503316.jpg" alt="fo05" width="258" height="30"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Donde g<sub>x</sub> y g<sub>y</sub> corresponden a las funciones  del gradiente Este &ndash; Oeste y Norte - Sur respectivamente. Estas funciones son  calculadas a partir de la matriz de recorrido <img src="/img/revistas/rcci/v10n3/fo0603316.jpg" alt="fo06" width="87" height="18">(ecuaci&oacute;n 2) correspondiente  al punto a<sub>ij</sub> expresado en la siguiente ecuaci&oacute;n:</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/fo0703316.jpg" alt="fo03" width="259" height="69"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Seg&uacute;n el m&eacute;todo de Diferencia  Finita de segundo grado definido en (Zevenbergen and Thorne 1987), g<sub>x</sub> y g<sub>y</sub> se expresan seg&uacute;n las  siguientes ecuaciones:</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/fo0803316.jpg" alt="fo08" width="196" height="94"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Seg&uacute;n el m&eacute;todo de Diferencia Finita de  tercer grado definido en (<a href="#_ENREF_9" title="Horn, 1981 #63">Horn 1981</a>), g<sub>x</sub>&nbsp;se calcula como  sigue: </font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/fo0903316.jpg" alt="f009" width="231" height="127"></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Y g<sub>y</sub>&nbsp;se calcula como  sigue:</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/fo1003316.jpg" alt="fo10" width="370" height="141"></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">An&aacute;lisis del algoritmo secuencial</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Teniendo en cuenta la descripci&oacute;n anterior, siendo f el MDE a procesar, <img src="/img/revistas/rcci/v10n3/fo1103316.jpg" alt="fo11" width="47" height="19">la matriz asociada, donde <img src="/img/revistas/rcci/v10n3/fo1203316.jpg" alt="fo12" width="189" height="25">es la pendiente del terreno en a<sub>ij</sub> , el flujo secuencial de las  operaciones realizadas por el algoritmo para el c&aacute;lculo de la pendiente del  terreno se describe en el <a href="/img/revistas/rcci/v10n3/fo1703316.jpg" target="_blank">Algoritmo 1.</a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La primera operaci&oacute;n que se  ejecuta es la lectura de los metadatos del <em>dataset  raster</em> a procesar. A partir de estos metadatos se crea el <em>dataset</em> de salida.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una vez realizadas las  operaciones anteriores, para cada fila <em>i&nbsp;</em>de la matriz <em>A&nbsp;</em>se realiza la lectura de los datos y para cada celda a<sub>ij</sub> de A se ejecutan dos operaciones  esenciales: se crea la matriz de vecindad W con n = 3 (l&iacute;neas 7 &ndash; 16 del <a href="/img/revistas/rcci/v10n3/fo1703316.jpg" target="_blank">Algoritmo 1</a>) y en cada iteraci&oacute;n W se emplea para obtener la  pendiente del punto a<sub>ij</sub> calculando los gradientes  correspondientes a partir de las celdas vecinas, mediante los enfoques matem&aacute;ticos  propuestos en (Horn, 1981) y (Zevenbergen and Thorne 1987) (l&iacute;nea 17 del <a href="/img/revistas/rcci/v10n3/fo1703316.jpg" target="_blank">Algoritmo 1</a>). Estos resultados se van  almacenando en el buffer A' hasta que finalice la  iteraci&oacute;n, para luego ser escritos en el archivo de salida O (l&iacute;nea 19 del <a href="/img/revistas/rcci/v10n3/fo1703316.jpg" target="_blank">Algoritmo 1</a>). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">A los efectos de este trabajo,  esta secuencia de operaciones es la m&aacute;s relevante. Precisamente, esto se debe a  que independientemente del tama&ntilde;o de la estructura a analizar, el procesamiento  de los datos se realiza fila por fila, como se ilustra en el esquema de la<a href="#f02"> Figura 2</a>.</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/f0203316.jpg" alt="f02" width="364" height="232"><a name="f02"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Desde el punto de vista  algor&iacute;tmico, las operaciones relacionadas con la inicializaci&oacute;n de los datos  son consideradas operaciones elementales de orden O(1), por lo que no influyen  significativamente en el tiempo de procesamiento de los algoritmos. Sin  embargo, teniendo en cuenta que la matriz de entrada A tiene n filas y m columnas y que se itera por cada fila i y columna j, desplazando la matriz de  vecindad por cada celda <img src="/img/revistas/rcci/v10n3/fo1303316.jpg" alt="fo13" width="43" height="15">para realizar los c&aacute;lculos  correspondientes, entonces la complejidad temporal del algoritmo est&aacute; dada por  la ecuaci&oacute;n: </font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/fo1403316.jpg" alt="fo14" width="179" height="55"></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Siendo <img src="/img/revistas/rcci/v10n3/fo1503316.jpg" alt="fo15" width="10" height="15">un valor constante que  representa la cantidad de operaciones elementales ejecutadas en cada iteraci&oacute;n.  Aplicando la definici&oacute;n de cota superior, se deduce que <img src="/img/revistas/rcci/v10n3/fo1603316.jpg" alt="fo16" width="100" height="18">por lo que la complejidad  temporal de los algoritmos es de orden (n * m).</font></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Estrategia de paralelizaci&oacute;n</font></strong></font></p>     <p><font size="2"><font face="Verdana, Arial, Helvetica, sans-serif"><strong>Descomposici&oacute;n de dominio</strong></font></font></p>     <p><font size="2"><font face="Verdana, Arial, Helvetica, sans-serif">Como plantean  los autores en (Guan and Clarke  2010), (Barnes et al. 2011), desde la perspectiva de computaci&oacute;n, el procesamiento de datos <em>raster</em> puede ser paralelizado, dado que  la estructura matricial utilizada para su almacenamiento puede ser particionada  en varias submatrices y asignadas a m&uacute;ltiples procesadores para su c&oacute;mputo.  Este proceso es conocido como descomposici&oacute;n de dominios, y se considera un  elemento fundamental en el procesamiento de datos <em>raster</em> en paralelo.</font></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los datos se dividen en subdominios m&aacute;s peque&ntilde;os y cada una de las  particiones obtenidas es asignada a un procesador, donde se ejecuta el  algoritmo secuencial correspondiente (Wagner and Scott 1995) utilizando los datos del  subdominio proporcionado. En los algoritmos paralelos para procesar informaci&oacute;n <em>raster</em>, com&uacute;nmente los datos se  descomponen en subdominios rectangulares utilizando tres estrategias comunes: descomposici&oacute;n  por filas, descomposici&oacute;n por columnas o descomposici&oacute;n en bloques (Qin et al. 2014a),<a href="#f03"> Figura 3</a>.</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/f0303316.jpg" alt="f03" width="532" height="242"><a name="f03"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los autores en (Wagner and Scott  1995) plantean que el  rendimiento de un algoritmo paralelo con respecto a la descomposici&oacute;n de los  datos, depende en gran medida de la correspondencia que exista entre el tama&ntilde;o  de los subdominios obtenidos y el balance en la asignaci&oacute;n de estos subdominios  a cada uno de los elementos de procesamiento. En este sentido, el equilibrio  entre los procesadores se logra si se particionan los datos en subdominios del  mismo tama&ntilde;o, de manera que se logre uniformidad en la distribuci&oacute;n y en  consecuencia que algunos procesadores no operen con mayor cantidad de datos que  otros.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Teniendo en cuenta los resultados obtenidos en las  pruebas experimentales expuestas en (Guan and Clarke 2010; Qin, Zhan, Zhu and Zhou 2014a), en el presente trabajo se asume el esquema de descomposici&oacute;n  de los datos en subdominios horizontales, dividiendo la matriz de entrada en  bloques de filas. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el algoritmo propuesto se  inician tantos hilos como procesadores existan. Siendo p l n&uacute;mero de procesadores y n la cantidad de filas de la  matriz, entonces a cada procesador <img src="/img/revistas/rcci/v10n3/fo1803316.jpg" alt="fo18" width="137" height="17">se le asigna un bloque de tama&ntilde;o <img src="/img/revistas/rcci/v10n3/fo1903316.jpg" alt="fo19" width="25" height="23">, <a href="#f04">Figura 4</a>.</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/f0403316.jpg" alt="f04" width="388" height="288"><a name="f04"></a></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el caso de que n no sea m&uacute;ltiplo de p, el &uacute;ltimo bloque tendr&iacute;a un  tama&ntilde;o de n - 2 mod p. De esta forma un procesador P<sub>i</sub> cualquiera, recibe como  par&aacute;metro a <img src="/img/revistas/rcci/v10n3/fo2003316.jpg" alt="fo20" width="106" height="19">se denotan como sigue:</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/fo2103316.jpg" alt="fo21" width="295" height="90"></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Esquema paralelo</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En el esquema propuesto, la fuente de  paralelismo radica en realizar la lectura de los datos de la matriz de entrada,  realizar los c&aacute;lculos correspondientes al algoritmo secuencial en paralelo y  finalmente escribir los resultados en la matriz de salida,<a href="#f05"> Figura 5</a>.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El procesamiento se realiza en memoria  compartida, empleando la t&eacute;cnica de programaci&oacute;n OpenMP (Chapman et al.  2008). OpenMP es una  API (del ingl&eacute;s <em>Application Interface  Programming</em>) para los lenguajes de programaci&oacute;n Fortran y C/C++ usada para  implementar paralelismo en sistemas de memoria compartida. El modelo de  programaci&oacute;n paralela que aplica OpenMP es el Fork - Join, mediante el cual el  hilo maestro genera hilos que se ejecutan en paralelo. OpenMP est&aacute; compuesto  por un conjunto de directivas que describen el paralelismo en el c&oacute;digo fuente  y denotan su portabilidad, pues en entornos que no usan OpenMP, las directivas  son tratadas como simples comentarios e ignoradas. Adem&aacute;s, proporciona  capacidad para paralelizar de forma incremental un programa secuencial,  independientemente del hardware.</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/f0503316.jpg" alt="f05" width="421" height="271"><a name="f05"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Inicialmente, en el algoritmo paralelo  propuesto (<a href="/img/revistas/rcci/v10n3/fo2303316.jpg" target="_blank">Algoritmo 2</a>) se realiza la lectura del fichero <em>raster</em> de entrada (l&iacute;nea 1). En concordancia con los metadatos  le&iacute;dos se crea el fichero de salida (l&iacute;nea 2). Las matrices de entrada/salida  se disponen en la memoria de la CPU en forma de buffer lineal, donde los  elementos de la primera fila de la matriz se sit&uacute;an al inicio del buffer  seguidos por los elementos de la segunda fila y as&iacute; sucesivamente. Siendo m &nbsp;la cantidad de  columnas, el acceso a un espacio de &iacute;ndice ij &nbsp;de A, en el buffer B &nbsp;se realiza como  sigue:</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/fo2203316.jpg" alt="fo22" width="146" height="21"></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la l&iacute;nea 4 del algoritmo se  emplea una funci&oacute;n para procesar las celdas correspondientes a los bordes del <em>raster</em> (filas 0 y n, columnas 0 y m) debido a la insuficiencia de  datos para conformar la matriz de vecindad en estos casos. Luego, cada  procesador P<sub>i</sub> se desplaza por el bloque de  filas que le corresponde procesar y para cada celda genera la matriz de  vecindad correspondiente (l&iacute;neas 5 - 23), almacenando el resultado del c&aacute;lculo  en el buffer de salida A' (l&iacute;nea 21). Seguidamente el  hilo maestro se encarga de escribir estos resultados en el fichero de salida O (l&iacute;nea 23). Esta secuencia de  pasos se encuentra formalizada en el<a href="/img/revistas/rcci/v10n3/fo2303316.jpg" target="_blank">Algoritmo 2</a> que recibe como par&aacute;metros el  fichero MDE para analizar (f) y el n&uacute;mero de filas y  columnas del mismo (n,m). </font></p>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">RESULTADOS Y DISCUSI&Oacute;N </font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El algoritmo fue implementado utilizando el lenguaje de programaci&oacute;n C/C++.  El tipo de planificaci&oacute;n definida para determinar la cantidad de iteraciones  asignadas a cada n&uacute;cleo mediante OpenMP es est&aacute;tica (<em>static</em>), a trav&eacute;s de la cual el algoritmo de planificaci&oacute;n asigna  bloques de iteraciones de igual tama&ntilde;o a cada hilo.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para evaluar el desempe&ntilde;o de los algoritmos propuestos se realizaron una  serie de experimentos utilizando una PC Intel(R) Core(TM) i3-2120 con 4 n&uacute;cleos  de procesamiento a 3.30 GHz y 4 GB de memoria RAM.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Como fuente de datos para los experimentos se emplearon ficheros de tipo <em>USGS ASCII DEM</em>, <em>VTP</em> <em>Binary Terrain</em>, as&iacute; como im&aacute;genes de tipo <em>GeoTIFF</em>. Los datos de las muestras de  MDE empleadas en los experimentos se muestran en la <a href="#t01">Tabla 1</a>.</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/t0103316.jpg" alt="t01" width="412" height="116"><a name="t01"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La <a href="/img/revistas/rcci/v10n3/t0203316.jpg" target="_blank">Tabla 2</a>  muestra los tiempos de CPU obtenidos en la ejecuci&oacute;n de la versi&oacute;n secuencial y  la versi&oacute;n paralela propuesta para memoria compartida empleando las cuatro  muestras de MDE descritas en la <a href="#t01">Tabla 1</a>. Los resultados reflejan que, con la  aplicaci&oacute;n de la variante de procesamiento paralelo propuesta, los tiempos  pueden ser mejorados de 30,253 a 14,205 segundos (en el caso del modelo M4),  representando este valor una reducci&oacute;n aproximada del 53% del tiempo de  ejecuci&oacute;n en correspondencia con el algoritmo secuencial.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Adicionalmente, durante el proceso experimental se  implement&oacute; una variante del <a href="/img/revistas/rcci/v10n3/fo2303316.jpg" target="_blank">Algoritmo 2</a>. La diferencia radica en que en este  caso el bucle interno es el que se ejecuta en paralelo tomando como variable  privada de cada hilo a W. En las pruebas realizadas se evidenci&oacute; un aumento del  tiempo de ejecuci&oacute;n con respecto a la primera versi&oacute;n. Este comportamiento se  debe a que mediante OpenMP existe una barrera de sincronizaci&oacute;n de los hilos  impl&iacute;cita al final de cada bucle y en este caso la sincronizaci&oacute;n se ejecutar&iacute;a n &nbsp;veces dentro del  primer ciclo, lo que puede causar en ocasiones p&eacute;rdida de rendimiento.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La gr&aacute;fica de la <a href="/img/revistas/rcci/v10n3/f0603316.jpg" target="_blank">Figura 6</a> muestra de  manera comparativa los resultados reflejados en la tabla anterior.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En la gr&aacute;fica de la <a href="/img/revistas/rcci/v10n3/f0703316.jpg" target="_blank">Figura 7</a> se muestra  el comportamiento de la ganancia de velocidad del algoritmo a medida que  aumenta la cantidad de procesadores utilizados. Se puede observar que de manera  general todas las muestras presentan similar comportamiento, indicando que el  n&uacute;mero &oacute;ptimo de procesadores a utilizar debe ser cuatro, pues este es el caso  en que se alcanza mayor ganancia de velocidad, manteni&eacute;ndose relativamente  cerca del &oacute;ptimo te&oacute;rico seg&uacute;n la cantidad de procesadores.</font> </p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Sin embargo, se puede apreciar  que a&uacute;n cuando la ganancia de velocidad tiende a crecer relativamente cuando se  utilizan cuatro procesadores, el &oacute;ptimo te&oacute;rico se acerca cuando se usan dos  procesadores. Adem&aacute;s, como muestra la gr&aacute;fica de la <a href="#f08">Figura 8</a>, la mayor  eficiencia se alcanza de igual manera cuando se utilizan dos procesadores.</font></p>     ]]></body>
<body><![CDATA[<p align="center"><img src="/img/revistas/rcci/v10n3/f0803316.jpg" alt="f08" width="402" height="320"><a name="f08"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Un elemento importante a tener en cuenta  cuando se trata de procesar MDE, es que el tiempo de procesamiento est&aacute; dado  por el tiempo de las operaciones de lectura y escritura (parte secuencial del  algoritmo) sumado al tiempo de operaciones aritm&eacute;ticas para cada celda de la  matriz (parte paralelizable). Por tanto, es de esperar que, en un momento dado,  manteniendo el tama&ntilde;o del MDE constante, aunque aumenten los procesadores a  utilizar, se deje de ganar velocidad ya que se disminuye el tiempo de la parte  paralelizable, pero el tiempo de la parte secuencial se mantiene constante, en  este caso, la lectura y escritura de los ficheros.</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">En t&eacute;rminos  generales, los resultados obtenidos en los experimentos realizados se  consideran satisfactorios, dada la mejora en t&eacute;rminos de velocidad y  rendimiento alcanzada. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Aunque en el presente trabajo se propone una variante  paralela del algoritmo para el c&aacute;lculo de la pendiente, la propuesta realizada  puede ser aplicable a otros algoritmos de este tipo que describen funciones de  an&aacute;lisis focal utilizando ventanas con tama&ntilde;o n, </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">como es el caso  del pre-procesamiento de los MDE para el an&aacute;lisis de modelos hidrol&oacute;gicos en la  extracci&oacute;n de redes de drenaje, la extracci&oacute;n del &iacute;ndice de escabrosidad del  terreno, as&iacute; como su &iacute;ndice de posici&oacute;n topogr&aacute;fica.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Como trabajo futuro, se destaca la implementaci&oacute;n de  un mecanismo de procesamiento por bloques que permita procesar modelos que por  su tama&ntilde;o no pueden ser cargados completamente en la memoria RAM. El empleo de  la memoria gr&aacute;fica del sistema para la realizaci&oacute;n de c&aacute;lculos en paralelo y la  propuesta de esquemas h&iacute;bridos usando mecanismos distribuidos. </font></p>     <p>&nbsp;</p>     <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>REFERENCIAS  BIBLIOGR&Aacute;FICAS</B></font>     ]]></body>
<body><![CDATA[<!-- ref --><p><font size="2"><a><font face="Verdana, Arial, Helvetica, sans-serif">BARNES, R., C. LEHMAN AND D. MULLA. Distributed Parallel D8  Up-Slope Area Calculation in Digital Elevation Models. In <em>International Conference on Parallel &amp; Distributed Processing  Techniques &amp; Applications.</em> 2011.    </font></a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>BERNHARD, J. An interactive approach to analytical relief  shading. Cartographica,&nbsp; 2001, 38(1),  67-75.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>BIESEMANS, J., M. V. MEIRVENNE AND D. GABRIELS Extending the  rusle with the Monte Carlo error progagation technique to predict long-term  average off-site sediment accumulation. Journal of Soil and Water  Conservation,&nbsp; 2000, 55(1), 35-42.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>CHAPMAN, B., G. JOST AND R. V. D. PAS. Using OpenMP. Portable  Shared Memory Parallel Programming [online]. [Massachusetts Institute of  Technology. London, England]: 2008.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>FLEMING, M. D. AND R. M. HOFFER. Machine processing of  Landsat mss data and lars. </a>West Lafayette, Indiana: 1979.     </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>FRAU, C. M., L. M. PINO, Y. O. ROJAS AND Y. M. HERN&Aacute;NDEZ  Generalizaci&oacute;n de modelo digital de elevaci&oacute;n condicionada por puntos cr&iacute;ticos  de terreno. </a>Bol. Cienc.  Geod,&nbsp; 2011, 17(3), 439&ndash;457. </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>GUAN, Q. AND K. CLARKE A general-purpose parallel raster  processing programming library test application using a geographic cellular  automata model. International Journal of Geographical Information Science,&nbsp; 2010, 24, 695-722.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>HERLIHY, M. The Multicore Revolution. In S.B. HEIDELBERG ed. <em>FSTTCS 2007: Foundations of Software  Technology and Theoretical Computer Science.</em> 2007.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>HORN, B. K. P. Hill shading and the reflectance map.  Proceedings of IEEE,&nbsp; 1981, 69(1), 14 -  47.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>JIANG, L., G. TANG, X. LIU, X. SONG, et al. Parallel  contributing area calculation with granularity control on massive grid terrain  datasets. </a>Computers &amp; Geosciences,&nbsp; 2013,  60, 70-80.     </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>MART&Iacute;NEZ, Y. V. Modelo de Representaci&oacute;n de Superficies de  Terreno para su Visualizaci&oacute;n en Tres Dimensiones. Tesis doctoral Universidad  de las Ciencias Inform&aacute;ticas, 2011.    </a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>NIKOLAKOPOULOS, K. G., E. K. KAMARATAKIS AND N.  CHRYSOULAKIS SRTM vs ASTER elevation products. </a>Comparison for two regions in Crete, Greece.  International Journal of Remote Sensing,&nbsp;  2006, 27, 481&ndash;483. </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>QIN, C.-Z., L.-J. ZHAN, A.-X. ZHU AND C.-H. ZHOU A strategy  for raster-based geocomputation under different parallel computing platforms.  International Journal of Geographical Information Science,&nbsp; 2014a, 37-41.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>QIN, C. Z., L. J. ZHAN AND A. X. ZHU How to apply the  Geospatial Data Abstraction Library (GDAL) properly to parallel geospatial raster  I/O? Transactions in GIS,&nbsp; 2014b.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>RODR&Iacute;GUEZ, J. L. G. AND M. C. G. SU&Aacute;REZ Comparison of  mathematical algorithms for determining the slope angle in GIS enviroment.  Aqua-LAC,&nbsp; 2010, 2.    </a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>SEITAVUOPIO, P., J. RANTANEN AND J. YLIRUUSI Use of roughness  maps in visualisation of surfaces. European Journal of Pharmaceutics and  Biopharmaceutics,&nbsp; 2005, 59, 351-158s.    </a> </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">An&aacute;lisis de la  variabilidad del relieve a partir de modelos digitales del terreno. Rev. Sol. Geol,&nbsp; 1998, 11(1-2), 139-149. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>WAGNER, D. F. AND M. S. SCOTT. Improving the performance of  raster GIS: A comparison of approaches to parallelization of cost volume  algorithms. In <em>Computers, Autocarto  Conference.</em> 1995, p. 164&ndash;176.</a> </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>ZEVENBERGEN, L. W. AND C. R. THORNE Quantitative analysis of  land surface topography, earth surface processes and landforms. Proceedings of  IEEE,&nbsp; 1987, 12(1), 47- 56.    </a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>ZHAN, L.-J. AND C.-Z. QIN Parallel Geospatial Raster  Processing by Geospatial Data Abstraction Library (GDAL) &mdash; Applicability and  Defects. Transactions in GIS,&nbsp; 2012.</a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a>ZHOU, Q. AND X. LIU Error analysis on grid-based slope and  aspect algorithms. Photogrammetric Engineering &amp; Remote Sensing,&nbsp; 2004, 70(8), 957&ndash;962.</a></font></p>     <p align="left">     <p name="_ENREF_1">&nbsp;</p>     <p name="_ENREF_1">&nbsp;</p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Recibido: 25/03/2016    ]]></body>
<body><![CDATA[<br> Aceptado: 30/06/2016</font></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BARNES]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
<name>
<surname><![CDATA[LEHMAN]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[MULLA]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[Distributed Parallel D8 Up-Slope Area Calculation in Digital Elevation Models.]]></source>
<year>2011</year>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BERNHARD]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[An interactive approach to analytical relief shading.]]></article-title>
<source><![CDATA[]]></source>
<year>2001</year>
<volume>38</volume><volume>1</volume>
<page-range>67-75</page-range></nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[BIESEMANS]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[MEIRVENNE]]></surname>
<given-names><![CDATA[M. V]]></given-names>
</name>
<name>
<surname><![CDATA[GABRIELS]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Extending the rusle with the Monte Carlo error progagation technique to predict long-term average off-site sediment accumulation]]></article-title>
<source><![CDATA[]]></source>
<year>2000</year>
<volume>55</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>35-42</page-range></nlm-citation>
</ref>
<ref id="B4">
<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>
<name>
<surname><![CDATA[PAS]]></surname>
<given-names><![CDATA[R. V. D]]></given-names>
</name>
</person-group>
<source><![CDATA[Using OpenMP. Portable Shared Memory Parallel Programming]]></source>
<year>2008</year>
<publisher-loc><![CDATA[^eLondon London]]></publisher-loc>
<publisher-name><![CDATA[Massachusetts Institute of Technology]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[FLEMING]]></surname>
<given-names><![CDATA[M. D]]></given-names>
</name>
<name>
<surname><![CDATA[HOFFER]]></surname>
<given-names><![CDATA[R. M]]></given-names>
</name>
</person-group>
<source><![CDATA[Machine processing of Landsat mss data and lars]]></source>
<year>1979</year>
<publisher-loc><![CDATA[West Lafayette^eIndiana Indiana]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[FRAU]]></surname>
<given-names><![CDATA[C. M]]></given-names>
</name>
<name>
<surname><![CDATA[PINO]]></surname>
<given-names><![CDATA[L. M]]></given-names>
</name>
<name>
<surname><![CDATA[ROJAS]]></surname>
<given-names><![CDATA[Y. O]]></given-names>
</name>
<name>
<surname><![CDATA[HERNÁNDEZ]]></surname>
<given-names><![CDATA[Y. M.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Generalización de modelo digital de elevación condicionada por puntos críticos de terreno]]></article-title>
<source><![CDATA[]]></source>
<year>2011</year>
<volume>17</volume>
<numero>3</numero>
<issue>3</issue>
<page-range>439-457</page-range></nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[GUAN]]></surname>
<given-names><![CDATA[Q]]></given-names>
</name>
<name>
<surname><![CDATA[CLARKE]]></surname>
<given-names><![CDATA[K]]></given-names>
</name>
</person-group>
<source><![CDATA[A general-purpose parallel raster processing programming library test application using a geographic cellular automata model.]]></source>
<year>2010</year>
<volume>24</volume>
<page-range>695-722</page-range><publisher-name><![CDATA[International Journal of Geographical Information Science]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[HERLIHY]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[The Multicore Revolution]]></source>
<year>2007</year>
<publisher-name><![CDATA[S.B. HEIDELBERG]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[HORN]]></surname>
<given-names><![CDATA[B. K. P]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Hill shading and the reflectance map]]></article-title>
<source><![CDATA[]]></source>
<year>1981</year>
<volume>69</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>14 - 47</page-range></nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[JIANG]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[TANG]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
<name>
<surname><![CDATA[X]]></surname>
<given-names><![CDATA[LIU]]></given-names>
</name>
<name>
<surname><![CDATA[SONG]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
</person-group>
<source><![CDATA[Parallel contributing area calculation with granularity control on massive grid terrain datasets. Computers & Geosciences]]></source>
<year>2013</year>
<volume>60</volume>
<page-range>70-80</page-range></nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MARTÍNEZ]]></surname>
<given-names><![CDATA[Y. V]]></given-names>
</name>
</person-group>
<source><![CDATA[Modelo de Representación de Superficies de Terreno para su Visualización en Tres Dimensiones]]></source>
<year>2011</year>
<publisher-name><![CDATA[Universidad de las Ciencias Informáticas]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[NIKOLAKOPOULOS]]></surname>
<given-names><![CDATA[K. G]]></given-names>
</name>
<name>
<surname><![CDATA[KAMARATAKIS]]></surname>
<given-names><![CDATA[E. K]]></given-names>
</name>
<name>
<surname><![CDATA[CHRYSOULAKIS]]></surname>
<given-names><![CDATA[N]]></given-names>
</name>
</person-group>
<source><![CDATA[SRTM vs ASTER elevation products. Comparison for two regions in Crete]]></source>
<year>2006</year>
<volume>27</volume>
<page-range>481-483</page-range><publisher-name><![CDATA[International Journal of Remote Sensing]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B13">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[QIN]]></surname>
<given-names><![CDATA[C.-Z]]></given-names>
</name>
<name>
<surname><![CDATA[ZHAN]]></surname>
<given-names><![CDATA[L.-J]]></given-names>
</name>
<name>
<surname><![CDATA[ZHU]]></surname>
<given-names><![CDATA[A.-X.]]></given-names>
</name>
<name>
<surname><![CDATA[ZHOU]]></surname>
<given-names><![CDATA[C.-H.]]></given-names>
</name>
</person-group>
<source><![CDATA[A strategy for raster-based geocomputation under different parallel computing platforms]]></source>
<year>2014</year>
<month>a</month>
<page-range>37-41</page-range><publisher-name><![CDATA[International Journal of Geographical Information Science]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B14">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[QIN]]></surname>
<given-names><![CDATA[C. Z]]></given-names>
</name>
<name>
<surname><![CDATA[ZHAN]]></surname>
<given-names><![CDATA[L. J.]]></given-names>
</name>
<name>
<surname><![CDATA[ZHU]]></surname>
<given-names><![CDATA[A. X]]></given-names>
</name>
</person-group>
<source><![CDATA[How to apply the Geospatial Data Abstraction Library (GDAL) properly to parallel geospatial raster I/O?]]></source>
<year>2014</year>
<month>b</month>
</nlm-citation>
</ref>
<ref id="B15">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[RODRÍGUEZ]]></surname>
<given-names><![CDATA[J. L. G]]></given-names>
</name>
<name>
<surname><![CDATA[SUÁREZ]]></surname>
<given-names><![CDATA[M. C. G]]></given-names>
</name>
</person-group>
<source><![CDATA[Comparison of mathematical algorithms for determining the slope angle in GIS enviroment.]]></source>
<year>2010</year>
</nlm-citation>
</ref>
<ref id="B16">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SEITAVUOPIO]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
<name>
<surname><![CDATA[RANTANEN]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[YLIRUUSI]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Use of roughness maps in visualisation of surfaces.]]></source>
<year>2005</year>
<volume>59</volume>
<page-range>351-158s</page-range><publisher-name><![CDATA[European Journal of Pharmaceutics and Biopharmaceutics]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B17">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[SERRANO]]></surname>
<given-names><![CDATA[F. S.]]></given-names>
</name>
<name>
<surname><![CDATA[LÓPEZ]]></surname>
<given-names><![CDATA[R. T]]></given-names>
</name>
<name>
<surname><![CDATA[VIÑA]]></surname>
<given-names><![CDATA[. F. B. D. L]]></given-names>
</name>
<name>
<surname><![CDATA[SONG]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Análisis de la variabilidad del relieve a partir de modelos digitales del terreno.]]></article-title>
<source><![CDATA[]]></source>
<year>1998</year>
<volume>11</volume>
<numero>1-2</numero>
<issue>1-2</issue>
<page-range>139-149</page-range></nlm-citation>
</ref>
<ref id="B18">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[WAGNER]]></surname>
<given-names><![CDATA[D. F]]></given-names>
</name>
<name>
<surname><![CDATA[M. S.]]></surname>
<given-names><![CDATA[SCOTT]]></given-names>
</name>
</person-group>
<source><![CDATA[Improving the performance of raster GIS: A comparison of approaches to parallelization of cost volume algorithms]]></source>
<year>1995</year>
<page-range>164-176</page-range></nlm-citation>
</ref>
<ref id="B19">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ZEVENBERGEN]]></surname>
<given-names><![CDATA[L. W]]></given-names>
</name>
<name>
<surname><![CDATA[C. R]]></surname>
<given-names><![CDATA[THORNE]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Quantitative analysis of land surface topography, earth surface processes and landforms]]></article-title>
<source><![CDATA[]]></source>
<year>1987</year>
<volume>12</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>47- 56</page-range></nlm-citation>
</ref>
<ref id="B20">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ZHAN]]></surname>
<given-names><![CDATA[L.-J]]></given-names>
</name>
<name>
<surname><![CDATA[QIN]]></surname>
<given-names><![CDATA[C.-Z]]></given-names>
</name>
</person-group>
<source><![CDATA[Parallel Geospatial Raster Processing by Geospatial Data Abstraction Library (GDAL)]]></source>
<year>2012</year>
</nlm-citation>
</ref>
<ref id="B21">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ZHOU]]></surname>
<given-names><![CDATA[Q]]></given-names>
</name>
<name>
<surname><![CDATA[LIU]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Error analysis on grid-based slope and aspect algorithms.]]></article-title>
<source><![CDATA[]]></source>
<year>2004</year>
<volume>70</volume>
<numero>8</numero>
<issue>8</issue>
<page-range>957-962</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
