17
Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Embed Size (px)

Citation preview

Page 1: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Computadoras de Alto Rendimiento (HPC)ING. SERGIO CHIRINO TEJEDA

Page 2: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

El cálculo computacional o cálculo científico es una actividad de la Ciencia que construye

modelos matemáticos y aplica técnicas numéricas para resolver problemas científicos,

de ciencias sociales, problemas de ingeniería, etc. Estos modelos requieren gran

cantidad de cálculos y son a menudo ejecutados en supercomputadores o plataformas de

computación distribuida.

Page 3: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Aplicaciones• High Performance Technical Computing (HPTC).• Física cuántica, predicción climática, investigación del clima, modelamiento

molecular.• Simulaciones físicas de aviones en túneles de viento, simulación de

detonación de armas nucleares e investigación de la fusión nuclear.

• Economía.• Data warehouses.• Aplicaciones line-of-business (LOB).• Procesamiento de transacciones.

Page 4: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Paralelización• La computación paralela o procesamiento en paralelo consiste en acelerar la ejecución de un programa mediante su descomposición en fragmentos que pueden ejecutarse de forma simultánea, cada uno en su propia unidad de proceso.

• Por regla general los problemas no pueden dividirse perfectamente en partes totalmente independientes y equilibradas. Existen partes que deben realizarse en serie, y en ocasiones las tareas necesitan interaccionar entre ellas. Todo ello reporta una disminución en la capacidad.En raras ocasiones un cálculo en n ordenadores acelera en n veces.

Page 5: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Speedup Ley de Amdahl: Si llamamos f a la fracción del programa que no se puede dividir en tareas paralelas, el tiempo de computación necesario para ejecutar el programa en M procesadores tp(M) será:

Page 6: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Paralelización Para utilizar la paralelización en un entorno de cálculo es necesario programarla específicamente.

Existen varios estándares para realizarlo, por ejemplo:• Para sistemas de memoria compartida:• POSIX Threads.• OpenMP.

• Para sistemas de memoria distribuida (modelo de paso de mensajes):• MPI.• PVM.

Page 7: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Memoria Compartida• POSIX Threads: es un estándar de POSIX para hilos de ejecución concurrentes. Las librerías que lo implementan suelen llamarse Pthreads, y normalmente se usan en sistemas UNIX, aunque también existen las implementaciones para Windows.

• OpenMP es más fácil de implementar que MPI pero suele ser menos eficiente. Como se trata de un sistema de memoria compartida, sólo pueden utilizarse los procesadores de un único nodo.

Page 8: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Memoria Distribuida • MPI es más difícil de implementar pero ofrece un mejor rendimiento. Permite usar muchos nodos diferentes puesto que no se comparte el espacio de memoria.

• PVM es una librería para el cómputo paralelo en un sistema distribuido de computadoras. Está especialmente diseñado para permitir que una red de computadoras heterogénea comparta sus recursos de cómputo (como el procesador y la memoria RAM) para disminuir el tiempo de ejecución de un programa al distribuir la carga de trabajo en varias computadoras.

Page 9: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

HPC Evolución• Tradicionalmente propietarios, fuertemente integrados y costosos.

• Última década: HPC abarató costos usando clústeres.

• Clústeres: desde 6.6% hasta 87.4% en el Top 500 desde 2000 hasta 2008.

• Los desafíos de HPC son similares a los de la computadora personal en su época.

Page 10: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Supercomputación Registros vectoriales. Esta tecnología, creada por Seymour Cray, permite la ejecución de muchas operaciones aritméticas en paralelo. Los procesadores vectoriales forman parte de los supercomputadores tradicionales, como la Cray-27.

MPP (Massively Parallel Processors, Procesadores Masivamente Paralelos). Consiste en la utilización de cientos o miles de microprocesadores estrechamente coordinados. Se trata de un único computador con múltiples CPUs comunicadas por un bus de datos.

Clústeres. Es una forma de computación distribuida en la que se utiliza un conjunto de ordenadores de uso general interconectados por redes locales

Grid. Es un nuevo modelo de computación distribuida en el cual todos los recursos de un número indeterminado de computadoras son englobados para ser tratados como un único superordenador de manera transparente.

Page 11: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Clúster de cálculo• En un clúster de cálculo muchas computadoras individuales interactúan entre sí como si de una sola máquina se tratase.

• Las tareas se dividen en tareas más pequeñas que llamaremos subtareas y que puedan realizarse de forma paralela en varios ordenadores, reduciendo el tiempo de cálculo necesario.

• Las aplicaciones paralelas escalables requieren buen rendimiento; redes de comunicaciones escalables, de baja latencia y que dispongan de gran ancho de banda; y acceso rápido a archivos.

Page 12: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Ventajas• Utilizan hardware disponible en el mercado y de bajo coste.

• Su sistema de comunicación se basa en redes de área local rápidas.

• Son sistemas escalables, de manera que pueden ampliarse fácilmente. Además puede sustituirse fácilmente cada computador defectuoso sin afectar al grupo, lo cual hace que se gane en disponibilidad.

• Pueden utilizar software de libre distribución, abaratando aún más los costes.

Page 13: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Tipos de clúster En función de que cada computador del clúster esté o no exclusivamente dedicado a él, podemos clasificar los clústeres en:

• Beowulf (dedicado): Agrupa varios nodos minimalistas conectados placa a placa, que se dedican exclusivamente para tareas del clúster.

• NOW (no dedicado): Los equipos son computadores completos que pueden dedicarse a otras tareas distintas de las del clúster y que se comunican normalmente mediante un switch (conmutador) central.

En base a sus características podemos clasificar los clústeres:

•HPC - High Performance Cluster, Clúster de Alto Rendimiento.

•HAC - High Availability Cluster, Clúster de Alta Disponibilidad.

•HTC - High Throughput Cluster, Clúster de Alta Eficiencia.

Page 14: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Beowulf• Los nodos se conectan por medio de una red privada, y sólo el "nodo maestro" es visible desde el exterior.

• El nodo maestro está reservado para accesar, compilar y manejar las aplicaciones a ejecutar.

• Se puede configurar con cualquiera de la siguientes variantes:• Stand alone: Cada nodo tiene su propio sistema operativo.• Diskless: El sistema operativo reside en un solo nodo, por lo general en la máquina maestra.

Page 15: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Componentes Hardware• Front-end, también llamado servidor de gestión. Desde el front-end se distribuyen las tareas y trabajos a los nodos del clúster. Debido a que todos los nodos de cálculo dependen de él para recibir trabajos es conveniente dotarle de una infraestructura de Alta Disponibilidad o utilizar elementos hardware redundantes.

• Nodos de computación.

• Red de interconexión. Se suele utilizar redes Ethernet Gigabit ya que presenta un coste muy competitivo.

Page 16: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Componentes Software• Sistema Operativo. El más utilizado es Linux, en sus distintas distribuciones.

• Herramientas para programación paralela. Incluye herramientas de desarrollo en distintos lenguajes, librerías para la paralelización como MPI y PVM.

• Software de gestión de colas, herramientas de administración y monitorización.

• Software específico de cálculo.

Page 17: Computadoras de Alto Rendimiento (HPC) ING. SERGIO CHIRINO TEJEDA

Funcionamiento1. Un usuario se conecta al front-end y lanza un cálculo (trabajo).

2. El front-end envía el trabajo a los nodos de computación solicitados.

3. Los nodos ejecutan las operaciones y al terminar enviarán los resultados de nuevo al front-end.

4. El front-end se encarga de presentar el resultado final al usuario.