Está en la página 1de 7

SECRETARA DE EDUCACIN PBLICA TECNOLGICO

NACIONAL DE MXICO
INSTITUTO TECNOLGICO DE CIUDAD MADERO

Ingeniera en Sistemas Computacionales Dra. Claudia Guadalupe Gmez Santilln


UNIDAD1. Principios de Programacin Paralela Fecha: 30 de Agosto 2017
Nombre del Alumno: ___Del Angel Lara Gustavo_____________________________

Ejercicio 2. Construya un glosario de trminos con las secciones: Conceptos y Terminologa


(Entrega mircoles 30 de agosto) y arquitecturas de memoria de las computadoras compartidas (entrega
jueves 31 de agosto). Se har una participacin escrita el viernes 1 Septiembre.

GLOSARIO C O N C E P T O S Y T E R M I N O L O G I A
Arquitectura Von Neumann. Diseo bsico de una computadora llamado por el genio hngaro John
von Neumann .Compuesto de cuatro componentes principales: Memoria, Unidad de control, Unidad
aritmtica lgica, De entrada y salida.
Memoria. Lectura / escritura, la memoria de acceso aleatorio se utiliza para almacenar tanto las
instrucciones del programa como los datos
Unidad de control. Recupera las instrucciones / datos de la memoria, decodifica las instrucciones y
luego coordina secuencialmente las operaciones para realizar la tarea programada.
Unidad aritmtica lgica. Realiza operaciones aritmticas bsicas
Entrada / Salida. Es la interfaz para el operador humano.
Taxonoma de Flynn. Distingue arquitecturas de procesadores mltiples de acuerdo a cmo se
pueden clasificar a lo largo de las dos dimensiones independientes de Secuencia de Instruccin y
Secuencia de Datos .Cada una de estas dimensiones puede tener slo uno de dos posibles estados:
Single o Multiple.
Instruccin nica, Datos nicos (SISD): Un ordenador en serie (no paralelo). Instruccin nica: La
CPU slo acta una secuencia de instrucciones durante cualquier ciclo de reloj. Datos nicos: Slo
se utiliza un flujo de datos como entrada durante cualquier ciclo de reloj
Instruccin nica, datos mltiples (SIMD): Un tipo de computadora paralela. Instruccin nica:
Todas las unidades de procesamiento ejecutan la misma instruccin en cualquier ciclo de reloj dado.
Mltiples Datos: Cada unidad de procesamiento puede operar sobre un elemento de datos diferente
Instruccin Mltiple, Datos nicos (MISD): Un tipo de computadora paralela Instruccin mltiple.
Cada unidad de procesamiento opera sobre los datos de forma independiente a travs de flujos de
instrucciones separados. Datos nicos: Un solo flujo de datos es alimentado en mltiples unidades
de procesamiento.
Instrucciones Mltiples, Mltiples Datos (MIMD): Un tipo de computadora paralela. Instruccin
mltiple: Cada procesador puede ejecutar una secuencia de instrucciones diferente. Mltiples datos:
Cada procesador puede estar trabajando con un flujo de datos diferente.
Supercomputacin / Computacin de Alto Rendimiento (HPC). Uso de las computadoras ms
rpidas y ms grandes del mundo para resolver grandes problemas.
Nodo. Una computadora compuesta de mltiples CPUs / procesadores / ncleos, memoria, interfaces
de red, etc. Los nodos estn conectados en red para formar un superordenador.

CPU / Socket / Procesador / Ncleo. Es un nodo con mltiples CPUs, cada uno con mltiples
ncleos.
Tarea. Una seccin lgicamente discreta de trabajo computacional. Una tarea es tpicamente un
programa o un programa de conjunto de instrucciones que es ejecutado por un procesador. Un
programa paralelo consiste en varias tareas que se ejecutan en varios procesadores.
Pipelining. Romper una tarea en pasos realizados por diferentes unidades de procesador, con
entradas que fluyen a travs de, al igual que una lnea de montaje; Un tipo de computacin paralela.
Memoria compartida. En hardware describe una arquitectura de computadora donde todos los
procesadores tienen acceso directo (normalmente basado en bus) a la memoria fsica comn. En un
sentido de programacin, describe un modelo en el que las tareas paralelas tienen todas la misma
"imagen" de memoria y pueden direccionar y acceder directamente a las mismas ubicaciones de
memoria lgica independientemente del lugar donde realmente existe la memoria fsica.
Multi-procesador simtrico (SMP). Arquitectura de hardware de memoria compartida en la que
mltiples procesadores comparten un solo espacio de direcciones y tienen igual acceso a todos los
recursos.
Memoria distribuida. En hardware, se refiere al acceso de memoria basado en la red para la
memoria fsica que no es comn. Como modelo de programacin, las tareas slo pueden "ver" la
memoria de la mquina local y deben utilizar las comunicaciones para acceder a la memoria en otras
mquinas en las que se estn ejecutando otras tareas.
Comunicaciones. Las tareas paralelas normalmente necesitan intercambiar datos. Hay varias
maneras en que esto se puede lograr, por ejemplo a travs de un bus de memoria compartida o a
travs de una red, sin embargo el evento real de intercambio de datos se denomina comnmente
comunicaciones independientemente del mtodo empleado.
Sincronizacin. La coordinacin de tareas paralelas en tiempo real, muy a menudo asociadas a las
comunicaciones. A menudo se implementa estableciendo un punto de sincronizacin dentro de una
aplicacin donde una tarea no puede continuar hasta que otra tarea (s) alcanza el mismo punto o
lgicamente equivalente.
Granularidad. En el clculo paralelo, granularidad es una medida cualitativa de la relacin de clculo
a comunicacin.
Coarse: cantidades relativamente grandes de trabajo computacional se realizan entre eventos
de comunicacin
Fine: cantidades relativamente pequeas de trabajo computacional se realizan entre eventos
de comunicacin

La aceleracin observada La aceleracin observada de un cdigo que ha sido paralelizado, definido


como:
Hora del reloj de pared de ejecucin en serie
Uno de los indicadores ms simples y
ampliamente utilizados para el desempeo de ---------------------------------------------------------------
un programa paralelo. Tiempo de reloj de pared de ejecucin paralela

Sobrecarga paralela. La cantidad de tiempo necesario para coordinar las tareas paralelas, en lugar
de hacer un trabajo til. La sobrecarga paralela puede incluir factores tales como:
Tiempo de inicio de la tarea
Sincronizaciones
Transmisin de datos
Sobrecarga de software impuesta por lenguajes paralelos, bibliotecas, sistema operativo, etc.
Tiempo de terminacin de la tarea

Masivamente paralelo. Se refiere al hardware que comprende un sistema paralelo dado - que tiene
muchos elementos de procesamiento. El significado de "muchos" sigue aumentando, pero en la
actualidad, las computadoras paralelas ms grandes estn formadas por elementos de
procesamiento que van de cientos de miles a millones.

Embarrassingly Parallel. Resolver muchas tareas similares, pero independientes simultneamente;


Poca o ninguna necesidad de coordinacin entre las tareas.
Escalabilidad. Se refiere a la habilidad de un sistema paralelo (hardware y / o software) para
demostrar un aumento proporcional en la aceleracin paralela con la adicin de ms recursos. Los
factores que contribuyen a la escalabilidad incluyen:
Hardware - en particular los anchos de banda de la CPU de memoria y las propiedades de
comunicacin de red
Algoritmo de aplicacin
Sobrecarga paralela relacionada
Caractersticas de su aplicacin especfica

Ley de Amdahl. Establece que el potencial de aceleracin del programa est definido por la fraccin
de cdigo (P) que puede ser paralelizada:
1
speedup = --------
1 - P
Si no se puede paralelizar ningn cdigo, P = 0 y la aceleracin = 1 (sin aceleracin).
Si todo el cdigo es paralelizado, P = 1 y la aceleracin es infinita (en teora).
Si el 50% del cdigo puede ser paralelizado, speedup mximo = 2, lo que significa que el
cdigo se ejecutar dos veces ms rpido.
Al presentar el nmero de procesadores que realizan la fraccin paralela de trabajo, la
relacin puede ser modelada por:

1
speedup = ------------
P + S
---
N
Donde P = fraccin paralela, N = nmero de procesadores y S = fraccin serial.
Requerimientos de recursos: La principal intencin de la programacin paralela es disminuir el
tiempo de ejecucin del reloj de pared, sin embargo, para lograr esto, se requiere ms tiempo de
CPU. Por ejemplo, un cdigo paralelo que se ejecuta en 1 hora en 8 procesadores en realidad utiliza
8 horas de tiempo de CPU.
La cantidad de memoria requerida puede ser mayor para los cdigos paralelos que para los cdigos
serie, debido a la necesidad de replicar datos y para los gastos generales asociados con bibliotecas
y subsistemas de soporte paralelo.
Para los programas paralelos de corta duracin, puede haber una disminucin en el rendimiento en
comparacin con una implementacin en serie similar. Los costes generales asociados con la
configuracin del entorno paralelo, la creacin de tareas, las comunicaciones y la terminacin de
tareas pueden comprender una parte significativa del tiempo de ejecucin total para ejecuciones
cortas.
Escalabilidad: Dos tipos de escalado basado en el tiempo hasta la solucin: escalado fuerte y
escalamiento dbil.
Escala fuerte:
El tamao total del problema permanece fijo a medida que se agregan ms procesadores.
El objetivo es correr el mismo tamao de problema ms rpido
La escala perfecta significa que el problema se resuelve en tiempo 1 / P (comparado con el
serial)
Escala dbil:
El tamao del problema por procesador permanece fijo a medida que se agregan ms
procesadores.
El objetivo es correr un problema mayor en la misma cantidad de tiempo
La escala perfecta significa que el problema Px se ejecuta en el mismo tiempo que la ejecucin
de un nico procesador
GLOSARIO ARQUITECTURAS DE MEMORIA DE LAS COMPUTADORAS COMPARTIDAS

Memoria compartida:
Capacidad de todos los procesadores de acceder a toda la memoria como espacio de
direcciones global.
Procesadores pueden funcionar independientemente pero comparten los mismos recursos
de memoria.
Los cambios en una ubicacin de memoria efectuados por un procesador son visibles para
todos los dems procesadores.
Se clasifican basndose en los tiempos de acceso a la memoria como:
UMA y NUMA

Acceso a memoria uniforme (UMA):

Representado hoy por las mquinas Symmetric Multiprocessor (SMP)


Procesadores idnticos
Igual acceso y tiempos de acceso a la memoria
A veces llamado CC-UMA - Cache Coherente UMA
Cache Coherente (CC-UMA): Significa que si un procesador actualiza una ubicacin en memoria
compartida, todos los dems procesadores conocen la actualizacin.

Acceso a memoria no uniforme (NUMA):


Fsicamente enlazando dos o ms SMPs.
Un SMP puede acceder directamente a la memoria de otro SMP.
No todos los procesadores tienen igual tiempo de acceso a todas las memorias.
El acceso a la memoria a travs del enlace es ms lento
Si se mantiene la coherencia de la cach, entonces tambin se puede llamar CC-NUMA -
Cache Coherente NUMA.
Ventajas: El espacio de direcciones global proporciona una perspectiva de programacin fcil de
usar a la memoria. El intercambio de datos entre tareas es rpido y uniforme.
Desventaja: La principal desventaja es la falta de escalabilidad entre la memoria y las CPU.
Memoria distribuida:
Los sistemas de memoria distribuida requieren una red de comunicacin para conectar la
memoria entre procesadores.
Los procesadores tienen su propia memoria local.
Los cambios que realiza en su memoria local no tienen ningn 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 datos en otro procesador, suele ser la tarea del
programador definir explcitamente cmo y cundo se comunican los datos.

Ventajas:
La memoria es escalable con el nmero de procesadores. Aumentar el nmero de
procesadores y el tamao de la memoria aumenta proporcionalmente.
Cada procesador puede acceder rpidamente a su propia memoria sin interferencias.
Rentabilidad: puede utilizar productos bsicos, procesadores estndar y redes.
Desventajas:
El programador es responsable de muchos de los detalles asociados con la comunicacin de
datos entre procesadores.
Puede ser difcil asignar estructuras de datos existentes, basadas en la memoria global, a
esta organizacin de memoria.
Tiempos de acceso a la memoria no uniformes - los datos que residen en un nodo remoto
tardan ms en tener acceso que los datos locales del nodo.
Memoria compartida distribuida hbrida
Las computadoras ms grandes y ms rpidas del mundo emplean arquitecturas de memoria
compartida y distribuida.
El componente de memoria compartida puede ser una mquina de memoria compartida y / o
unidades de procesamiento grfico (GPU).
El componente de memoria distribuida es la conexin en red de mltiples mquinas de
memoria compartida / GPU, que slo conocen su propia memoria, no la memoria en otra
mquina. Por lo tanto, las comunicaciones de red se requieren para mover datos de una
mquina a otra.

Ventajas y desventajas:
Mayor escalabilidad es una ventaja importante
El aumento de la complejidad del programador es una desventaja importante