Ya he hablado en alguna ocasión de la programación paralela, un campo complejo que sin embargo debe comenzar a explotarse en serio si los desarrolladores quieren poder aprovechar la potencia y arquitectura de los procesadores multicore.
Pues bien, vía Digg me encuentro con este artículo en el que un programador explica con bastante claridad (bueno, algo de idea hay que tener) cuáles son los retos y objetivos que se deben cumplir en este caso.
Para empezar, existe una diferencia clara en la forma en la que uno puede descomponer un problema: o bien lo basa en paralelismo de tareas, o bien en paralelismo de datos, y a partir de ahí surgen los problemas de comunicación y las posibles soluciones (memoria compartida, paso de mensajes).
El artículo termina hablando de lenguajes paralelos, pero curiosamente el lenguaje más utilizado para estas tareas es C, que se complementa con una biblioteca de funciones de comunicación paralela para poder resolver esa parte del problema. Sin embargo, parece que no es el lenguaje ideal. Me ha sorprendido ver a una evolución del Fortran llamada HPF (High Performance Fortran) como uno de los protagonistas de este terreno, pero al final da lo mismo: las herramientas están ahí, y simplemente hace falta que los desarrolladores comiencen a usarla.
O eso, o seguiremos como estamos. Mucha máquina octo-core para que luego se comporte como una dual-core normal y corriente.