Computación de alto desempeño (HPC)

De Departamento de Informatica
Saltar a: navegación, buscar
"Darwin" HPC utilizado actualmente en la Universidad de Cambridge, con 139 TFlops de capacidad (90% peak) [1]

Por computación de alto desempeño (del inglés High Performance Computing) nos referimos a las tecnologías utilizadas por una o más computadoras con el propósito de crear sistemas informáticos capaces de obtener rendimientos en el orden de los PetaFLOPS. El término es usado comunmente para sistemas de tratamiento de datos científicos, por lo que su popularidad continúa aumentando y es ahora normal de encontrar en muchos campos de las ciencias naturales y técnicas, incluso en la computación comercial. Sin embargo, para aprovechar estas tecnologías se requiere de una gran inversión y gestión con personal especializado de alto nivel debido a la complejidad del funcionamiento de estos sistemas y a problemas físicos como la disipación de calor y consumo eléctrico.

Contenido

Implementación de un HPC

HPC actual de la Universidad de Minnesota [2], usado por las facultades de Ciencias, Ingenierías y Tecnologías. Posee 1 nodo maestro y 34 esclavos, cada uno aportando 8GB de RAM y 2 dual-core AMD Opteron chips para un total de 4 procesadores lógicos (136 en total). Todos los nodos corren con Linux.

Dado que los sistemas informáticos son cada día más sofisticados, los desarrolladores de aplicaciones deben trabajar en conjunto con diseñadores e ingenieros para identificar y corregir las inestabilidades o bugs que surjan. Al ser de alto desempeño es necesario adaptar y re escribir el código usando nuevos tipos de arquitecturas, es por esto que a menudo estos sistemas son los primeros en innovar con nuevos lenguajes de programación, compiladores y bibliotecas. Sin embargo esto también tiene su lado negativo ya que se requiere mucha mano de obra y los expertos en aplicaciones HPC no son muchos.

Los programadores de HPC son reacios a sacrificar rendimiento a cambio de una mayor facilidad de programación, por lo tanto, se requiere siempre un modelo estándar que permita sacar el máximo provecho a todo tipo de plataforma. Como en todo sistema computacional, el modelo de programación debe ser fácil de entender para identificar fácilmente bugs y corregirlos. Otro punto importantísimo es la escalabilidad y la potencia disponible del hardware, que determinarán el alcance del sistema. También cabe considerar, que al ser las HPC un mercado relativamente pequeño, los fabricantes no son capaces de hacer frente a una gran variedad en los modelos de programación por lo que la norma debe ser compatible con la mayoría de los códigos y las plataformas HPC.

Problemas comunes

El principal cambio programando para sistemas de alto desempeño es en que se debe dejar casi absolutamente la progrmacion secuencial, por lo que los algoritmos comunes deben ser reestructurados o diseñados desde cero. El mayor problema sin embargo, es que con el pasar de los años la tecnología no ha crecido balanceadamente entre procesadores y memorias, por lo que la velocidad actual de ejecución de una instrucción promedio es mucho más rápida que el tiempo de acceso a la memoria principal.

Desde una perspectiva física, el mayor impedimento en estos sistemas es la preocupación por la disipación de calor y el ahorro energético, el costo de mantener funcionando uno de estos sistemas puede ser muy elevado: un sistema puede consumir hasta 4 Megawatts de electricidad [3], cerca de 200 mil pesos chilenos por hora. Es por esto que el diseño de disipación de calor es un factor clave, ya que influye en el desgaste de los circuitos y dispositivos.


Usos y aplicaciones

Aunque los modelos matemáticos aplicados a la abstracción y modelización de fenómenos existen hace tiempo, es durante las últimas dos décadas con la llegada de plataformas informáticas de alto rendimiento donde se ha presentado la oportunidad de mostrar el enorme poder explicativo y predictivo en muchos campos científicos y financieros. Las tecnologías modernas han permitido un gran desarrollo en técnicas de modelamiento, que brindan una gran contribución permitiendo diseñar, estudiar, y analizar complejos fenómenos naturales con un detalle inimaginable hace algunos años.

La computación de alto rendimiento se ha utilizado a lo largo de los años en diferentes propósitos como por ejemplo:

Década Ejemplos de aplicación
1970s Estudio y predicción climática, investigación aerodinámica. [4]
1980s Análisis probabilístico [5]
1990s Rompimiento de código por fuerza bruta (EFF DES cracker) [6]
2000s Estudio de la materia a escala atómica
2010s Simulación de moléculas dinámicas (proteínas en medicina, buscando cura de enfermedades degenerativas) [7]

Referencias

High-Performance Computing, Paradigm and Infrastructure

High Performance Computing

HPC Wire

Todos los links fueron consultados el 2012-09-14

Herramientas personales
Espacios de nombres
Variantes
Acciones
Navegación
Herramientas