Procesamiento de grandes volúmenes de datos con los modelos de programación MapReduce y DLML - Pérez Suárez, Luis Alberto (Universidad Autónoma Metropolitana, 2013)
El procesamiento de grandes cantidades de datos otorga diversos beneficios, desde apoyar a la mercadotecnia para el diseño y la creación de nuevos productos, al campo financiero para la toma de decisiones e inversiones, así como al campo científico para el análisis de distintos fenómenos, entre otros. Para esto, existen diversos ambientes que permiten realizar el procesamiento de datos, entre ellos se encuentran los modelos de programación MapReduce y DLML (Data List Management Library). MapReduce se ha convertido en un modelo de programación muy popular entre la comunidad científica, debido a que permite procesar grandes volúmenes de datos con computadoras de uso común, además de ser tolerante a fallos. Por otro lado, DLML ha ganado interés debido al procesamiento que ofrece para diferentes tipos de aplicaciones, a la facilidad de su modelo de programación y a las distintas versiones que tiene para correr en diferentes arquitecturas (desde GPU’s hasta Grids). Desafortunadamente, estas versiones se encuentran limitadas por el tamaño de las aplicaciones a procesar, las cuales no pueden rebasar la capacidad de la memoria RAM del sistema. En esta tesis proponemos una extensión a DLML, a la cual llamamos DLML-IO. Esta extensión permite procesar grandes cantidades de datos que superan la cantidad total de memoria RAM con la que se cuenta, ya que emplea el manejo de archivos para esta tarea. Para evaluar esta extensión se hace una comparación entre el ambiente MapReduce y DLMLIO. En los experimentos realizados se utilizaron 4 aplicaciones, una donde MapReduce es popular por los resultados que obtiene, otra donde DLML presenta buenos resultados, y dos más, las cuales ya han sido implementadas anteriormente con MapReduce y DLML. Los resultados experimentales muestran que con DLML-IO se consigue procesar cantidades de datos, de al menos el doble de la memoria RAM de la infraestructura con la que se cuenta, además de obtener mejores tiempos de ejecución que los de MapReduce en las 4 aplicaciones utilizadas.