Los modernos microprocesadores multi-core con 2,3,4,6,8 y hasta 12 núcleos por procesador son ya el presente de la tecnología de fabricantes como AMD e Intel: ambos nos proponen micros muy potentes a la hora de procesar tareas paralelas, pero la mayoría de las aplicaciones lamentablemente no pueden sacar provecho de esa ingente cantidad de potencia de proceso.
De hecho, la mayoría de las aplicaciones no pueden ser paralelizadas fácilmente, y este es uno de los principales problemas a solucionar por parte de los desarrolladores de software actuales, que siguen pensando en procesadores monocore -o dual-core, como mucho- y que hacen que desaprovechemos gran parte de los recursos de nuestras máquinas.
Sin embargo en GNU/Linux existe una utilidad especialmente diseñada para sacar provecho de una red de máquinas conectadas, tanto localmente como a través de cualquier tecnología de red.
Se trata de GNU Parallel, una herramienta de la interfaz de comandos que nos permite “ejecutar trabajos en paralelo de forma local o usando ordenadores remotos. Un trabajo típico es un comando simple o un pequeño script que tiene que ser ejecutado“.
En el vídeo que os mostramos a continuación se pueden comprobar las ventajas de esta herramienta, que puede ser utilizada para tareas muy simples -como la rápida descompresión de ficheros- pero también para tareas más intensivas en el uso del procesador como el procesamiento de imágenes, vídeos, o la compilación (uno de los apartados más interesantes) de todo tipo de código aprovechando el número de procesadores disponibles.
You need to a flashplayer enabled browser to view this YouTube video
En la página oficial de GNU Parallel encontraréis toda la información y la sintaxis de uso de una aplicación que demuestra una vez más la versatilidad de Linux y el Open Source, que se pueden adaptar de forma notable a cualquier escenario.