Está en la página 1de 37

Instituto Tecnológico de Veracruz

Por:
INGENIERÍA EN SISTEMAS
Eduardo Augusto COMPUTACIONALES
Huitzitl Torres -
E15020563 Cómputo de alto de desempeño
David E. Rivera Presentación de Síntesis
Muñoz - E15020517 unidad 1
Veracruz, Ver.
Profesor: Marco Alberto Romo Medina
¿Qué es un clúster?
Introducción a HPC: ¿qué es un clúster?

Una computadora de alto rendimiento


adecuada para uso rudo, conectadas a una red
y coordinadas centralmente por algún software
especial. Debido a que las computadoras en el
ordenamiento casi siempre están físicamente
muy juntas, el término común para una
computadora de alto rendimiento hoy es un
clúster, Un conjunto de computadoras para
trabajar en grupo.
Cuando las personas hablan sobre el tamaño de
las HPC, por lo general NO se refieren a cuántos
núcleos tiene sino a procesadores, un término que
no podría ir bien,el término correcto serían los
nucleos.

Desde el principio, los procesadores


convencionales de compañías como Intel tenían
un "cerebro" Procesador. estos tienen circuitos
que se sumaron para formar uno solo, atascado
en un zócalo de la placa base de su computadora.
La tarjeta madre como comúnmente se le conoce.
Principales componentes de
un Clúster HPC
Componentes de un clúster

En general, un clúster necesita de software y hardware


para poder funcionar:

● nodos

● almacenamiento

● sistemas operativos

● conexiones de red

● middleware

● protocolos de comunicación y servicios

● aplicaciones

● ambientes de programación paralela


Componentes de un clúster
ALMACENAMIENTO:
NODOS:

El almacenamiento puede consistir en una NAS, una SAN, o


Pueden ser simples ordenadores, sistemas multiprocesador
almacenamiento interno en el servidor. El protocolo más
o estaciones de trabajo. El clúster puede estar conformado
comúnmente utilizado es NFS (Network File System),
por nodos dedicados o por nodos no dedicados, según sea
sistema de ficheros compartido entre servidor y los nodos.
necesario
Sin embargo existen sistemas de ficheros específicos para
clústeres diferentes como Lustre (CFS) y PVFS2.
En un clúster HCP con nodos dedicados, no son
computadoras convencionales, su uso está exclusivamente
Por Ejemplo: SATA: velocidades de 150, 300 y 600 MB/s
dedicado a realizar tareas relacionadas con el clúster. Por
otra parte, en un clúster con nodos no dedicados, los nodos
disponen de teclado, ratón y monitor y su uso no está NAS (Network Attached Storage) es un dispositivo específico
dedicado al almacenamiento a través de red (normalmente
exclusivamente dedicado a realizar tareas relacionadas con
el clúster. TCP/IP). Por su parte, DAS (Direct Attached Storage)
consiste en conectar unidades externas de almacenamiento
SCSI o a una SAN (storage area network: ‘red de área de
almacenamiento’) a través de un canal de fibra.

Mientras NAS permite compartir el almacenamiento, utilizar


la red, y tiene una gestión más sencilla, DAS proporciona
mayor rendimiento y mayor fiabilidad al no compartir el
recurso.
Componentes de un clúster

SISTEMA OPERATIVO: Conexiones de red.

Un sistema operativo debe ser multiproceso y Los nodos de un clúster pueden conectarse
multiusuario, para encajar perfectamente en las tareas
mediante una simple red Ethernet con placas
de demanda del clúster.
comunes (adaptadores de red o NICs), o
Otras características deseables son la facilidad de uso y utilizarse tecnologías especiales de alta
acceso. velocidad como Fast Ethernet, Gigabit Ethernet,
Myrinet, InfiniBand, SCI, etc.
● Un sistema operativo es un programa o conjunto
de programas de computadora destinado a
permitir una gestión eficaz y segura de sus
recursos.
● Comienza a trabajar cuando el gestor de
arranque carga en memoria su núcleo y gestiona
el hardware de la máquina desde los niveles más
básicos, permitiendo también la interacción con el
usuario.
Componentes de un clúster

MIDDLEWARE:
Ambientes de Programación Paralela

El middleware es un software, técnicamente que realiza las


funciones y tareas, comandado por los usuarios, como los Los ambientes de programación paralela permiten
programas que normalmente utilizamos. implementar algoritmos que hagan uso de recursos
compartidos: CPU, memoria, datos y servicios. También
● Una interfaz única de acceso al sistema, denominada ayudados por el middleware.
SSI (Single System Image).

● Herramientas para la optimización y mantenimiento


del sistema: migración de procesos, checkpoint-
restart (congelar uno o varios procesos, mudarlos de
servidor y continuar su funcionamiento en el nuevo
host), balanceo de carga, tolerancia a fallos, etc.;

● Escalabilidad: debe poder detectar automáticamente


nuevos servidores conectados al clúster para
proceder a su utilización.
Tipos de memoria
(compartida / distribuida)
Memoria Compartida/Distribuida

Estos sistemas son una creación híbrida. Ellos proveen la abstracción de memoria compartida en sistemas con memorias
distribuidas físicamente y consecuentemente combinan las mejores características de ambos enfoques. Debido a esto, el
concepto de memoria compartida distribuida es reconocido como uno de los enfoques más atractivos para la creación de
sistemas escalables, de alto rendimiento de sistemas multiprocesador.

La memoria compartida distribuida (DSM) es una abstracción utilizada para compartir datos entre computadores que no
comparten memoria física. Los procesos acceden a DSM para leer y actualizar, dentro de sus espacios de direcciones,
sobre lo que aparenta ser la memoria interna normal asignada a un proceso. Sin embargo, existe un sistema subyacente
en tiempo de ejecución que asegura de forma transparente qué procesos diferentes ejecutándose en computadores
diferentes observen las actualizaciones realizadas entre ellas. Es como si los procesos accedieran a una única memoria
compartida, pero de hecho la memoria física está distribuida.

DSM es fundamentalmente una herramienta para aplicaciones paralelas o para aplicaciones o grupos de aplicaciones
distribuidas en las que se puede acceder directamente a datos individuales que ellas comparten. En general, DSM es
menos apropiado para sistemas cliente-servidor, ya que los clientes ven al servidor como un gestor de recursos en forma
de datos abstractos que se acceden a través de peticiones (por razones de modularidad y protección).
Tipos de paralelismo.
El paralelismo
Aplicaciones El paralelismo es una forma de computación en la cual varios cálculos
pueden realizarse simultáneamente, basado en el principio de dividir los
Considerados anteriormente muy largos y problemas grandes para obtener varios problemas pequeños, que son
costosos se han podido solucionar.
posteriormente solucionados en paralelo. Hay varios tipos diferentes de
● Simulación de Montecarlo paralelismo:
● nivel de bit Se basa en el tamaño de la palabra que es capaz de manejar el
● Lógica combinacional (como las procesador. Mientras más grande el tamaño de la palabra menos instrucciones
técnicas de fuerza bruta) ejecuta el procesador para realizar una operación determinada.
● nivel de instrucción, Mecanismos de la arquitectura son utilizados entonces
● Graph traversal para ejecutar este tipo de paralelismo:
Pipelining
● Programación dinámica Superscalar

● Métodos de ramificación y poda ● de datos y de tarea. se enfoca en la distribución de los datos entre varios
procesadores.Se conoce también como paralelismo a nivel de lazos
● Modelo en grafo ● En este caso un programa paralelo que ejecuta cálculos distintos sobre el mismo
conjunto de datos o sobre datos diferentes.
● Simulación de autómata finito
Pipeline
Pipeline
Pipeline aplicable a casi cualquier tipo de proyecto que
requiera un mínimo de trabajo grupal. Su significado,
‘’cañería’’, hace referencia a la forma en que se
estructura dicho proceso organizativo para trabajar.

En la informática, el pipeline se emplea en


microprocesadores, tarjetas gráficas y software. Los
cálculos que se realizan en el proceso de programación
deben sincronizarse con un reloj para evitar los tramos
más recargados que se detectan entre dos registros.

Segmentar los cálculos, por lo tanto, permite mejorar la


frecuencia de trabajo. Este tipo de flujo de datos implica
que la salida de una fase es una entrada de otra. Así,
los diversos tramos o fases se encadenan a la manera
de una tubería, logrando agilizar el flujo a través de este
pipeline.
Clasificación de Flynn
Clasificación de Flynn
Las cuatro clasificaciones definidas por Flynn se basan en el número de
instrucciones concurrentes (control) y en los flujos de datos disponibles en la
arquitectura:

Una instrucción, un dato (SISD)

Computador secuencial que no explota el paralelismo en las instrucciones ni en


flujos de datos. Es la Arquitectura Von-Neumann. Un único procesador ejecuta
un sólo flujo de instrucciones para operar datos en una única memoria. Se
ejecuta una única instrucción y un dato en cada ciclo de reloj. Puede utilizar
técnicas de segmentación de pipelining.

Una instrucción, múltiples datos (SIMD)

Todas las unidades ejecutan la misma instrucción sincronizadamente, pero con


un datos distinto. Es un computador que explota varios flujos de datos dentro de
un único flujo de instrucciones para realizar operaciones que pueden ser
paralelizadas de manera natural. Puede ser de Arquitectura vectorial o
Arquitectura matricial.
Clasificación de Flynn
Múltiples instrucciones, un dato (MISD)

Poco común debido al hecho de que la efectividad de los múltiples


flujos de instrucciones suele precisar de múltiples flujos de datos. Sin
embargo, este tipo se usa en situaciones de paralelismo redundante,
como por ejemplo en navegación aérea, donde se necesitan varios
sistemas de respaldo en caso de que uno falle.

Múltiples instrucciones, múltiples datos (MIMD)

Varios procesadores autónomos que ejecutan simultáneamente


instrucciones diferentes sobre datos diferentes. Los sistemas
distribuidos suelen clasificarse como arquitecturas MIMD; bien sea
explotando un único espacio compartido de memoria, o uno distribuido.
Clasificaciones adicionales
También existe una extensión común a esta taxonomía que es:

● Un programa, múltiples datos (SPMD) - múltiples procesadores autónomos que trabajan simultáneamente
sobre el mismo conjunto de instrucciones (aunque en puntos independientes) sobre datos diferentes.
También se le llama 'un proceso, múltiples datos'.

● Múltiples programas, múltiples datos (MPMD) - múltiples procesadores autónomos que trabajan
simultáneamente sobre al menos dos programas independientes. Normalmente este sistema elige a un
nodo para ser el host o administrador, que corre el programa y otorga los datos a todos los demás nodos
que ejecutan un segundo programa. Esos demás nodos devuelven sus resultados directamente al
administrador. Un ejemplo podría ser la consola de Sony PlayStation 3, que tiene la arquitectura de
procesador SPU/PPU.
La ley de Amdahl
Ley de Amdahl
Según dice la ley de Amdahl:

-La mejora en el rendimiento de un sistema debido a la alteración de uno de sus componentes está limitada por la
cantidad de tiempo que se utiliza dicho componente.-

Ésta ley fue enunciada en 1967 por el arquitecto de computadores Gene Myron Amdahl.

Gene M. Amdahl nació en el año 1922 en Flandreau, Dakota del Sur. Trabajó para IBM, pero posteriormente abandonó la
compañía al no estar contento con el sistema burocrático mediante el cual funcionaba la misma. A partir de 1970 creó la
Amdahl Corporation para competir con IBM. Sus desarrollos en ésta compañía obligaron a IBM a emplear un mayor
presupuesto en investigación para poder ser competitivos. Sin embargo, en 1980, abandonó su propia compañía para
fundar Trilogy Systems, especializada en el diseño de ordenadores de alta capacidad con un alcance de procesamiento
mucho mayor que el ofrecido por cualquier producto de IBM o Amdahl Corp. hasta ése momento. Después fundó otras dos
compañías especializadas en la fabricación de microchips, pero no consiguió que ninguna de las dos funcionase.
Ley de Amdahl
La ley de Amdahl no solo es un enunciado
teórico. La mejora implicada de un componente
se puede cuantificar mediante la siguiente
ecuación:

A es la aceleración o ganancia de un sistema


con la mejora, también llamado speed-up; Fm
es la fracción de tiempo que se emplea la
mejora introducida; y Am es el factor de mejora.
Throughput y Overhead.
Throughput y Overhead
Throughtput Sobrecoste (Overhead)

La tasa de transferencia efectiva (en inglés throughput) En informática, sobrecoste es el exceso de tiempo de
es el volumen de trabajo o de información neto que fluye computación, memoria, ancho de bando u otros
a través de un sistema, como puede ser una red de recursos, que son necesarios para realizar una tarea
computadoras. específica.

Es particularmente significativo en almacenamiento de Este sobrecoste puede ser un factor decisivo en el


información y sistemas de recuperación de información, diseño de un software en lo que se refiere a su
en los cuales el rendimiento se mide en unidades como estructura, corrección de errores e inclusión de nuevas
accesos por hora. características.

La tasa de transferencia​ también se define como la Algunos ejemplos del sobrecoste en computación
velocidad real de transporte de datos a través de una incluyen la llamada a una función, la transferencia de
red telemática, la cual normalmente se mide en información o el procesamiento de las estructuras de
megabits por segundo y siempre será inferior al ancho datos.
de banda.
SpeedUp, Eficiencia y
Escalabilidad
SpeedUp, Eficiencia y Escalabilidad
Speedup es un proceso realizado La eficiencia es una comparación del Escalabilidad.
para mejorar el rendimiento de un grado de speed-up conseguido frente
sistema que procesa un problema al valor máximo del tiempo de Un sistema se dice que es escalable para
determinado. Más técnicamente, es la ejecución. un determinado rango de procesadores
[1... n], si la eficiencia E(n) del sistema se
mejora en la velocidad de ejecución de
mantiene constante y en todo momento
una tarea ejecutada en dos Dado que 1 ≤ S(n) ≤ n, tenemos 1/n ≤
por encima de un factor 0.5. Normalmente
arquitecturas similares con diferentes E(n) ≤ 1. La eficiencia más baja E(n)
todos los sistemas tienen un determinado
recursos. La noción de speedup fue 0 corresponde al caso en que todo el número de procesadores a partir del cual
establecida por la ley de Amdahl, que programa se ejecuta en un único la eficiencia empieza a disminuir de forma
estaba dirigida particularmente a la procesador de forma serie. La más o menos brusca.
computación paralela. Sin embargo, la eficiencia máxima E(n) = 1, se obtiene
speedup se puede usar más cuando todos los procesadores están Un sistema es más escalable que otro si
generalmente para mostrar el efecto siendo completamente utilizados este número de procesadores, a partir del
en el rendimiento después de durante todo el periodo de ejecución cual la eficiencia disminuye, es menor que
cualquier mejora en los recursos. el otro.
Speed-up Sp = T1 / Tp T1 :

tiempo de ejecución para un algoritmos secuencial

Tp : tiempo de ejecución para un algoritmo paralelo (con p procesadores) Speed-


up lineal Desempeño en el procesamiento paralelo

Sp = p Eficiencia Ep = Sp / p = T1 / pTp
Ejemplifique
aplicando las técnicas de Algoritmia Concurrente
en la elaboración de un producto, ilustre el
diagrama de
estados, el diagrama de actividades en función
del tiempo,
etc...
Equipo 06
Eduardo Augusto Huitzitl Torres

David E. Rivera Muñoz


Bibliografía
https://insidehpc.com/hpc101/intro-to-hpc-whats-a-cluster/

https://es.wikipedia.org/wiki/Clúster_(informática)#Componentes_de_un_clúster

https://sites.google.com/site/sistemasoperativospaty/unidad-4/unidad-4-memoria-compartida-distribuida

http://sistemasod.blogspot.com/2012/10/unidad-3-paralelismo.html

https://definicion.de/pipeline/

https://idus.us.es/xmlui/bitstream/handle/11441/80809/WAOTFG_177.pdf?sequence=1&isAllowed=y

https://es.wikipedia.org/wiki/Taxonomía_de_Flynn

https://instintobinario.com/la-ley-de-amdahl/

https://es.wikipedia.org/wiki/Sobrecoste_(informática)

https://www.uv.es/varnau/OC_T4.pdf

También podría gustarte