Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

Presentación .

Nombre: Bryan José Mañón Colon


Matricula: 2019-7418
Fecha de entrega: 05/03/2021
Tema: 0506 Tarea 03

Materia: Programación paralela


Desarrollar el siguiente esquema

Clasificacion de Flynn

Esta taxonomía enuncia 4 clasificaciones las cuales son:

SISD:(Single Instruction Single Data) Esta clasificación se refiere a las computadoras tradicionales y secuenciales
en las cuales una instrucción a la vez se ejecuta sobre un único dato cada ciclo de reloj. Los datos en cuestión se
almacenan en una única memoria en la cual se usan técnicas como la segmentación para evitar errores de
fragmentación interna. Un ejemplo sencillo de estas computadoras son los antiguos mainframe basados en la
arquitectura de Von-Neumann.

MISD:(Multiple Instruction Single Data) Arquitectura que se refiere a múltiples instrucciones ejecutándose sobre
un único dato. Comúnmente se considera esta arquitectura poco práctica ya que en tiempo de ejecución la
efectividad del paralelismo requiere un múltiple flujo de datos y, además, el acceso concurrente a un mismo dato en
memoria puede ocasionar que un CPU tenga que esperar a que el recurso(dato) esté disponible para poder acceder
a él.

SIMD:(Single Instruction Multiple Data) Esta arquitectura representa la ejecución de una misma instrucción sobre
un conjunto de datos. La misma es comúnmente vista en ciclos de programación que ejecutan una misma
instrucción una y otra vez sobre datos de un arreglo o conjunto de datos. En la arquitectura SIMD estos datos son
procesados por múltiples CPU que ejecutan la misma instrucción sobre una parte del conjunto o arreglo, cada uno,
hasta llegar a procesar la totalidad de los mismos.

MIMD:(Multiple Instruction Multiple Data) Esta arquitectura representa a un conjunto de instrucciones que se
ejecutan sobre un conjunto múltiple de datos. La misma es muy usada hoy en día para explotar el paralelismo ya
sea con memoria distribuida y memoria compartida o híbridos como los clústers de computadoras. Muchos
multiprocesadores modernos (como los de la tecnología Core i de Intel) entran en esta clasificación.
Modelo basado en la organizacion de la Memoria

-SIMD-Memoria Compartida
- SIMD-Memoria Distribuida
- MIMD-Memoria Compartida
- MIMD-Memoria Distribuida
- MIMD-Memoria Distribuida-Compartida

Modelo basado en la Coordinación

Los sistemas de administración del conocimiento (KMS) tienen como objetivo administrar
y almacenar el conocimiento organizacional, de manera que después pueda ser utilizado para
aprender, resolver problemas y como apoyo en la toma de decisiones, Además
facilita el ahorro de tiempo y dinero, permitiendo conocer los errores y aciertos del pasado para
mejorar el presente sin repetir esos errores y tomando ventaja de las “lecciones aprendidas”.

Paso de mensajes

En ciencias de la computación, el paso de mensajes es un paradigma de programación ampliamente usado


en el software moderno. Sus aplicaciones cubren un amplio campo, y puede usarse desde para garantizar
que los diferentes objetos que constituyen un programa informático puedan trabajar de forma coherente entre
ellos hasta para permitir que una tarea pueda ejecutarse de forma sincronizada entre varios ordenadores. Es
uno de los conceptos clave en modelos de programación concurrente, programación distribuida y
programación orientada a objetos.

Exclusión Mutua

Los algoritmos de exclusión mutua (comúnmente abreviada como mutex por mutual exclusion) se usan en
programación concurrente para evitar que entre más de un proceso a la vez en la sección crítica. La sección
crítica es el fragmento de código donde puede modificarse un recurso compartido.

La mayor parte de estos recursos son las señales, contadores, colas y otros datos que se emplean en la
comunicación entre el código que se ejecuta cuando se da servicio a una interrupción y el código que se
ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se toman las
precauciones debidas, una interrupción puede ocurrir entre dos instrucciones cualesquiera del código normal
y esto puede provocar graves fallos.

Redes de Interconexión para Maquinas a Memoria Compartida

En una conocida clasificación presentada por Flynn allá por el inicio de la década de los 70 [1], los
ordenadores se dividen en función del tipo del flujo de control flujo de datos que poseen. Es precisamente en
esta división cuando aparecen por primera vez las máquinas paralelas divididas en tres clases. De estas tres
clases, la más general y que ofrece mayor paralelismo es la que sigue el esquema MIMD, es decir, laque
está basada en tener múltiples procesadores cada uno de ellos trabajando sobre diversos datos.
Aunque este tipo de modelo de paralelismo es el más complejo, es el que se ha impuesto últimamente y
sobre el que vamos a desarrollar nuestros conceptos delas redes de interconexión. Al tener una máquina
paralela diversos procesadores surgen la necesidad de comunicar información entre ellos de cara a resolver
un problema común. Dicha comunicación puede realizarse de dos maneras:

a) Compartiendo un recurso, como por ejemplo un dato común en una memoria común.
b) Mediante el envío de la información por medio de un mensaje.
Redes de Interconexión para Maquinas a Memoria Distribuida

La programación con threads es inherentemente asíncrona sin necesidad de utilizar los antiguos
esquemas de operaciones asíncronas (interrupciones, signals, excepciones). La manera más sencilla de
sincronización entre threads es a través de memoria compartida [BIRR89]. Esto implica una
diferenciación explícita entre threads de la misma task y threads de tasks diferentes, que se comunican a
través de mensajes.
El control de flujos a la espera de un recurso puede realizarse mediante esperas activas
(spin-locks o spinning) o bloqueando al flujo en cuestión. Hay que considerar, sin embargo, el
peligro de trabajar con esperas activas si no existe paralelismo real en la aplicación, ya que podría
caerse sin remisión en un bucle infinito, o self-deadlock. Por lo mismo, de cara a la portabilidad de
las aplicaciones, es importante el control de las exclusiones mutuas ocultas que pueden darse en
una programación que asume una ejecución en monoprocesadores.

También podría gustarte