miércoles, marzo 26, 2008

Ejecución paralela en Java 7



Para Java 7, que está previsto que venga en el 2009


Comentarios...

Ya no son sólo los de la programación declarativa, especialmente Erlang los que dicen que hay que prestar atención a la ejecución paralela

Dan los mismos argumentos. La ley de Moore ha cambiado. Ahora los procesadores no son más rápidos, ahora incluyen más núcleos

Hablan de dividir los problemas recursivamente

De forma que los problemas más pequeños se puedan ejecutar en paralelo FORK

Y posteriormente combinar los resultados JOIN

Esta técnica la llaman FORK/JOIN

Para evitar la carga de la creación, destrucción y conmutación de threads, utilizan una piscina de threads donde distribuyen los trabajos.

El número de threads disponibles se ajustará al número de núcleos (más o menos)

Opinión subjetiva sin tener suficientes datos...

La idea parece chula y sencilla de utilizar, pero no confío que sea sencillo

Yo creo que este sistema, permitirá que algunos problemas se resuelvan de forma fácil y elegante.

Pero la mayoría de problemas, no serán triviales.

Es una mejora importante, quizá imprescindible, pero creo que utilizarla será un poco compleja y dificultará el diseño

Comprando con otros...

Erlang, está pensado desde el inicio para tabajar no sólo de forma concurrente, también de forma distribuida.

En erlang es natural tener muchos procesos (baratos) y además es muy fácil distribuir el programa. No es necesario pensar de otra forma


Scala

Probablemente Scala pueda aprovecharse mucho mejor de esta técnica que Java.

Si en Scala reduces la programación imperativa al mínimo y utilizas el modelo de actores (coordinación del paralelismo con paso de mensajes), el punto de partida es mucho mejor


Haskell

Como lenguaje declarativo, parte con una ventaja clara respecto a Java


pos eso

No hay comentarios: