La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Computadoras de Alto Rendimiento (HPC)

Presentaciones similares


Presentación del tema: "Computadoras de Alto Rendimiento (HPC)"— Transcripción de la presentación:

1 Computadoras de Alto Rendimiento (HPC)
Ing. Sergio Chirino Tejeda

2 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.

3 Aplicaciones Economía.
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.

4 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. computador paralelo :un conjunto de elementos de proceso independientes que operan de forma conjunta para resolver problemas de elevado coste computacional en un tiempo razonable

5 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á: relación entre el tiempo que necesita un procesador (ts) y el tiempo que necesitan M procesadores idénticos para realizar el mismo trabajo. La aceleración no crece linealmente con el número de procesadores, sino que tiende a saturarse.

6 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.

7 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. Así, para calcular el sumatorio de diez términos 𝑠= 𝑁=1 10 𝑎𝑁 podemos dividir el problema en dos sumatorios de cinco términos y mandarlo a dos procesadores que actúen de forma concurrente. La variable a es una constante que se encuentra almacenada en el mismo espacio de memoria al que acceden las dos ejecuciones concurrentes.

8 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. Para calcular el sumatorio anterior, tal como se muestra en la figura, todos los procesadores ejecutan una copia del programa, realizando comunicaciones periódicas para intercambiar resultados, y accediendo cada uno a su espacio de memoria para leer las distintas copias de la constante a.

9 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 Los desafíos de HPC son similares a los de la computadora personal en su época.

10 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. Para almacenar la gran cantidad de información necesaria para la investigación, procesarla y visualizarla, se precisa una gran potencia de cálculo. La supercomputación es la herramienta que provee de esa potencia de cálculo al proyecto de investigación. Existen gran variedad de tecnologías y configuraciones, y por tanto, más de una clasificación posible. La siguiente división es una de ellas: El término grid se refiere a una infraestructura que permite la integración y el uso colectivo de ordenadores de alto rendimiento, redes y bases de datos que son propiedad y están administrados por diferentes instituciones. Su propósito es facilitar la integración de recursos computacionales heterogéneos.

11 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.

12 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.

13 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.

14 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.

15 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.

16 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.

17 Funcionamiento Un usuario se conecta al front-end y lanza un cálculo (trabajo). El front-end envía el trabajo a los nodos de computación solicitados. Los nodos ejecutan las operaciones y al terminar enviarán los resultados de nuevo al front-end. El front-end se encarga de presentar el resultado final al usuario.


Descargar ppt "Computadoras de Alto Rendimiento (HPC)"

Presentaciones similares


Anuncios Google