Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CP Trabajo de Investigacion Unidad 1 EJ2022
CP Trabajo de Investigacion Unidad 1 EJ2022
Cómputo Paralelo
“Algoritmia Concurrente”
Clúster HPC
La computación de alto rendimiento (HPC) representa la capacidad de procesar datos y
realizar cálculos complejos a velocidades muy altas. Para ponerlo en perspectiva, un
equipo portátil o de sobremesa con un procesador de 3 GHz puede realizar unos 3.000
millones de cálculos por segundo. Aunque esto es mucho más rápido de lo que puede
lograr cualquier humano, palidece en comparación con las soluciones HPC que pueden
realizar cuadrillones de cálculos por segundo.
Alta disponibilidad: este es uno de los grandes beneficios de la tecnología de clustering, es decir,
ofrecer un mejor uptime de servidores gracias a que si falla uno, el resto tomará el trabajo
ofreciendo así una alta disponibilidad del servicio.
Alta velocidad de despacho: se obtiene gracias al equilibrio de las cargas, haciendo que los
servidores que reciben las solicitudes de los clientes puedan despachar los datos de forma
inmediata, sin delays ni retrasos de ningún tipo.
Balanceo de carga: se establecen diferentes métodos de balanceo de carga, haciendo que una o
varias peticiones se deriven a determinados hosts, mientras que otras irán destinadas a otro
grupo de servidores bajo el clúster. Esto hace que ningún servidor se vea saturado.
Escalabilidad: la mayoría de los clúster de servidores soportan escalabilidad de forma horizontal,
permitiendo agregar más servidores de forma masiva según se necesite debido a una posible
creciente demanda de parte de los usuarios.
Resistencia ante ataques DDOS: tener un clúster de servidores ofrece un beneficio adicional de
soportar mejor las cargas de sistema que se originan ante ataques DDOS masivos, donde se
suelen inundar los servidores con peticiones no deseadas. El uso de múltiples servidores puede
ayudar a resistir mejores diferentes tipos de ataque destinados a agotar los recursos de sistema o
red.
Memoria Compartida
Memoria Distribuida
Los sistemas de memoria distribuida o multicomputadores pueden ser de dos tipos
básicos. El primer de ellos consta de un único computador con múltiples CPUs
comunicadas por un bus de datos mientras que en el segundo se utilizan múltiples
computadores, cada uno con su propio procesador, enlazados por una red de
interconexión más o menos rápida.
Tipos de paralelismo
Pipiline
La calificación de flynn
Esta es una de otros tipos de clasificaciones que fueron surgiendo gracias al crecimiento
del procesamiento paralelo, comenzando desde el procesamiento en paralelo atreves de
multicomputadoras gracias a las redes de computadoras, hasta lo que hoy en día se
puede lograr en una sola computadora gracias a los sistemas multicore.
Ley de amdhal
Es llamada así por el arquitecto de ordenadores Gene Amdahl, se usa para averiguar la
mejora máxima de un sistema cuando solo una parte de éste es mejorado. Establece que:
La mejora obtenida en el rendimiento de un sistema debido a la alteración de uno de sus
componentes está limitada por la fracción de tiempo que se utiliza dicho componente. El
incremento de velocidad de un programa utilizando múltiples procesadores
en computación distribuida está limitada por la fracción secuencial del programa.
Throughput
Es la velocidad con que el sistema genera dinero (convierte los inventarios en ingreso
efectivo) a través de las ventas. Es muy importante entender con claridad la diferencia
entre el tradicional concepto de contribución y el concepto del Throughput.
Overhead
Speedup
Eficiencia y Escalabilidad
La eficiencia es una comparación del grado de speed-up conseguido frente al valor
máximo. Dado que 1 ≤ S(n) ≤ n, tenemos 1/n ≤ E(n) ≤ 1. La eficiencia m´as baja (E(n) → 0
corresponde al caso en que todo el programa se ejecuta en un único procesador de forma
serie. La eficiencia máxima (E(n) = 1) se obtiene cuando todos los procesadores están
siendo completamente utilizados durante todo el periodo de ejecución.
Ejercicio:
1. Sea un conjunto de n = 1000 operaciones a distribuir para ser realizadas entre p
= 10 procesadores. El tiempo promedio para realizar cada operación puede ser
estimado en t1 = 1.0; el tiempo mínimo t1min = 0.5 y el tiempo máximo t1max = 2.0.-
Supóngase:
2. Estimar teóricamente el speedup y la eficiencia del programa para cálculo del número π y
calcular esas medidas a partir de los tiempos registrados al correr el programa.
ts n t ts 1000 2
tp
tp
Cálculo de Speedup:
Sp Sp
tp tp0 t1 tg
1
tp
0
p
1
tp chunks
1000
0
10
tp 50 1 0.1 55
Cálculo de Speedup:
Sp Sp
Conclusión:
Sp p
Ep 1
ts 0 . 0032222
tp 0 . 0011818
Sp Sp 0 . 0032222
0 . 0011818
2 . 7265
2 . 7265
Ep Ep
Conclusiones:
El Speedup y la Eficiencia calculados son menores a los valores teóricos
debido a la perdida por paralelismo. Esto es, a medida que aumentamos
la cantidad de procesadores para realizar los cálculos tanto el speedup y
la eficiencia disminuyen debido a que en la práctica intervienen en los
tiempos del cálculo en paralelo, los tiempos de comunicación y
coordinación entre todos los procesadores.
- Estimación teórica del Speedup y la EficienciaDatos:
Latencia = 45 [µseg.] *
Ancho de Banda = 130 [Mbyte/seg.] *
Velocidad del Procesador = 3000 [MHz.] **
Conclusiones:
Vemos que en el caso de n = 10.000 y n = 100.000 los tiempos de
cálculo en forma secuencial son menores a los calculados en forma
paralela, dado los costos de tiempo comunicación y coordinación entre
los procesadores.
Como podemos ver en la Tabla Resumen 1 - Tiempos Calculados
Teóricamente, el tiempo de cálculo se reduce a medida que
empleamos más procesadores para realizar las cuentas, pero los costos
de comunicación y coordinación entre los procesadores, son un costo fijo
que tenemos, que en los casos mencionados la suma de estos es mayor
al tiempo de cálculo secuencial. También hay que tener en cuenta que el
problema en si es sencillo de calcular y vemos que los tiempos medidos
son del orden de los µseg.
Recién en el caso de n = 1.000.000 vemos que los tiempos de cálculo en
paralelo son menores a los calculados en forma secuencial, excepto en
el caso de p = 16 procesadores, ya que volvemos a caer en el exceso de
tiempos por comunicación y coordinación entre los 16 procesadores.
Bibliografía
https://www.classicistranieri.com/es/articles/a/r/q/Arquitectura_en_pipeline_%28inform%C3%A1t
ica%29.html
Borges, E. (2019, abril 30). Servidor en Clúster - ¿Qué es? Características y Tipos de Clúster. Infranetworking.
https://blog.infranetworking.com/servidor-en-cluster/
https://arquitecturadecomputadora.wordpress.com/2013/06/07/computacion-paralela/
de http://itcv-arquitectura-de-computadoras.blogspot.com/2014/11/44-sistemas-de-memoria-
distribuida.html
https://www.monografias.com/trabajos93/throughput-diapositivas/throughput-diapositivas
Jacovix, & Perfil, V. T. mi. (s/f). Arquitectura de computadoras II. Blogspot.com. Recuperado el 7 de marzo de
2022, de http://arqcom14.blogspot.com/2014/05/clasificacion-de-flynn.html
https://www.ecured.cu/Ley_de_Amdahl
NetApp. (2019). ¿Qué es la computación de alto rendimiento (HPC)? ¿Cómo funciona? Netapp.com; NetApp.
https://www.netapp.com/es/data-storage/high-performance-computing/what-is-hpc/
http://www.cenits.es/faq/preguntas-generales/que-es-la-memoria-compartida