Sabemos
que en la industria del cómputo existe una carrera por ver quién
puede encontrar un mejor algoritmo, o “una mejor manera”, lo cual
como ya hemos destacado anteriormente, no es una tarea nada sencilla,
pues no solo implica imaginación, sino ingenio e inventiva, todo
respondiendo a las necesidades que van surgiendo a lo largo del un
exhaustivo ejercicio de prueba y error que ejercemos a lo largo de
(probablemente) toda nuestra vida.
El
caso de corporaciones gigantes que invierten grandes cantidades de
presupuesto y recurso humano en la mejora sus servicios o productos,
es prácticamente el ejemplo más contundente (y único) que hay.
Google es una empresa que tuvo la necesidad de crecer a lo largo de
décadas de inmenso trabajo e inventiva, buscando cumplir una
cantidad tremenda de solicitudes a través de internet, todo haciendo
el ejercicio que mencionamos anteriormente. Durante parte
de
este proceso desarrollaron el algoritmo de MapReduce, que permite
dividir una iteración sobre una lista, lo cual no suena como mucho
en este ejemplo aislado, así que me tomaré la libertad de brindar
mayor contexto. Internet, la nube y muchos recursos en linea, se
pueden definir de la manera más burda como “la computadora de
alguien más pero interconectada” en este conjunto de computadoras
interconectadas podemos encontrar información muy bien definida en
texto. Sabemos que google es una compañía que ganó su reputación
gracias a su motor de búsqueda, así que la
aplicación en contexto de este algoritmo es prácticamente la
optimización de las búsquedas en cantidades gigantescas de
documentos a través de la red.
Evidentemente,
dado el giro y enfoque de este blog, nos encontramos con algunas de
las problemáticas que pueden haber surgido respecto a la
paralelización de este algoritmo de manera que la comunicación
entre cada hilo esté informada del proceso de búsqueda en otros
threads de manera segura, una
de las formas en las que se logró
resolver
este
tipo de problemáticas fue
que los “trabajadores” contengan
una copia de los datos e
iteren
sobre su parte, así
mismo
un Máster
que se
encargue
de dividir y asignar las tareas a los trabajadores.
Sin
duda ingenio en su máximo esplendor.
Comentarios
Publicar un comentario