Nuevas formas de computación

Anuncio
Nuevas formas de computación
Juan José Andrés Gutiérrez de Telefónica I+D
Tecnologías
Conozca un interesante análisis del presente de las tarjetas gráficas y sus vínculos con el futuro de la computación.
Las tarjetas gráficas actuales cuentan una elevada potencia de cálculo, grandes capacidades de computación y esta optimizadas para cálculos en coma flotante lo que
les hace realmente muy útiles en diferentes propósitos para los que originalmente fueron concebidas además de tener, actualmente, un bajo coste. Se han desarrollado
técnicas especiales, centradas para la experimentación científica y la simulación. Las GPUs (Graphics Processing Units) se han convertido en procesadores
extremadamente flexibles y potentes. INTRODUCCIÓN GPGPU (General-Purpose Computing on Graphics Processing Units) [1] y [2] es una técnica de computación
que utiliza las capacidades de las GPUs para resolver problemas diferentes de los tradicionales de procesado de gráficos. Usadas convenientemente pueden obtener unos
resultados muy interesantes en la resolución de determinadas tareas de elevada carga computacional. QUE ES UNA GPU Una GPU (termino definido por nVIDIA en
1999 con su conocida tarjeta gráfica GeForce) es un procesador de propósito especifico que se encarga de acelerar la creación (o renderizado) de gráficos liberando así
del procesador principal (o CPU, Central Processing Unit) de estas tareas, las cuales tienen un alto coste computacional. Son utilizadas en multitud de dispositivos,
además de en ordenadores, como consolas de videojuego, teléfonos móviles, etc.
Dadas las características de las tarjetas gráficas
actuales como su bajo coste, elevada potencia de cálculo, grandes capacidades de computación paralela y optimización para cálculos en coma flotante son realmente muy
útiles para usos diferentes de los que originalmente fueron concebidas. Se han desarrollado técnicas especialmente centradas en simulación y clustering. Hoy en día las
GPUs son procesadores extremadamente potentes.
Aunque
cualquier algoritmo implementado en una CPU es susceptible de implementarse en una GPU, el resultado final, en cuestiones de eficiencia, dista mucho entre ambas. Los
algoritmos fácilmente paralelizables muestran un mejor rendimiento en las GPUs mientras que en caso contrario se muestran más eficientes en una CPU. ¿Porque las
GPUs están convirtiéndose rápidamente en procesadores tan potentes? Principalmente por dos razones:
Económicas. Miles de millones de euros son invertidos, cada año, en el mercado de los
videojuegos y esto está impulsando la innovación en este campo.
Capacidad de cálculo aritmético. La naturaleza de las GPUs hace sencilla la incorporación de
transistores adicionales para elevar la capacidad de cómputo.
El objetivo final es aprovechar la excelente relación "coste/capacidad de cálculo", de las GPUs, para así
disponer de un coprocesador adicional de gran capacidad de computación. Esta técnica se está
extendiendo y haciendo popular no solo por la gran capacidad de cálculo de las GPUs sino también por la
gran capacidad de cálculo que tienen las videoconsolas de hoy día y especialmente por su bajo coste. De
esta forma es posible montar un potente clúster con varias consolas aprovechando la potencia de sus
GPUs, como puede verse en [3]. Las GPUs son cada vez más y más rápidas. La evolución de las GPUs,
en cuestión de GFLOPS (gigaFLOPS, Floating point Operations per Second), es mayor que en las CPUs.
Mientras que el aumento de la velocidad de procesamiento de una CPU está estimado en 1.4x anual
(empíricamente probado por la Ley de Moore) en las GPUs varía entre un 1.7x y un 2.3x de crecimiento
anual. La principal crítica que cuenta está técnica es la falta de estandarización y discontinuidad de las
arquitecturas de las tarjetas gráficas, lo que puede implicar la adaptación continua de los desarrollos
existentes a los nuevos modelos de GPUs para conseguir un mejor rendimiento. Existen no obstante
iniciativas e intentos de estandarizar las GPU utilizando conjuntos de instrucciones estándar como el x86
[4]. APLICACIONES En determinados entornos un aumento de la potencia de cálculo proporciona
mejoras tanto en tiempo de procesamiento como en disminución de costes. Por ejemplo en el ámbito
científico. Investigadores que dependen de las computadoras para realizar y reproducir determinados
experimentos y que utilizan simulaciones como parte de su trabajo diario son los principales beneficiados.
Es evidente que si un determinado experimento puede realizarse cincuenta o cien veces más rápido
supone una mejora más que significativa. Experimentos que habitualmente tardan meses en completarse,
con estas técnicas es posible reducir esos tiempos a simplemente horas o días de carga computacional.
Esto supone además de hacer los experimentos más rápidamente, hacerlos de una forma más precisa,
teniendo en cuenta más variables en juego en los modelos computacionales. El coste, además, es un factor
crítico debido a mayor necesidad de computo; el cambio por equipos más potentes supone un desembolso
económico no directamente proporcional a la velocidad conseguida sino mucho mayor. Por el contrario en
el entorno domestico esta mejora no es tan obvia. La velocidad de los procesadores aumenta cada año y
las aplicaciones utilizadas en el entorno domestico siguen siendo similares (dejando a un lado las
aplicaciones gráficas que son el principal objetivo de las GPUs). Las aplicaciones no evolucionan tan
rápidamente, un procesador de textos sigue tenido la misma utilidad hoy día que hace unos años. Las
GPUs cuentan por tanto con potencial, y la GPGPU se puede considerar como una tecnología disruptiva y
disponible para aplicaciones de propósito general [5] y con aplicaciones que a día de hoy sorprenden. De
hecho, se ha encontrado aplicación a las GPUs para temas diversos como, por ejemplo, para romper la
seguridad WPA en redes inalámbricas [6]. Algunas otras aplicaciones para las que se puede utilizar esta
técnica son las siguientes:
Grid computing (red virtual de computación)
Simulaciones físicas
Procesado de señal de audio, uso de las GPUs para técnicas de DSP (digital signal processing)
Procesado del habla
Predicción del tiempo
Investigación climática (como por ejemplo investigación del calentamiento global)
Modelos moleculares
Mecánica cuántica
Bioinformática
Aplicaciones de predicción financiera y de mercados
Imagen médica
Visión artificial
Redes neuronales
Bases de datos
Criptografía y criptoanálisis
CONCLUSIONES
Las GPU tienen su ámbito de aplicación. Los algoritmos fácilmente paralelizables muestran un mejor
rendimiento en las GPUs mientras que en caso contrario se muestran más eficientes en una CPU
convencional. Es decir que no vale para todo pero si para determinadas aplicaciones, como algunas
experimentaciones científicas, el cálculo puede resultar de varios órdenes de magnitud más eficiente
respecto a sistemas de computación tradicionales. Interesante resulta la red de supercomputación en grid
BOINC, que como se puede ver en [7], utiliza técnicas GPGPU con algunos modelos de GPU para
diversas aplicaciones, como por ejemplo para el tratamiento de enfermedades. Aunque el uso de las GPU
proporciona bastantes ventajas también cuenta con algunas críticas. La principal de ellas es la falta de un
modelo común de desarrollo y evolución de estos procesadores. Esto significa que en función del
fabricante y de las versiones del dispositivo la arquitectura cambia y por tanto su modo de programar
obligando así a recodificar las aplicaciones para aprovechar toda la potencia y nuevas características que
ofrezcan los nuevos modelos, lo que no sucede con las CPU convencionales. Se abre por tanto una nueva
vía a la resolución de problemas complejos que dará sus frutos en los próximos años. REFERENCIAS 1.
GPGPU. Último acceso noviembre de 2010 aquí.
2. General-Purpose Computation on Graphics Hardware. Último acceso, noviembre de 2010 aquí.
3. GPU Cluster. Último acceso noviembre de 2010 aquí.
4. Larrabee. Último acceso noviembre de 2010 aquí.
5. GPGPUs: Neat Idea or Disruptive Technology? Ultimo acceso, noviembre de 2010 aquí.
6. Elcomsoft uses NVIDIA GPUs to crack WPA2. Último acceso noviembre de 2010 aquí.
7. Boinc Project. Último acceso, noviembre de 2010 aquí. PERFIL DEL AUTOR Juan José Andrés
Gutiérrez desarrolla su carrera profesional en Telefónica I+D, donde es Especialista Tecnológico en el
área de Vídeo. Ha trabajado con anterioridad en áreas como Hogar Digital, Administración Electrónica y
eHealth. Juan José es Ingeniero en Informática, ha cursado estudios de Investigación y Técnicas de
Mercado. Actualmente está realizando un Doctorado y cuenta con diversas publicaciones científicas. Su
correo electrónico es: jjangu@tid.es
Descargar