LoginRSS 2.0 Feed

lunes, 31 de agosto de 2009

Leía el otro día una noticia sobre la importancia extrema de un nuevo resultado de investigación en forma de aplicación: el reconocimiento de caras. Hasta el momento, todas las investigaciones trataban de medir proporciones en las caras para entrenar un clasificador y poder reconocer una cara humana en una base de datos conocida. Métricas y métricas, clasificadores y clasificadores, años de investigación que podrían quedar casi en el olvido una vez se imponga el enfoque adoptado por el Dr. Yi Ma de la Universidad de Illinois at Urbana-Champaign (UIUC).



El equipo investigador aplica modernas técnicas de representación dispersa (sparse representation) y teorías de muestreado comprimido (compressed sensing) para trabajar con la imagen completa de la cara y no solo a partir de la extracción de ciertas características biométricas. La capacidad de su sistema de reconocimiento de caras es totalmente sorprendente para la comunidad científica y es que, bajo un enfoque totalmente diferente al que se venía utilizando, la precisión del reconocedor es muy superior a los de anteriores trabajos, incluso ocultando características esenciales como nariz u ojos, y capaz de superar al cerebro humano (según palabras del propio Dr. Ma).

El interés de este trabajo no se ha hecho esperar y el equipo investigador ya tiene varias empresas interesadas en licenciar su investigación. Aplicaciones del reconocedor de caras no se van a hacer esperar y desde el etiquetado automático de caras en imágenes, hasta identificación facial automática con propósitos de videovigilancia y seguridad, pueden estar a las puertas de la realidad cotidiana. El sistema puede trabajar en tiempo real para un conjunto de unos 1000 individuos pero el equipo investigador ya está colaborando con otros equipos de la UIUC para acelerar sus soluciones a través de un enfoque paralelo así como mediante implementaciones sobre hardware gráfico. La intención de esta aceleración es que el sistema pueda escalar varios órdenes de magnitud, y llegar a procesar en tiempo real hasta millones de sujetos.

El procesamiento de imágenes en cualquiera de sus modalidades (imagen médica, imagen satélite, imagen de diversos espectros, etc.) se puede beneficiar del paralelismo que ofrecen las nuevas arquitecturas de consumo. Las imágenes poseen multitud de datos (píxeles) cuyo procesamiento suele ser independiente, o dependiente en pequeñas vecindades locales, de modo que diversos procesadores o núcleos de procesamiento se pueden encargar de trabajar con particiones del espacio de datos de forma simultánea, acelerando así el proceso global. El reconocedor de caras del Dr. Yi Ma trabaja con la imagen completa, por lo que es más clara su posible adaptación a un entorno paralelo y por tanto una buena escalabilidad.


Enlaces de interés:
Artículo de divulgativo: http://www.wired.com/science/discoveries/news/2008/03/new_face_recognition
Web del proyecto: http://perception.csl.illinois.edu/recognition/Home.html
Artículo científico (PAMI): http://perception.csl.illinois.edu/recognition/Files/PAMI_Occlusion

8:07 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (0)

jueves, 27 de agosto de 2009



Rapidmind, la empresa creada hace 5 años por el profesor Michael McCool de la Universidad de Waterloo, fue adquirida por Intel hace una semana. Rapidmind se creó con la vista puesta en la comercialización del sistema de programación Sh que conseguía adaptar y optimizar algoritmos a diferentes plataformas de consumo y altas prestaciones que surgieron a partir de los aceleradores (procesadores gráficos y variados multiprocesadores). Rapidmind creció rápidamente gracias al desarrollo de las arquitecturas multicore para ordenadores personales, que compartían la misma filosofía que los aceleradores citados, así como a la euforia de algunos desarrolladores y empresas por poder adaptar sus algoritmos a variadas arquitecturas sin la necesidad de recodificar en diferentes entornos. Un mismo código, con ayuda de las librerías de Rapidmind, podía ser ejecutado en un procesador basado en múltiples núcleos, en un procesador IBM Cell o en una tarjeta gráfica, sin necesidad de conocer detalles íntimos de estas diferentes plataformas. Como dato histórico, Google adquirió en 2007 Peakstream Inc., otra empresa con objetivos parecidos a los de Rapidmind.

Intel da un paso adelante para unir la tecnología de Rapidmind a la que ya Intel tenía en desarrollo con su Intel Ct technology. Este avance se traduce en las inquietudes que Intel demuestra con la visión de un futuro donde el desarrollo de la concurrencia se hace evidente, y donde la simplificación de la programación concurrente es la clave del desarrollo software para sus procesadores de manera eficiente. La programación concurrente (varios procesadores o núcleos de procesamiento trabajando de forma paralela sobre un único conjunto de datos) es compleja. No es nada nuevo, al igual que la programación orientada a objetos no fue nueva en los años 90, pero fue totalmente asumida por la comunidad de desarrolladores generando una revolución. La programación concurrente y el paralelismo han sido campos de aplicación estudiados desde diferentes perspectivas, pero tradicionalmente desde su componente hardware. En estos momentos, cuando el hardware disponible para el segmento de consumo es necesariamente paralelo para su supervivencia (ver post: Paralelismo de Consumo, ¿futuro de la computación?), se hace evidente que la comunidad de desarrolladores deba adoptar este modelo de programación, y es cuando las empresas fabricantes se esfuerzan por ofrecer herramientas que simplifiquen la programación en sus arquitecturas.

Otra gran apuesta, en este caso de estandarización, por ofrecer un único entorno para la programación sobre sistemas heterogéneos (aceleradores, multicores, móviles, sistemas embebidos,...) es OpenCL. Algunos fabricantes, como Nvidia y AMD-ATI, ya están empezando a ofrecer librerías de desarrollo para sus respectivas plataformas. No se debe olvidar que Nvidia lleva ofreciendo su entorno hardware/software CUDA desde el año 2007, y actualmente se ofrece gratuitamente la versión 2.3 de la SDK para la mayor parte de sistemas operativos de consumo.

8:34 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (0)

viernes, 17 de julio de 2009

Desde que hace aproximadamente un año la multinacional Nvidia anunciara su entrada en el mercado de los dispositivos móviles con el procesador Nvidia Tegra poco se ha sabido de la revolucionaria propuesta. Fuimos testigos en la conferencia Nvision en agosto de 2008 de cómo un dispositivo móvil conseguiría soportar la reproducción de vídeo de alta definición durante 10 horas ininterrumpidas sin recargar. Allí mismo se demostró cómo desde el aparato se podía enviar la señal de vídeo de 720p HD a través de una salida HDMI a un proyector digital para el disfrute de las 100 o 200 personas que se dieron cita. El dispositivo competiría en un mercado relativamente vacío entre el iPod de Apple por su interfaz y acceso al contenido y la Blackberry de RIM por su conectividad, integración y productividad.



Hace muy poco se anunciaba que la tecnología Tegra también entraría en el segmento de los netbooks, haciendo el primer dispositivo de acceso a Internet (mobile internet device, MID) con soporte HD de 1080p, reproducción de música durante 25 días seguidos con una recarga del dispositivo o la posibilidad de jugar a videojuegos a 46 frames por segundo. La experiencia de acceso al contenido en internet estará respaldada por un acuerdo reciente entre Nvidia y Adobe para acelerar en sus procesadores gráficos contenido Flash (que por ejemplo poseen 80 de los websites top 100 en importancia). La filosofía de Nvidia es el dotar de una máxima experiencia visual a los usuarios de este tipo de miniordenadores.

El procesador Nvidia Tegra es realmente una arquitectura multiprocesador heterogénea compuesta por una unidad de procesamiento central (CPU), un novedoso procesador de vídeo HD y un procesador gráfico de ultra-bajo consumo. Lo que hace realmente potente de los dispositivos que integren esta tecnología será la capacidad de administración del consumo energético. Esta eficiencia se obtiene principalmente por la  demostrada facilidad de los procesadores especializados en el cómputo paralelo de conseguir altas prestaciones de cómputo y bajos consumos energéticos. Esta filosofía de diseño se viene utilizando en los procesadores gráficos desde hace ya muchos años y en el segmento de las CPUs a partir de los sistemas multi-cores desde 2005-06, momento en el que el cómputo paralelo se hace una necesidad y por el que en este blog se le ha dedicado especial atención. Los dispositivos Tegra tienen prevista su salida al mercado a partir de la segunda mitad de 2009, es decir, en breve.



Enlaces de interés:
Presentación Tegra en Nvision 2008 (.pdf)
Productos Nvidia Tegra
GPU Acceleration for Flash Player
Nvidia Tegra-based devices revolutionize the MID market

12:40 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (1)

miércoles, 13 de mayo de 2009

El gigante Intel ha puesto a disposición de la comunidad una serie de interesantes artículos divulgativos sobre las arquitecturas de consumo que actualmente ofrece. En particular, queríamos destacar uno que explica diferencias entre las arquitecturas multi-core, multiprocesador y tecnologías Hyperthreading, y que pueden ofrecer un punto de vista para encarar el futuro de la computación. Es un hecho que la comunidad de desarrolladores de aplicaciones debe ser consciente de que el tradicional modelo de programación basado en dejar que la aplicación sea más rápida gracias al aumento de la frecuencia de reloj de cada generación de microprocesadores ha llegado a un punto sin retorno. Pongamos un ejemplo...

Desde los aproximadamente 5 MHz de un antiguo procesador 8086 de 29.000 transistores de 1978 hasta los 3.8GHz de un Pentium 4HT672 de 125 millones de transistores y lanzado en 2005, los avances tecnológicos han sido muchos, pero fundamentalmente una aplicación se ha visto mejorada por ejecutarla en máquinas progresivamente más rápidas. Sin embargo, la frecuencia de reloj no seguirá aumentando, es demasiado costoso.

 

El consumo energético se dispara con aumentos de frecuencia por encima de ciertos umbrales y hoy en día ya no es posible comprar un ordenador de 4GHz porque la estrategia de los fabricantes cambió finalmente de rumbo en 2005. Ya con la salida de Intel Pentium 4 en 2000, se incluía mayor soporte para instrucciones que favorecían el procesamiento en paralelo de datos (SIMD, single instruction multiple data) y la tecnología Hyperthreading (HT Technology), que de un modo virtual podía mejorar hasta un 30% la efectividad de un procesador para que fuera visto por el sistema operativo como si fueran dos. En 2005, y tras la imposibilidad de aumentar las frecuencias de reloj, se opta por seguir la estrategia que ya antes los fabricantes de chips gráficos habían elegido, multiplicar los núcleos de procesamiento a favor de disminuir las fuentes de calor reduciendo las frecuencias de trabajo. Aparecen los Pentium D y Pentium Extreme Edition, que incluyen por primera vez sistemas de dos núcleos (dual-core) en un procesador. A diferencia de otros sistemas multiprocesador con dos procesadores (dual-processor) independientes, el sistema dual-core contiene dos núcleos de procesamiento que comparten el mismo chip. Este sistema es tecnológicamente más avanzado, más barato, aunque ligeramente más limitado por compartir memoria cache entre otros. Es conveniente observar que un sistema dual-core no es incompatible con la tecnología Hyperthreading, por lo que sus dos núcleos pueden llegar a verse como cuatro núcleos de procesamiento en ciertas condiciones.


Del sistema dual-core inicial llegan sus extensiones naturales: multi-core, que lideran las actuales tecnologías y que abren el camino para que los sistemas sigan siendo de consumo, aumentando la eficiencia energética y ofreciendo una vía libre para la recordada Ley de Moore, que predecía que cada 18 meses el número de transistores por unidad de superficie se duplicaría y que estaba llegando a su fin por una cuestión energética.

 

Entonces, la pregunta ahora es si los desarrolladores están preparados para empezar a sacar partido a la tecnología. Haciendo un símil simplista, es como si los los gobiernos y fabricantes de coches hubieran posibilitado crear coches para volar a varias alturas, y en las autoescuelas siguieran enseñando a conducir en el plano. Buen momento, con Bolonia, para rehacer alguna asignatura y entrar de lleno en el mundo de la supercomputación de consumo.

 

Este artículo está basado en:

http://isdlibrary.intel-dispatch.com/isd/2530/Understanding_Dual_Processors.pdf

12:28 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (1)

martes, 24 de marzo de 2009

El próximo martes 31 de marzo contaremos con la ponencia del Dr. Tim Lanfear, arquitecto de soluciones de NVIDIA, empresa líder en soluciones gráficas y supercomputación de consumo. El Dr. Lanfear nos introducirá el concepto de supercomputación personal y nos presentará en profundidad la arquitectura CUDA y su modelo de programación durante el seminario de 2 horas y media.



La idea que persigue la empresa NVIDIA es poder dotar de un supercomputador personal a cada investigador que desee mejorar el rendimiento de sus soluciones algorítmicas. Para ello, NVIDIA ha integrado un equipo Tesla en un ordenador de consumo y propone su arquitectura CUDA como medio de acelerar una solución sobre su plataforma de bajo coste y altas prestaciones.

Entre los temas que se tratarán:
- NVIDIA Architecture. TESLA and GPU architecture
- Programming with CUDA. An overview of CUDA programming model, with examples of applications, pointing to critical aspects of code optimization
- Practical example of application, with speedup and challenges details, from Dr. Gianni De Fabritiis  (from Accellera / UPF).

Más información sobre el NVIDIA Tesla Personal Supercomputer:
http://www.nvidia.com/object/personal_supercomputing.html

Audiencia de interés: Cualquier investigador con interés en optimizar el rendimiento de sus soluciones algorítmicas
Fecha: Martes 31 de marzo, 15:00 h
Lugar: Salón de Grados del Edificio Departamental I - Cámpus de Móstoles - Universidad Rey Juan Carlos
C/Tulipan S/N, 28933 Móstoles (Madrid)

8:14 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (0)

miércoles, 11 de marzo de 2009

El pasado 10 de marzo se otorgó el prestigioso premio “2008 ACM A. M. Turing Award” a Barbara Liskov, profesora del Instituto Tecnológico de Massachusetts (MIT) y primera mujer estadounidense en recibir el título de Doctor en un departamento de computación (1968 en Stanford University).


(Aunque esta noticia no es propiamente de Supercomputación de Consumo es un hecho que cualquier medio dedicado a la computación debería reflejar)



La Dra. Liskov es profesora desde 1972 y lidera el grupo de metodología de la programación en el laboratorio de Computer Science and Artificial Intelligence del MIT. Este premio es un reconocimiento a su trabajo de innovación en el campo de la abstracción de datos y la creación de arquitecturas software modulares así como su relación con el modelo de jerarquía de datos, que son hoy en día conceptos básicos de programación que se imparten en cualquier asignatura de introducción a la programación, uso de tipos abstractos de datos y programación orientada a objetos, y que están soportados por muchos de los lenguajes más habituales como Ada, C++, Java o C#. El premio también distingue sus trabajos en los fundamentos de la computación distribuida.

 



Ya en 2002 fue nombrada por la revista Discover una de las 50 mujeres más importantes de la ciencia y en 2004 recibió la medalla John von Neumann de IEEE por sus contribuciones fundamentales en el campo de los lenguajes de programación, metodologías de programación y sistemas distribuidos.

 

El premio Turing, que consiste en una aportación económica de 250.000$ por los patrocinadores Intel y Google, es nombrado en honor al matemático inglés Alan M. Turing, que formuló los límites teóricos de la computación, y que fueron claves en la determinación del cifrado alemán durante la Segunda Guerra Mundial. Por su parte, ACM, la Association for Computing Machinery, es la asociación de computación científica y educativa más grande del mundo que une a profesores, investigadores y profesionales del campo de la computación. Este premio ACM Turing de 2008 será entregado en la ciudad de San Diego, California, el próximo 27 de junio en el ACM Awards Banquet. Más información en la nota de prensa de ACM y del MIT.

8:11 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (0)

jueves, 29 de enero de 2009

El pasado mes de noviembre tuvo lugar la primera edición de ANACAP, el Workshop de Nuevas Aplicaciones de Consumo y Altas Prestaciones en la Universidad Rey Juan Carlos, donde se pusieron en común por primera vez en España usos de nuevas arquitecturas de consumo en problemas de propósito general. Diversas presentaciones y los cursos impartidos en dicho workshop han quedado online para su descarga gratuita.

Este material está accesible desde la web http://www.gavab.es/capo/anacap/programa.html e incluye presentaciones de los tutoriales que se impartieron de GPGPU (uso de procesadores gráficos para su uso en procesamiento de propósito general, introducción y contexto histórico), CUDA (la propuesta en este sentido de Nvidia) y programación mediante una videoconsola Playstation3 con todo lo necesario para su configuración y puesta en marcha. Esperamos que la segunda edición tenga tan buena acogida como tuvo la primera.

14:41 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (0)

miércoles, 17 de diciembre de 2008

Siguiendo con la supercomputación de consumo damos difusión al Workshop UCHPC (UnConventional High Performance Computing). UCHPC'09 es el segundo evento internacional de Computación de Altas Prestaciones sobre plataformas no convencionales, tras el éxito de su primera edición (UCHPC 2008). Con "no convencionales", los organizadores se refieren a aquellas plataformas que se están utilizando como solución de altas prestaciones, pero que no fueron inicialmente diseñadas con tal objetivo. Por tanto, se busca mostrar las formas no convencionales de actuar ante determinados problemas que quizá en el futuro sí que puedan ser convencionales.

En este workshop, organizado por Anders Hast de la University of Gävle de Suecia, se presentarán trabajos que muestren usos no convencionales de diferentes plataformas, como las de las unidades de procesamiento gráfico (GPUs) de los ordenadores de sobremesa o los procesadores multinúcleo de las videoconsolas Playstation 3 en problemas de propósito general, así como agrupaciones (clusters) de plataformas heterogéneas basadas en las anteriores arquitecturas. El rendimiento de las soluciones dadas por estos usos "no convencionales" llegan a ser comparables a otras soluciones más convencionales en el terreno de Computación de Altas Prestaciones (HPC), pero tienen la ventaja de ser bastante más económicas, en dinero y consumo energético.

Los trabajos pueden quedar incluidos dentro de las siguientes temáticas:
  • Unconventional computing resources
    • Innovative use of hardware and software
  • HPC on
    • GPU’s (GPGPU)
    • Cell BE
    • Low Power Processors
    • FPGA
    • Visualization cards etc.
    • Game consoles
  • Cluster solutions, e.g. clusters of PS’3, GPU’s, Low Power Processors, FPGA’s etc.
    • Performance issues and scalability
  • Reconfigurable Computing
  • Grid Computing
  • Visualization on unconventional platforms
    • Innovative use of hardware for Visualizations in connection with HPC
El workshop tendrá lugar en la isla de Isquia, cerca de Nápoles, Italia, del 18 al 20 de mayo de 2009, y el plazo de envío de trabajos está abierto hasta el 1 de febrero del 2009.

11:58 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (0)

miércoles, 10 de diciembre de 2008

OpenCL, Open Compute Language, es la primera propuesta abierta y estándar de programación paralela sobre dispositivos heterogéneos de consumo, como sistemas multicore, GPUs, móviles, procesadores basados en Cell, etc. El objetivo de OpenCL es crear un punto de encuentro entre fabricantes para que adopten una estrategia común,  simplificar la programación de estos dispositivos y poder sacar provecho a arquitecturas heterogéneas con menores tiempos de desarrollo. OpenCL fue una iniciativa propuesta por Apple y posteriormente impulsada por Khronos, el grupo de empresas del sector que mantiene el interfaz de acceso gráfico OpenGL entre otros.




Khronos, el grupo formado por diversas empresas del sector como son 3DLABS, Activision Blizzard, AMD, Apple, ARM, Barco, Broadcom, Codeplay, Electronic Arts, Ericsson, Freescale, HI, IBM, Intel Corporation, Imagination Technologies, Kestrel Institute, Motorola, Movidia, Nokia, NVIDIA, QNX, RapidMind, Samsung, Seaweed, TAKUMI, Texas Instruments y Umeå University, ha presentado oficialmente en SIGGRAPH ASIA 2008 la especificación 1.0 de OpenCL. La iniciativa responde a la creciente popularidad de ciertas arquitecturas multicore, desde los ordenadores de sobremesa, a estaciones basadas en procesadores Cell o arquitecturas basadas en tarjetas gráficas, como los sistemas Tesla de Nvidia o FireStream de AMD/ATI.

La aceleración que producen determinadas aplicaciones de propósito general sobre dispositivos poco habituales como estas tarjetas gráficas, han forzado a algunos fabricantes a introducir interfaces de programación para aprovechar sus arquitecturas. Ese fue el caso de Nvidia y su popular arquitectura hardware/software CUDA o AMD/ATI y su Stream SDK. Sin embargo, estos interfaces no eran multiplataforma, evitando la portabilidad de las soluciones entre diferentes fabricantes de hardware y entre diferentes dispositivos que, sin embargo, coincidían en comunes modos de programación. La empresa Rapidmind capitaneada por Michael McCool, profesor de la Universidad de Waterloo, lleva varios años proponiendo un interfaz multiplataforma con iguales propósitos, pero no era libre y sus licencias eran de pago.

Con OpenCL se abre un nuevo horizonte para el aprovechamiento de estos sistemas de consumo y altas prestaciones, se dota de cierto razocinio en la comunidad y se establece un punto de partida para el futuro de estas arquitecturas.

4:47 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (2)

viernes, 05 de diciembre de 2008

El periódico El Mundo ha realizado una entrevista de caracter divulgativo a David Kirk, responsable científico de la compañía Nvidia. La empresa es una de las grandes fabricantes de procesadores gráficos, o GPUs, capaces de realizar más operaciones que las tradicionales computadoras de escritorio. Desde los primeros años de esta década, algunos investigadores acertaron al utilizar estas GPUs en problemas de propósitos que nada tenían que ver con gráficos. Nvidia entró en el sector de la supercomputación de consumo a través de una novedosa arquitectura hardware/software denominada Nvidia CUDA y creando una línea de equipos basada en el modelo de cómputo de sus GPUs.

La entrevista completa se puede leer directamente desde su fuente: http://www.elmundo.es/navegante/2008/12/04/tecnologia/1228412106.html

Por otra parte, hoy mismo se presentaba en Londres el supercomputador de consumo de Nvidia. Integra en un computador ordinario equipos Nvidia Tesla que a su vez comparten el modelo de cómputo de las GPUs.

5:06 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (0)

martes, 18 de noviembre de 2008

Top500 publica semestralmente (junio y noviembre) la lista de los 500 supercomputadores actualmente más potentes. Por primera vez, aparece en la lista un supercomputador híbrido de GPUs y CPUs. Ocupa el puesto 29, está basado en un cluster de tecnología AMD, Intel y Nvidia, está instalado en Tokyo y denominado “TSUBAME Grid Cluster with CompView TSUBASA”.


Tiene 21600 GB de memoria principal y GPUs de la serie más moderna hasta la fecha de Nvidia, la GT200. Más información aquí y en la web principal del proyecto.

En la lista se mantiene por poco el supercomputador de IBM del laboratorio nacional de Los Alamos en Estados Unidos. La lista completa de noviembre 2008 puede verse desde aquí.

10:07 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (2)

jueves, 30 de octubre de 2008

Recientemente, novedosas plataformas de consumo están irrumpiendo en el terreno de la Computación de Altas Prestaciones. Procesadores gráficos y videoconsolas son algunas de las propuestas que están siendo explotadas por los investigadores para mejorar el rendimiento de sus soluciones. El Workshop de Aplicaciones de Nuevas Arquitecturas de Consumo y Altas Prestaciones (ANACAP) pretende ser un punto de encuentro de investigadores nacionales que usen estas tecnologías para acelerar sus soluciones algorítmicas, así como un foro para promover e incentivar nuevas propuestas de cómputo optimizado para problemas de propósito general.


El evento, financiado inicialmente por la Universidad Rey Juan Carlos y la Comunidad de Madrid a través del proyecto URJC-CM-2007-CET-1724, y co-patrocinado por las empresas Nvidia Corp., Bull, Azken Muga e IPSA, tendrá lugar el próximo jueves 20 y viernes 21 de noviembre en el campus de Móstoles de la Universidad Rey Juan Carlos. El programa técnico incluirá ponencias de algunos de los mejores investigadores nacionales en la temática, incluyendo científicos de la Universidad de Jaén, Universidad Politécnica de Cataluña, Universidad Jaime I de Castellón, Universidad de Valladolid, Universidad de La Laguna (Tenerife), Universidad de Málaga, Universidad Complutense de Madrid, Universidad de Santiago de Compostela, y Universidad Rey Juan Carlos, entre otras.

 

Así mismo, la inscripción a ANACAP 2008 incluirá cursos de programación de tarjetas gráficas para problemas de propósito general, programación mediante Nvidia CUDA, y programación de una videoconsola Playstation 3. El registro para asistir a ANACAP 2008 está abierto hasta el mismo día de comienzo, aunque el cupo estará limitado por motivos logísticos. Por ello, recomendamos a investigadores o público general que sientan interés en la temática, que quieran conocer las nuevas propuestas de cómputo y deseen sumergirse en un mundo nuevo de la computación, informarse en la web de ANACAP y registrarse pronto a través del sistema de inscripción habilitado.

 

Además, durante el workshop se sorteará una GPU GeForce 9800GX2 entre los asistentes, cortesía de Azken Muga.

 

Más información:

www.gavab.es/capo/anacap

www.gavab.es/capo/anacap/inscripcion.html

www.gavab.es/capo/anacap/tutoriales.html

www.gavab.es/capo/anacap/programa.html

Financiado por:

 

 

 

Patrocinado por:

 

 

 

          

 

 

 

 

Organizado por:

 

   

 

7:18 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (0)

jueves, 23 de octubre de 2008

En temáticas modernas o muy recientes de la ciencia, no es siempre fácil encontrar los foros de difusión adecuados. Esto no es nuevo, cualquier idea novedosa se debe introducir poco a poco en la comunidad científica para que vaya tomando forma, y peso. Que el hardware gráfico se esté utilizando en el cómputo de tareas de propósito general no va a sorprender al que haya leído algo sobre esto, pero su uso en nuevas ramas de aplicación puede dar lugar a nuevos métodos o propuestas de interés para la ciencia, y la tecnología. Los foros más adecuados para exhibir las últimas ideas en este campo suelen ser las jornadas técnicas, que van ganando peso poco a poco.


El primer workshop dedicado exclusivamente al uso de procesadores gráficos como motores de cómputo en problemas genéricos fue el GP2 de Los Angeles en agosto de 2004. Esta reunión científica estaba patrocinada por los mayores fabricantes de procesadores gráficos del momento: Nvidia, ATI y 3DLabs, además de entidades de investigación militar. Ese mismo año, y pocos días después, la mayor conferencia internacional especializada en informática gráfica y animación, ACM SIGGRAPH 2004, concedía un curso dedicado a la programación de propósito general mediante hardware gráfico de consumo (GPGPU: General-Purpose Computation on Graphics Hardware), cuyos organizadores, Mark Harris y David Luebke ya eran reconocidos autores y expertos en la materia. Hoy en día, ambos trabajan para la compañía Nvidia Corp. En 2005, aún la prestigiosa ACM SIGGRAPH incluía un curso de un día completo al tema de GPGPU, como pocos años antes Mark Harris había denominado la temática. El siguiente encuentro internacional de científicos de la temática se dio cita en la International Conference on Computational Science 2006 (ICCS), en el workshop denominado simplemente GPGPU.

 

La siguiente reunión vino en otra de las conferencias más prestigiosas de la informática, Supercomputing, en noviembre de 2006 y que incluía un workshop interno denominado "General-Purpose GPU Computing: Practice And Experience”. También a finales de 2006, el centro de investigación independiente escandinavo, SINTEF, organizaba una reunión sobre computación heterogénea Heterogeneous Computing como parte de su programa de investigación en GPGPU y que actualmente continua en desarrollo a través del programa Heterogeneous Computing.

 

Aunque en la edición de 2006 de SIGGRAPH la temática de procesamiento en procesadores gráficos perdió atractivo, en la convocatoria de 2007 se incluyó de nuevo el curso de GPGPU. En Octubre de 2007 tuvo lugar el primer Workshop on General Purpose Processing on Graphics Processing Units de la Northeastern University en Boston que se repetirá como segunda edición en Marzo de 2009. En noviembre de 2007 tuvo lugar en Princeton, New Jersey, el AstroGPU 2007, Workshop on General Purpose Computation on Graphics Processing Units in Astronomy and Astrophysics, y en enero de 2008 el centro SINTEF volvió a reunir a expertos en el tema durante 5 días en la escuela de invierno sobre computación paralela. En 2008 se han sucedido diferentes acontecimientos, pero la mayoría incluidos en jornadas más generales, como ARCS2008 en Dresden (Alemania) o ICCSA2008 en Perugia (Italia). A finales de Agosto de 2008 tuvo lugar la primera edición de Nvision en San José, California, el encuentro organizado por Nvidia y donde se dieron cita los mejores ingenieros del mundo de la computación mediante procesadores gráficos.

 

¿Y en España?, ¿ha habido algún punto de encuentro? A nivel local ha habido algunos intentos, incluso integrados en conferencias de temáticas dispares, como informática gráfica, arquitecturas, etc. pero, en general, ha habido pocos esfuerzos por reunir a los científicos españoles en un encuentro dedicado exclusivamente al procesamiento de propósito general mediante hardware gráfico de consumo. La primera reunión nacional tendrá lugar en la Universidad Rey Juan Carlos de Madrid los próximos 20 y 21 de noviembre, bajo el nombre de ANACAP 2008: Aplicaciones de Nuevas Arquitecturas de Consumo y Altas Prestaciones, y en breve daremos más detalles de este evento, del que podemos anticipar que se darán cita algunos de los mejores grupos de la temática y se ofrecerán tutoriales de iniciación sobre GPGPU, Nvidia CUDA y programación sobre una Playstation3.

15:16 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (0)

jueves, 16 de octubre de 2008

Como procesadores gráficos de consumo nos referimos a los chips que incorporan las habituales tarjetas gráficas incluidas en nuestros ordenadores de sobremesa. La misión fundamental de estos sistemas es la de conseguir una imagen final en pantalla, y para la mayor parte de las aplicaciones diarias (gestor de correo electrónico, navegación por Internet, editor de textos, hoja de cálculo, etc.) el procesador gráfico apenas realiza un cómputo exigente. Por esta razón, muchos fabricantes y montadores de equipos finales incluyen tarjetas gráficas integradas, de bajo consumo, de pequeñas dimensiones, de bajo coste y de gran funcionalidad.

 


Sin embargo, cada vez es mayor la incertidumbre del usuario respecto a las posibilidades de su equipo en el futuro a corto plazo, si necesitará mayor poder de cómputo, si necesitará más velocidad, si necesitará mejores prestaciones porque las aplicaciones que tenga que utilizar así se lo requieran. Este hecho también se pone de manifiesto a la hora de elegir una tarjeta gráfica, quizá en el futuro (o en el presente) el propio sistema operativo realice tareas gráficas inusuales, muy exigentes, o el navegador web, o quizá queramos reproducir vídeo de alta definición en una pantalla plana de 42”, quizá queramos experimentar la sensación del último videojuego que tanto revuelo ha hecho en Times Square de Nueva York el día de su lanzamiento al mercado, etc. Bajo estas circunstancias, quizá queramos adquirir una tarjeta gráfica de gama media (50-250€), pero que asegure cierto margen de extensibilidad de uso futuro.

 

A los procesadores gráficos de este tipo de tarjetas les hemos hecho un hueco en el webblog de Supercomputación de Consumo porque, como veremos en una serie de posts, en especiales circunstancias pueden ayudar a procesar más rápido, o energéticamente de forma más eficiente, soluciones a problemas de propósito general y que nada, o poco, tengan que ver con la visualización de vídeo, de trepidantes escenas de videojuegos, o con la renderización de espectaculares efectos visuales de las ventanas de nuestro sistema operativo. Pero ¿qué pasa con aquellas tarjetas gráficas que caen en el segmento de alta gama? Estas tarjetas están especialmente diseñadas para sacar máximo partido a las más avanzadas tecnologías software de visualización, y especialmente de los videojuegos. Resoluciones de alta definición en monitores de grandes dimensiones y refresco inmediato del videojuego a máxima calidad. Estas tarjetas, que pueden costar alrededor de 600€ incluyen muchos más transistores y unidades de cómputo que el mejor de los procesadores centrales (CPU) de consumo. La cuestión es, ¿tanto poder de cómputo solo para ser utilizado de manera exigente en videojuegos?, ¿se está desperdiciando mientras leo las noticias en Internet, reviso el correo o hago un escrito con mi editor de texto?

 

Los fabricantes de procesadores gráficos se han dado cuenta de que desde finales de los años 90 algunos investigadores han incidido en utilizar este hardware con propósitos científicos. Estos investigadores han tratado de acelerar tareas de cómputo de maneras no triviales buscando paralelismos entre posibles soluciones a sus problemas y las soluciones ofrecidas por el hardware gráfico a la hora de renderizar imágenes. Entendiendo la forma de procesar de este hardware cuando ejecuta las tareas para las que fue diseñado, se puede conseguir una solución eficiente para tareas impropias de este dispositivo.

 

Los procesadores gráficos basan su poder de cómputo en la posibilidad de realizar multitud de operaciones individuales, y de manera independiente, para una gran cantidad de datos. Básicamente es lo que ocurre cuando se renderiza una imagen compuesta por gran cantidad de datos (píxeles) expresada a partir de una descripción 3D compleja, como la que pueda generar una aplicación de diseño gráfico, o la de un modelo de una escena 3D de un videojuego. ¿Qué etapas de procesamiento atraviesa esa descripción 3D inicial para conseguir reflejar una imagen 2D en pantalla?, ¿es posible acceder a esas etapas de procesamiento para aprovechar los recursos en la búsqueda de soluciones de problemas de propósito general?, la respuesta es afirmativa, aunque no para cualquier aplicación.

 

Pero sigamos descubriendo las posibilidades, fortalezas y debilidades del hardware gráfico para ser usado como supercomputadores de consumo. En general, las ventajas de una GPU (Graphics Processing Unit, o unidad de procesamiento gráfico en contraposición de CPU, Central Processing Unit) se pueden articular en seis puntos claves:

  1. Es hardware de consumo: una tarjeta gráfica de última generación es fácil encontrarla en unos grandes almacenes, a diferencia de una tarjeta programable tipo FPGA.
  2. Es hardware de altas prestaciones: atendiendo a una variedad de parámetros, se puede demostrar que estos procesadores pueden realizar más operaciones por segundo que muchos procesadores de propósito general, tienen mayores anchos de banda a memoria (pueden leer más datos en menos tiempo) y cada vez tienen mayor capacidad (más memoria onboard)
  3. Es hardware de bajo coste: teniendo en cuenta el punto anterior sobre la capacidad de cómputo, el ratio unidad de cómputo vs. precio es significativamente más bajo, así como el ratio unidad de cómputo vs. consumo energético.
  4. Es hardware programable: desde finales de los años 90, algunas etapas de procesamiento se han visto modificadas para permitir su personalización a través de códigos externos, que los desarrolladores pueden modificar a su antojo para que la tarjeta ejecute sus instrucciones sobre entradas de datos de interés. El creciente interés en este aspecto ha posibilitado la creación de determinados lenguajes de programación de alto nivel para codificar estos programas.
  5. Es un buen procesador de flujos de datos: viene de la idea de stream processor, que por su independencia de cómputo puede realizar múltiples ejecuciones de la misma instrucción sobre múltiples datos de manera simultánea y mantener este ritmo para todos los datos de la colección sin necesidad de intervenir directamente. El objetivo es ocultar el procesamiento en la tarjeta gráfica mientras la CPU queda libre para otro tipo de tareas.
  6. Rápida evolución: Gordon E. Moore advertía en 1965 que el ritmo de crecimiento del número de transistores por circuito integrado era exponencial y que esta tendencia continuaría en el tiempo. De forma general, la llamada Ley de Moore establece que el número de transistores en un procesador se duplica cada 18-24 meses. En el caso de los procesadores gráficos, por la facilidad de la integración de transistores dedicados a cómputo, así como por el empuje de la industria de los videojuegos, la tendencia es más acusada, llegando a duplicar e incluso triplicar la citada Ley de Moore. El hardware gráfico evoluciona muy rápido, y una solución que actualmente no consiga un gran rendimiento puede ser significativamente superior en pocos meses.

 

 

 

Pero no todo es perfecto, en su inicio, la programación de este tipo de hardware para tareas de propósito general era compleja, se requería conocimiento de bajo nivel del propio hardware, de los juegos de instrucciones soportados, etc. A medida que este uso se ha hecho más popular han aparecido nuevos interfaces para soportar características propias de una buena abstracción. No obstante, no nos engañemos, sacar máximo partido a este hardware continúa siendo una tarea compleja, aunque sacar un cierto beneficio respecto a la solución básica en CPU pueda ser algo relativamente sencillo para determinados procesos.

 

Abordaremos poco a poco cada uno de estos puntos así como algunas de las posibilidades que se están abriendo paso debido a la masiva implantación de esta tecnología de consumo.

14:02 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (1)

viernes, 03 de octubre de 2008

Hasta hace pocos años, los ordenadores personales han venido aumentando su poder de cómputo casi exclusivamente por un aumento en las frecuencias de reloj que repercutían en disparados consumos energéticos y calentamientos del sistema. Ante esta situación, que incluso alarmaba al sector energético mundial, los fabricantes lanzaron productos multinúcleos (multicore) con gran éxito en el mercado, que reducen el consumo energético del sistema de manera sustancial. Someramente, se basan en la posibilidad de realizar cálculos en paralelo sobre varios procesadores de forma simultánea, reduciendo en promedio el tiempo de ejecución del proceso. Sin embargo, un programa preparado para un único procesador no se ejecuta más rápido por correr en un sistema de doble núcleo sin más, puesto que realmente el programa no está preparado para ese sistema doble, o multinúcleo.

Los desarrolladores deben conocer a fondo los problemas y las soluciones para llevar a cabo la migración de estos programas. Sin embargo, las arquitecturas multinucleo en las gamas de consumo son de reciente implantación, por ello ¿cuántos desarrolladores no especializados en computación paralela o computación de altas prestaciones tienen conocimiento de este modelo de programación para poder optimizar la ejecución de sus programas?, en general muy pocos. Por tanto es necesario simplificar el proceso de la programación paralela, puesto que el sistema de consumo se vuelve paralelo pero el desarrollador promedio no.

Intel y Microsoft se han propuesto buscar soluciones conjuntas, invirtiendo recientemente 20M$ en la creación de 2 centros de investigación (University of Illinois at Urbana-Champaign y University of California, Berkeley) para la investigación durante al menos 5 años de la computación paralela y la búsqueda de soluciones, arquitecturas y sistemas operativos viables para el desarrollador promedio no especialista. En estos 2 Centros de Investigación de Computación Paralela Universal (Universal Parallel Computing Research Centers, UPCRC) trabajarán conjuntamente unos 75 estudiantes de doctorado e investigadores postdoctorales y alrededor de 35 profesores.

Aparte de esto, Intel anunció en la pasada confererencia SIGGRAPH 2008 en Los Angeles su esperado chip gráfico vectorial  y coprocesador, Larrabee, que competiría con los líderes del sector. Aunque anunciándose desde hace muchos meses (y años), Larrabee no termina de lanzarse al mercado y su salida se ha ido retrasando hasta finales de 2009 o primer semestre de 2010 según las últimas notificaciones. La gran diferencia de este chip respecto a la competencia (Nvidia y AMD/ATI principalmente) es que incorporaría instrucciones basadas en las arquitecturas x86 para hacerlo más propenso a ser utilizado en aplicaciones intensivas de propósito general, y que evitaría el aprendizaje de librerías del contexto gráfico o de modelos y librerías especializadas a ciertas arquitecturas, como la propuesta de Nvidia, CUDA.

Por su parte, Nvidia ya ha anunciado su interés en entrar en el sector de los procesadores de propósito general y, obviamente, AMD/ATI está también asentada en ambos terrenos. Crece el interés por el cómputo paralelo, ¿veremos los cambios a corto y medio plazo? Seguimos informando humildemente en estas líneas. Las próximas ediciones del blog contendrá información de multiprocesadores gráficos y las propuestas de sus fabricantes.

8:51 | gestionado por Línea CAPO GAVAB-URJC | Enviar comentario (0)