martes, 25 de marzo de 2014

“MapReduce: Simplified Data Processing on Large Clusters”

El artículo titulado MapReduce: Simplified Data Processing on Large Clusters y escrito por Jeffrey Dean y Sanjay Ghemawat, publicado en el Comunications of the ACM en enero del 2008 me pareció bastante interesante, nos da una visión acerca de la gran complejidad que puede traer el hecho de procesar datos tan inmensos, pero lo más interesante es que a pesar de la gran complejidad que implica este tipo de tareas, pueden ser resueltas por herramientas tan sencillas como lo son el map y el reduce al momento de ser adaptados con la tecnología primitiva de Lisp, el MapReduce.

MapReduce en su concepto básico nos ayuda para poder paralelizar operaciones de procesos, por lo que al utilizar MapReduce en un esquema en el que existe una gran cantidad de datos nos ayuda muchísimo al rendimiento de los procesos que se estén ejecutando.

Una parte que me gustó mucho sobre el artículo es que mencionan que Google lo utilizó realmente por ser una técnica muy fácil, incluso para programadores que tengan muy poca o incluso nada de experiencia utilizando sistemas paralelos y distribuidos, por otra parte también dicen que Google lo utilizo porque una gran cantidad de problemas puede ser resuelto utilizando la técnica de MapReduce.

La técnica de MapReduce también es muy conocida en el mundo de la inteligencia artificial, en temas como lo son sistemas expertos y machine learning. El artículo también menciona varios procesos o tareas que pueden ser realizadas por los programadores para que la técnica de MapReduce se vuelva mucho más potente tales como, mantener en orden los datos a ser procesados, evadir datos erróneos, incrementar el número de los datos de entrada y los datos de salida, entre otras más técnicas que pueden ayudar al desempeño de la técnica MapReduce.

El artículo realmente nos da a entender en su totalidad que utilizar la técnica de MapReduce nos ayuda muchísimo a procesar gran cantidad de datos, pues el esquema es a prueba de fallas, también nos menciona que dicha técnica nos puede dar gran poder como programadores al permitir una paralelización mucho más fluida y sencilla.

viernes, 7 de marzo de 2014

Teaching Concurrency with Erlang

En el arículo titulado Teaching Concurrency with Erlang, escrito por Ariel Ortiz y publicado en las memorias del 42° SIGCSE Technical Symposium on Computer Science Education en marzo del 2011, nos da un panoramasobre lo complicado que puede llegar a ser enseñar  programación concurrente utilizando el modelo COP (concurrency oriented programming).

¿Qué es la programación concurrente?
La programación concurrente es/son programa(s) que tiene más de una línea lógica de ejecución, en pocas palabras, se ejecutan al mismo tiempo con la ayuda del hardware para brindar un mayor rendimiento al usuario.


El profesor ariel tiene mucha razón al decir que es complejo y retador enseñar la metodología COP a estudiantes como nosotros pues, tenemos la vieja escuela de la programación secuencial desde que iniciamos nuestra carrera como futuros ingenieros en sistemas, además que es importante conocer todos los factores que implican conocer lo que es la programación concurrente, el profesor menciona ciertos conceptos muy importantes sobre lo complicado que es llegar a enseñar y que los alumnos los entiendan, entre ellos están conceptos como carreras de condición, deadlocks, starvation entre otros.

Es interesante como Erlang es un lenguaje de programación enfocado en la programación concurrente, siendo uno de los mejores lenguajes para crear múltiples hilos, pues Erlang trabaja muy de cerca con la comunicación y los hilos, permitiendo generar programas que puedan soportar multiples hilos.

El escrito refleja mucho la ideología del profesor que es utilizar licencias libres para la enseñanza y creo que tiene mucha razón al decir al final del escrito que el siente que sus alumnos disfrutan su clase, valorando las grandes ventajas o beneficios que nos puede brindar Erlang.

En un punto de vista como profesor, el hecho de saber que tus alumnos están disfrutando de tu materia y están aprendiendo cosas útiles en tu materia, es bastante motivador no solo para los alumnos sino para los profesores también.