Logo Studenta

SD1-23-2-TéllezGonzálezJorgeLuis-Sintesis2

¡Estudia con miles de materiales!

Vista previa del material en texto

OpenMP
Niveles de
Paralelismo
Tecnologías de
HPC
Aceleración y
paralelización del
procesamiento de datos
y algoritmos.
Hilo: unidad atómica de
ejecución.
Worker: hilos que trabajan
bajo el modelo SIMD.
Vector: hilos que trabajan al
mismo tiempo síncronamente.
Gang: Grupo de workers,
donde cada gand trabaja
independientemente.
Emplea memoria
compartida dividiendo
una aplicación en tareas
asignadas a hilos que
comparten memoria.
Simulación y análisis .
Inteligencia Artificial.
Optimización de código.
RADIOSS para resistencia
de diseños.
Procesamiento de datos.
Aplicaciones
Del modelo Fork-Join con
decoraciones en código fuente,
llamadas y planificación de
bibliotecas y conf. run-time.
Ocultación de
complejidad
CUDA
Tecnología desarrollada por
NVIDIA para el desarrollo de
aplicaciones paralelas
eficientes en C++,
permitiendo usar la GPU
para los cálculos
matemáticos complejos, es
decir, para aquellas partes
que para una CPU resultaría
tardado de ejecutar.
Implementada a nivel
Hardware en sus GPUs.
MPI
API utilizada para entornos
HPC que permite escribir
programas ejecutables en
múltiples procesos,
proporcionando
comunicación,
sincronización y grupos de
procesos.
Aplicaciones
Modelado de clima y
predicción de tiempo.
Análisis financiero de
riesgos
Simulaciones de
Ingeniería
Minería de Datos y
Aprendizaje Auto.
Operación
Divide tareas en tareas
fragmentadas por
distintos procesos, los
cuales se comunican por
mensajes específicos
para coordinar la
ejecución de las tareas.
Especificación de un
conjunto de directivas
de compiladores,
bibliotecas y variables
de entorno. Usable en
C/C++/Fortran.
Modelo
Participan en su
desarrollo Intel, IBM,
Nvidia, Microsoft, ANSYS
y MathWorks. Soportado
por VSCode,
Codeblocks...
Empresas
Representa un estándar
"de facto" de
comunicación para
programación paralela
con el fin de unificar
bibliotecas de
comunicación entre
sistemas distribuidos
heterogéneos.
Propósito
OpenACC
Estándar de programación
para la aceleración de
aplicaciones con
paralelismo implícito:
directivas de compilación
que aceleran la ejecución
por medio de GPUs.
Características
De uso simple, códigos
reducidos y con posibilidad de
incrementar x10 el rendimiento
de múltiples programas. Así
mismo, es portable a distintas
plataformas. Con compiladores
libres como OpenARC y
privativos como PGI y Cray.
Aplicaciones
Big Data en campos
científicos como química,
ciencia o matemáticas
aplicadas.
Análisis de Datos a gran
escala.
Optimización de software
serial.
Docencia de aplicaciones
potenciadas por GPUs.
CUDA se implementa a nivel
hardware en las GPUs. En
ellas, cada núcleo tiene
recursos compartidos,
registros y memoria. La
memoris compartida
integrada en los chips
gráficos permite que cada
núcleo comparta dtos sin
pasar por un bus de
memoria.
Hardware
Aplicaciones
Inteligencia Artificial en
algoritmos de ML, redes
neuronales, visión
computacional y
procesamiento de lenguaje
natural.
Cómputo de alto rendimiento
y simulaciones de Ingeniería
de alta complejidad.
Videojuegos y cálculo de
físicas.
La programación de cómputo de alto rendimiento consiste en la paralelización del software y hardware en entornos específicos que involucren cálculos complejos y procesamiento de volúmenes altos de datos.
Estas tecnologías proveen herramientas de programación paralela (OpenMP, MPI, OpenACC y CUDA) para aprovechar de manera óptima la capacidad de procesamiento de múltiples núcleos de procesamiento y
GPUs.
El cómputo de alto rendimiento se utiliza para procesar grandes conjuntos de datos y realizar cálculos complejos de manera eficiente y rápida, lo que lo convierte en una herramienta esencial para la investigación
científica, la resolución de problemas de ingeniería, la Minería de Datos y la programación de videojuegos.

Otros materiales