Parallel Computing on Any Desktop

Parallel Computing on Any Desktop

¿Se han puesto a pensar todo el proceso que toma en desarrollar y adaptar una nueva tecnología? Desde los años 90s existían formas de dividir un trabajo o tarea para que este fuera procesado simultáneamente sin embargo este tipo de procesadores no estaba al alcance de cualquier persona. Un ejemplo de esto son los Beowulf clusters, el cual es un cluster de computadoras conectadas entre sí por medio de una red local, esto permitía que las computadoras pudieran compartir el procesamiento de una tarea entre ellas. 


Desafortunadamente, en ese tiempo ese tipo de tecnología no estaba al alcance de cualquiera y solo las instituciones con recursos económicos podían implementar estas tecnologías.   
Actualmente las computadoras de escritorio y laptops cuentan con procesadores con más de un núcleo, lo cual permite realizar procesamientos en paralelo. Desde el 2003, los procesadores de las computadoras cuentan con mínimo dos núcleos de procesamiento por lo que se necesita de un cambio de paradigma para aprovechar el procesador. En la lectura titulada Parallel Computing on Any Desktop, escrito por Ami Marowka, se menciona que para poder aprovechar todo el poder en el procesamiento que nos brinda tener varios núcleos es por medio de la generación de programas que corran en paralelo. En otras palabras, se tienen que generar programas que puedan romperse en tareas más pequeñas para que cada tarea pueda ser ejecutado por un procesador mientras el otro está realizando otra tarea simultáneamente.

No obstante, a pesar de que la integración de procesadores de más de un núcleo se dio hace poco tiempo, la generación de programas en paralelo no es tan común de ver. Probablemente una de las razones por lo que no se ha adaptado este tipo de programación es por la complejidad extra que se tiene. Para implementar un algoritmo de forma secuencial solo se necesita pensar en la lógica de solución del problema mientras que para implementar un algoritmo paralelo, y que se pueda correr de forma exitosa en múltiples hilos de ejecución, es necesario pensar en la memoria que los procesos pueden compartir y formas de regular la entrada a la memoria compartida por estos procesos para que la información no se corrompa.

Lectura:

[1] Marowka, A. (2007) Parallel Computing on Any Desktop.

Comments