sábado, 29 de agosto de 2015

El paralelismo y su discreción en nuestra vida


A pesar de que el artículo es un tanto viejo, tiene una buena redacción acerca de la tendencia que tuvo el paralelismo computacional. Y no se equivocaba el autor al respecto. El paralelismo hoy en día es importante para el desarrollo de infinidad de aplicaciones de software.
Los usuarios no se percatan de ellos, pero el paralelismo está vigente en muchos de los servicios web que utilizamos, como youtube, facebook, outlook, entre muchos otros. Otro ejemplo de paralelismo importante es la industria del videojuego. ¿Cómo es posible que puedas jugar Halo con tantos bots, escuchar la música de ambientación, e incluso jugar contra jugadores humanos? La respuesta es sencilla: paralelismo.
Como menciona el autor, parte fundamental del paralelismo actual se debe a la fabricación de procesadores de multinúcleo, ya que sin ellos, la gente no tendría acceso a muchas de las aplicaciones mencionadas, y tendría que estarse capacitando para poder utilizar los clusters, cuyo acceso sólo lo tienen (y lo seguirán teniendo) las grandes empresas y los gobiernos más fuertes, económicamente hablando.
Es bien cierto que mucha gente se basa en algunas cosas para decir “yo compro esta máquina”. Y una de ellas es el procesador que tienen. No saben qué significa que tengan 4 núcleos a ciencia cierta, pero eso les indica que la computadora es capaz de realizar más tareas en un periodo de tiempo. Sin embargo, de nada sirve tener una computadora super buena, con 16 núcleos, si las aplicaciones no soportan esta arquitectura, y si no son diseñadas adecuadamente para ella.
Por esto, como programadores, sin importar tendencia, objetivo, preferencia en cuanto a lenguaje, ambiente de programación, entre otros; debemos siempre tener en cuenta que ya es posible realizar paralelismo, y que esto nos dará la ventaja sobre los programadores que están aferrados a seguir programando de manera secuencial para un solo núcleo. El paralelismo le dará un grado más de escalabilidad a nuestro trabajo, y con algo de suerte, nuestros clientes no nos estarán pidiendo que volvamos a desarrollar el mismo programa (que nos costó 3 años de arduo trabajo) para una computadora con mayor capacidad, simplemente porque el hardware ya no es compatible con el software.
Y, a decir verdad, no es necesario que estemos casados con una tecnología de paralelismo. Podemos seguir solteros o ser polígames, y probar con muchas y diferentes tecnologías, como MPI para C, OpenMP, Pthreads, Java threads, Kuda, entre muchas otras opciones, que siempre tendrán ventajas respecto al enfoque que les demos, y que nunca está por demás ir a la vanguardia, sin la necesidad de tirar a la basura lo que hemos programado hace unos años.

No hay comentarios.:

Publicar un comentario