Anda di halaman 1dari 49

Curso:

Computación Paralela y
Distribuida
Catedrático: Custodio Martínez Roberto
Procesos de Conversión de
Analógico a Digital.

Catedrático: Custodio Martínez Roberto


CRITERIOS DE EVALUACION FECHA DE APLICACIÓN
Cuadro Comparativo 10%
Mapa Mental 10%
Ejercicios 30%
28-Octubre -2019
Participación 20%
Examen 30%
Total 100%

Unidad 2: Procesos de Conversión de Analógico a Digital


Ejercicio 1:
Detección de expectativas
Duración total del ejercicio: 15 min.

1.- ¿Qué elementos integran la Arquitectura de Von Neumann?

2.- ¿Cómo esta conformada la taxonomía de Flynn?

3.-¿Qué operaciones se realizan en la CPU?

Unidad 2: Procesos de Conversión de Analógico a Digital


Se caracterizaba por guardar las instrucciones de los
procesos y los datos en una memoria electrónica, a
diferencia de cómo se modelaban los computadores de
la época a través de una conexión de cables

Unidad 2: Procesos de Conversión de Analógico a Digital


Componentes principales
Memoria
Unidad de control
Unidad Aritmética Lógica
Entradas/Salidas

Unidad 2: Procesos de Conversión de Analógico a Digital


Memoria de acceso aleatorio
• En la memoria de acceso aleatorio se almacenaban los
datos y los programas que estaban siendo ejecutados.

• Las instrucciones del programa son datos codificados


que le dicen al computador que es lo que tiene que
hacer.

• Los datos son simplemente información que será usada


por el programa.

Unidad 2: Procesos de Conversión de Analógico a Digital


Taxonomía de Flynn
Una Múltiples
instrucción instrucciones
Un
SISD MISD
dato
Múltiples
SIMD MIMD
datos

Unidad 2: Procesos de Conversión de Analógico a Digital


Single Instruction, Single Data (SISD)
Hay un elemento de procesamiento, que tiene acceso a un
único programa y a un almacenamiento de datos.

En cada paso, el elemento de procesamiento carga una


instrucción y la información correspondiente y ejecuta
esta instrucción. El resultado es guardado de vuelta en el
almacenamiento de datos. Luego SISD es el computador
secuencial convencional, de acuerdo al modelo de von
Neumann.

Unidad 2: Procesos de Conversión de Analógico a Digital


Multiple Instruction, Single Data (MISD)
Hay múltiples elementos de procesamiento, en el que cada
cual tiene memoria privada del programa, pero se tiene
acceso común a una memoria global de información.

En cada paso, cada elemento de procesamiento se obtiene la


misma información de la memoria y carga una instrucción de
la memoria privada del programa.

Unidad 2: Procesos de Conversión de Analógico a Digital


Multiple Instruction, Single Data (MISD)
Luego, las instrucciones posiblemente diferentes de cada
unidad, son ejecutadas en paralelo, usando la información
(idéntica) recibida anteriormente.

Este modelo es muy restrictivo y no se ha usado en ningún


computador de tipo comercial.

Unidad 2: Procesos de Conversión de Analógico a Digital


Single Instruction, Multiple Data (SIMD):
Hay múltiples elementos de procesamiento, en el que cada
cual tiene acceso privado a la memoria de información
(compartida o distribuida).

Sin embargo, hay una sola memoria de programa, desde la


cual una unidad de procesamiento especial obtiene y
despacha instrucciones.

En cada paso, cada unidad de procesamiento obtiene la


misma instrucción y carga desde su memoria privada un
elemento de información y ejecuta esta instrucción en dicho
elemento.

Unidad 2: Procesos de Conversión de Analógico a Digital


Single Instruction, Multiple Data (SIMD):
Entonces, la instrucción es síncronamente aplicada en
paralelo por todos los elementos de proceso a diferentes
elementos de información.

Para aplicaciones con un grado significante de paralelismo de


información, este acercamiento puede ser muy eficiente.
Ejemplos pueden ser aplicaciones multimedia y algoritmos
de gráficos de computadora.

Unidad 2: Procesos de Conversión de Analógico a Digital


Multiple Instruction, Multiple Data (MIMD):
Hay múltiples unidades de procesamiento, en la cual cada
una tiene tanto instrucciones como información separada.

Cada elemento ejecuta una instrucción distinta en un


elemento de información distinto. Los elementos de proceso
trabajan asíncronamente. Los clusters son ejemplo son
ejemplos del modelo MIMD.

Unidad 2: Procesos de Conversión de Analógico a Digital


Hacer un Cuadro Comparativo

• Hacer un cuadro
comparativo de la
taxonomía de Flynn
• Entregar Impreso la
próxima clase.

Unidad 2: Procesos de Conversión de Analógico a Digital


Uniform Memory Access (UMA):
• Lo más comúnmente representado hoy por las máquinas
Symmetric Multiprocessor (SMP).
• Procesadores idénticos.
• Igual acceso y tiempos de acceso a la memoria.
• Si un procesador actualiza una ubicación en memoria
compartida, todos los demás procesadores saben sobre la
actualización, esto es llamado coherencia del caché.

Unidad 2: Procesos de Conversión de Analógico a Digital


Memoria distribuida

• También llamado modelo de paso de mensajes


• requieren una red de comunicación para conectar la
memoria entre procesadores
• Las tareas intercambian datos por medio del paso y
recepción de mensajes
• Los procesadores tienen su propia memoria local. Las
direcciones de memoria en un procesador no se asignan a
otro procesador, por lo que no hay concepto de espacio de
direcciones global en todos los procesadores.

Unidad 2: Procesos de Conversión de Analógico a Digital


Memoria distribuida

• Debido a que cada procesador tiene su propia memoria


local, funciona independientemente. Los cambios que hace
en su memoria local no tienen ningún efecto en la memoria
de otros procesadores. Por lo tanto, el concepto de
coherencia de caché no se aplica.

• Cuando un procesador necesita acceso a los datos de otro


procesador, suele ser la tarea del programador definir
explícitamente cómo y cuándo se comunican los datos. La
sincronización entre tareas también es responsabilidad del
programador.

Unidad 2: Procesos de Conversión de Analógico a Digital


Memoria distribuida

Unidad 2: Procesos de Conversión de Analógico a Digital


Hibrido memoria distribuida-compartida
• Es la combinación entre memoria compartida y memoria
distribuida, con sus ventajas en común.
• Su principal ventaja es su escalabilidad.
• Su principal desventaja es que la complejidad de
programación aumenta.

Unidad 2: Procesos de Conversión de Analógico a Digital


Balanceador de carga
Se refiere a la práctica de distribuir cantidades
aproximadamente iguales de trabajo entre las tareas, de modo
que todas las tareas se mantengan ocupadas todo el tiempo.
Se puede considerar una minimización del tiempo de
inactividad de la tarea.

• Asignar el trabajo que recibe cada tarea equitativamente


• Puede ser un factor significativo en el desempeño del
programa
• A menudo requiere "serialización" de segmentos del
programa.

Unidad 2: Procesos de Conversión de Analógico a Digital


Asignación de trabajo dinámico
Ciertas clases de problemas producen desequilibrios de carga
incluso si los datos están distribuidos uniformemente entre las
tareas.
Cuando la cantidad de trabajo que realiza cada tarea es
variable o no se puede predecir, puede ser útil usar un
planificador - task pool approach. Cuando cada tarea termina
su trabajo, espera en una cola para obtener una nueva pieza de
trabajo.
Puede ser necesario diseñar un algoritmo que detecte y
maneje desequilibrios de carga como ocurren dinámicamente
dentro del código.

Unidad 2: Procesos de Conversión de Analógico a Digital


Asignación de trabajo dinámico

Unidad 2: Procesos de Conversión de Analógico a Digital


Las máquinas paralelas se caracterizan por replicar algunos de
sus componentes: unidades de procesamiento, unidades de
control, etc.
Además, es muy raro que la descomposición que uno haga de
una aplicación en tareas, conlleve a que estas sean
completamente independientes entre ellas.

Unidad 2: Procesos de Conversión de Analógico a Digital


En este caso se habla de dependencia de tiempo, es decir, un
procesador P1 debe culminar la ejecución de la tarea T1
antes que otro procesador P2 pueda comenzar la ejecución
de la tarea T2.
Normalmente, ellas deben comunicarse información para
cumplir sus trabajos, ya sea:
- Compartiendo recursos: datos en la memoria compartida,
etc.
- Por la transmisión de la información: envío de mensajes,
etc.

Unidad 2: Procesos de Conversión de Analógico a Digital


En el primer caso se necesita conectar directamente los
recursos compartidos (por ejemplo, la memoria compartida)
a los diferentes procesadores.
Estos recursos a su vez se pueden organizar de manera
paralela (por ejemplo, partir la memoria compartida en
bancos).

En el segundo caso se deben interconectar los procesadores


entre ellos, para poder intercambiar información. Así, en
ambos casos se requiere de redes de comunicación.

Unidad 2: Procesos de Conversión de Analógico a Digital


Entre más grande es el número de componentes, más
importante es la red de interconexión.

El problema en el diseño de redes de comunicación radica


en la densidad de comunicación que se requiere que ella
soporte.

Unidad 2: Procesos de Conversión de Analógico a Digital


Pase de Mensajes
Supongamos que tenemos un conjunto de procesos con su
propia memoria y datos. Los datos son intercambiados entre
los procesadores por medio de mensajes.

El mensaje es originado en un sitio (el procesador que envía),


transmitido a través de la red de interconexión, y recibido
en otro lugar (el procesador receptor).

Cualquier computador puede actuar como receptor o


puede enviar mensajes en un momento dado.

Unidad 2: Procesos de Conversión de Analógico a Digital


Pase de Mensajes
Para el sistema de pase de mensajes la red es un servidor, y
de acuerdo a la ubicación del que envía y del que recibe la
operación de comunicación puede hacerse más rápida o no.

Muchos trabajos se han hecho sobre los sistemas de pase de


mensajes para proveer redes de interconexión con
topologías eficientes, o librerías con rutinas optimizadas que
esconden los detalles de comunicación.

Unidad 2: Procesos de Conversión de Analógico a Digital


Pase de Mensajes
Básicamente, en un sistema de pase de mensajes cada
procesador debe:

- Conocer su dirección y la del resto de los procesadores de


la red.
- Poder crear y enviar mensajes.
- Poder recibir mensajes, remover los datos del mensaje y
manipularlos.

Unidad 2: Procesos de Conversión de Analógico a Digital


Pase de Mensajes
Además, las dos operaciones esenciales son:

• Rutina de enviar: usada para transmitir un mensaje al


nodo destino. Un mensaje es un conjunto de bytes
usualmente con la siguiente información: tamaño, nodo
destino y dato.

• Rutina de recepción: es usada para recibir mensajes.


Normalmente, cada nodo tiene una cola de los mensajes a
enviar y otra cola de los mensajes recibidos.

Unidad 2: Procesos de Conversión de Analógico a Digital


Pase de Mensajes
A este nivel se presentan nuevos problemas: por ejemplo,
¿Qué pasa si hay una instrucción de recepción y aun no se
tienen datos?
Normalmente, el proceso que recibe se debe bloquear
(esperar) ya que debe tener una razón para recibir esos
datos.
Otra forma es que no se bloquee, pero cada cierto tiempo
revisa si llegó un mensaje, o a través de una interrupción del
sistema se avisa que llegó un mensaje.

Unidad 2: Procesos de Conversión de Analógico a Digital


Hacer un Mapa Mental

• Hacer un Mapa Mental de


los temas vistos hasta
ahora.
• Entregar la próxima clases

Unidad 2: Procesos de Conversión de Analógico a Digital


Exclusión Mutua
En las máquinas a memoria compartida, la forma de
comunicarse dos procesadores es a través de la memoria
compartida entre ellos.

Esto implica que se debe controlar el acceso a la memoria


para que dos o más procesos no accedan al mismo tiempo la
misma dirección de memoria y se creen así situaciones de
inconsistencia (por ejemplo, datos modificados
simultáneamente por dos procesos distintos).

Unidad 2: Procesos de Conversión de Analógico a Digital


Exclusión Mutua
La situación en la que dos procesadores tratan de leer o
escribir al mismo tiempo en la misma localidad de memoria
es conocida como condición de competencia.

Una manera de resolver este problema es usando un


mecanismo ya conocido en los sistemas operativos, para
máquinas secuenciales, para compartir recursos y memorias
en ambientes de multiprogramación, la exclusión mutua, de
tal forma de garantizar que cuando un proceso usa un
espacio de memoria nadie más lo esté usando.

Unidad 2: Procesos de Conversión de Analógico a Digital


Exclusión Mutua
La parte de los procesos en la que se tiene acceso a la
memoria compartida se llama sección crítica, por lo cual se
deben establecer los mecanismo para que dos procesos
dados no acceden al mismo tiempo su sección crítica (así se
evitará la condición de competencia).

Existen dos operaciones atómicas que cada proceso puede


realizar:
- La operación DOWN verifica si el valor del semáforo es
mayor que 0, en cuyo caso lo disminuye y continúa. En caso
contrario, se va a dormir (esperar o bloquearse).

Unidad 2: Procesos de Conversión de Analógico a Digital


Exclusión Mutua
- La operación UP incrementa el valor del semáforo
correspondiente, y si uno o más procesos dormían por ese
semáforo (no pudieron completar la operación DOWN), el
sistema elige alguno de ellos (por ejemplo, en forma
aleatoria), y le permite desbloquearse y continuar (terminar
su ejecución de la operación DOWN).

Unidad 2: Procesos de Conversión de Analógico a Digital


Redes de Interconexión
Las máquinas paralelas pueden clasificarse tomando en
cuenta la conexión: si es directa entre los procesadores
(normalmente la red de interconexión es estática) o a través
de bancos de memorias compartidos (en este caso, la red de
interconexión es generalmente dinámica).

Así, se identifican dos tipos de máquinas paralelas, cuyo rol


de la red de interconexión en cada caso es diferente.

Unidad 2: Procesos de Conversión de Analógico a Digital


Redes de Interconexión
En el caso de la memoria compartida, con uno o varios
bancos de memoria, la red es usada para enlazar los bancos
de memoria con los procesadores; en el caso de la memoria
distribuida, la red es usada para enlazar los procesadores
entre ellos.

Unidad 2: Procesos de Conversión de Analógico a Digital


Memoria Compartida:
En las primeras computadoras a memoria compartida, todos
los procesadores podían acceder a toda la memoria.

Por supuesto, esto generaba cuellos de botellas para acceder


la memoria.

El siguiente paso fue dividir la memoria en bancos de


memoria, lo que requería una red de interconexión entre los
procesadores y los bancos de memoria.

Unidad 2: Procesos de Conversión de Analógico a Digital


Memoria Compartida:
Así, diferentes procesadores podían acceder diferentes
bancos al mismo tiempo.

Pero si el número de bancos y de procesadores es grande,


resulta costoso desde el punto de vista tecnológico, el
conectar directamente todos los bancos con los
procesadores.

Una solución es usar redes del tipo por etapas, lo que obliga
que para cada acceso a memoria, se debe recorrer una
secuencia de enlaces.

Unidad 2: Procesos de Conversión de Analógico a Digital


Memoria Compartida:
Si el número de procesadores y bancos crece, este tipo de
redes es inmanejable (muchas conexiones y latencia
inaceptable), por lo que se propuso la definición de redes
parciales, donde cada procesador sólo se conecta a ciertos
bancos (ya no hay un espacio global de direccionamiento y
dos procesadores pueden no tener bancos en común).

Unidad 2: Procesos de Conversión de Analógico a Digital


Memoria Distribuida:
Otra forma es conectar a los procesadores directamente
entre ellos (la memoria está distribuida entre los
procesadores), teniéndose así una máquina a memoria
distribuida sin espacio de direcciones globales.

Las principales diferencias entre las redes de máquinas a


memoria compartida y a memoria distribuida son:

- Ancho de Banda: es la cantidad de información transmitida


por unidad de tiempo, es decir, es el número de bits que
pueden ser transmitidos por unidad de tiempo.

Unidad 2: Procesos de Conversión de Analógico a Digital


Memoria Distribuida:
En las máquinas a memoria compartida se deben transmitir
un número de datos suficientes para alimentar a los
diferentes procesadores, por lo que debe ser grande el
ancho de banda; mientras que en las máquinas a memoria
distribuida es de órdenes de magnitud más pequeña.

- Latencia de la red: es el tiempo que necesita la red para


realizar el servicio pedido, es decir, es el tiempo para realizar
una transferencia a través de la red. En las máquinas a
memoria compartida debe ser pequeño, por lo que se deben
tener caminos cortos y rápidos de comunicación entre los
procesadores y los bancos.

Unidad 2: Procesos de Conversión de Analógico a Digital


Memoria Distribuida:
En las máquinas a memoria distribuida es menos crítico, y se
pueden tener caminos largos.

- Información a transmitir: clásicamente, en las máquinas a


memoria compartida se pueden transmitir datos,
instrucciones, direcciones de memoria; mientras que en las
máquinas a memoria distribuida se transmiten datos.

Unidad 2: Procesos de Conversión de Analógico a Digital


Otros Aspectos Comunicacionales
El enrutamiento es un mecanismo lógico o físico para
transmitir información desde una fuente a un destino,
cuando un conjunto de elementos de procesamiento se
deben comunicar en redes no completamente enlazadas
(sean estáticas o dinámicas).

Particularmente, es muy usado en las redes estáticas basadas


en pase de mensajes de gran dimensión. El algoritmo de
enrutamiento efectúa la escogencia del camino a seguir de
entre los posibles, de tal manera de evitar los conflictos y
compartir los recursos comunicacionales.

Unidad 2: Procesos de Conversión de Analógico a Digital


Otros Aspectos Comunicacionales
El enrutamiento es un mecanismo lógico o físico para
transmitir información desde una fuente a un destino,
cuando un conjunto de elementos de procesamiento se
deben comunicar en redes no completamente enlazadas
(sean estáticas o dinámicas).

Particularmente, es muy usado en las redes estáticas basadas


en pase de mensajes de gran dimensión. El algoritmo de
enrutamiento efectúa la escogencia del camino a seguir de
entre los posibles, de tal manera de evitar los conflictos y
compartir los recursos comunicacionales.

Unidad 2: Procesos de Conversión de Analógico a Digital


Otros Aspectos Comunicacionales

Algunos ejemplos son:

- Store and Forward


- Circuit switching Tarea: investigar los
- Worm-hole siguientes conceptos
- Virtual Cut Through
- Packet switching

Entregar a mano en su libreta


En la siguiente clase

Unidad 2: Procesos de Conversión de Analógico a Digital


Unidad 2: Procesos de Conversión de Analógico a Digital

Anda mungkin juga menyukai