Buscar
Social
Ofertas laborales ES
lunes
oct052009

Java y las GPUs

Las GPUs (graphics processing units) son microchips de propósito específico orientados al procesamiento de gráficos. A pesar de su relativamente más baja frecuencia respecto a una CPU, estos microchips se encuentran optimizados para realizar operaciones de coma flotante y son masivamente paralelos (algunas llegan a tener hasta del orden de 1000 núcleos).


Además de para ejecutar los juegos más modernos de ordenador, estos dispositivos (especialmente los de más alta gama) a menudo son empleados en aplicaciones científicas. Para problemas fácilmente paraleizables y donde el principal cuello de botella sean las operaciones en coma flotante, comprando una GPU de 2000-4000 $ uno puede convertir un simple PC en una máquina con una potencia de cálculo equivalente al de un cluster formado por varias docenas (para ciertas aplicaciones incluso quizás un par de cientos) de PCs de última generación.


Habitualmente, las GPU se programan en OpenCL, un estándar que no requiere del pago de ningún tipo de tasas a quien lo implemente y que es completamente cross-plataforma. Snow Leopard ha sido el primer sistema operativo en proporcionar soporte para OpenCL, aunque es de esperar que pronto todos los sistemas operativos lo traigan. El lenguaje de programación de OpenCL podría describirse como "un dialecto de C".


¿Y qué tiene que ver todo esto con Java?. Pues que cada vez más, las GPUs son una fuente de poder de computación barata, compacta y de bajo consumo en comparación con un cluster equivalente. No sólo sería interesante poder explotar desde Java estos dispositivos, con el consecuente beneficio que podría traer (especialmente para aplicaciones científicas y de procesado de imágenes). Sino que sería interesante tener una máquina virtual Java que pudiese ejecutarse en una GPU. ¿Os imagináis el disponer soporte hardware para 1000 threads?


A día de hoy, no hay ninguna solución probada para explotar las GPUs desde Java de un modo sencillo (por supuesto, siempre está JNI). A mí sólo me consta un proyecto (es opensource) que está explorando este camino: OpenCL4Java. Este proyecto proporciona bindings OpenCL para Java y Scala. Por lo de ahora, su autor sólo lo aprobado en Snow Leopard y el proyecto todavía se encuentra en versión beta. Aquí tenéis una pequeña introducción al proyecto.


¿Creéis que las GPU serán relevantes en el mundo Java o son un camino que no merece la pena explorar? ¿Constituye la falta de soporte para programar GPUs un punto débil de Java? ¿Alguno de vosotros a programado alguna GPU desde Java o desde cualquier otro lenguaje?

lunes
oct052009

JavaHispano Podcast - 058 - Apache Abdera (Entrevista a David Calavera)

Publicado un nuevo número del podcast de javaHispano. En esta ocasión tenemos un invitado de honor. Su nombre es David Calavera y es commiter del proyecto Apache Abdera, Hudson y del plugin de Groovy en Netbeans.

La entrevista la divideros en dos partes. En la primera parte realizaremos una introducción del proyecto Apache Abdera comentado su finalidad y modo de uso. También hablaremos de la diferencia entre IRI y URI y de diferentes opciones que dispone esta herramienta como las extensiones para exportar a otros formatos. En la segunda parte David nos dará su opinión de la fundación Apache y nos explicará como se llega a ser commiter en un proyecto libre.

Links de interes:

viernes
oct022009

Swing Application Framework no será parte del JDK 7

A principios de este año ya hubo bastante controversia acerca del Swing Application Framework, y sobre si este proyecto estaba siendo una víctima de JavaFX. Lo de víctima se interpreta en el sentido de que Sun estaba enfocando todos sus recursos hacia JavaFX, dejando a swing en un estado de hibernación.


Ahora ya está claro que Swing Application Framework no formará parte del JDK 7. Incluso han surgido dos fork diferentes basados en el código del proyecto original (Beter Swing Application Framework y Swing application framework fork) cuya intención es crear un "Swing Application Framework" al margen del JDK 7 y sin la intervención de Sun, intervención que según varios de los participantes en la especificación original estaba siendo más un lastre que una ayuda.


Algunas partes del Swing Application Framework ya habían sido incluidas en alguna Milestone del JDK 7, pero ahora serán eliminadas. No queda claro si Sun también tiene intención de retirar el soporte que Netbeans proporciona desde hace tiempo para este framework. 

 

¿Vais a echar de menos  Swing Application Framework en el JDK 7 o creeis que con JavaFX "es suficiente"?

jueves
oct012009

Hibernate + Spring Interceptors

Es posible trabajar con Hibernate Interceptor pero de forma integrada con Spring   de esta forma vamos a poder definir nuestros interceptores de session de Hibernate en los archivos de configuración de spring. Tambien esta funcionalidad nos permite manejar Eventos de Hibernate

 

http://wiki.gpi.com.ar/confluence/display/PUBLIC/Spring+Hibernate+Interceptor

jueves
oct012009

Una entrada para Devoxx con tu opinión del nuevo javaHispano

javaHispano tiene el placer de invitarte a Devoxx (antigua JavaPolis), que tendrá lugar en Amberes, Bélgica entre el 16 y el 20 de Noviembre del 2009. Una oportunidad excepcional para compartir unos días con las "rock starts" y poder ver de primera mano el estado del arte del mundo Java.

La participación es muy fácil! Sólo tienes que escribir un comentario en esta misma notícia, comentando las funcionalidades que quereis ver en la próxima versión de javaHispano. Entre todos los participantes, vamos a sortear la entrada el día 9 de Octubre del 2009. 

El ganador va a recibir una entrada para la conferéncia para los días del 18 al 20 de Noviembre (precio real de la entrada 350€). Aseguraros que teneis el email en vuestro perfil, ya que será la forma de contacto. Solamente requerimos que las personas que pidan la entrada, asistan al evento, ya que sólo disponemos de una para toda la comunidad. 

 Suerte! 

...y si no puedes ir a Devoxx, danos tus sugeréncias igualmente! La comunidad somos todos, así que expresa tu opinión!