Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
JHORMAN
SISTEMAS DISTRIBUIDOS
2020
1
INTRODUCCIÓN
Mediante la historia se ha visto evolucionar esta programación paralela, y diferentes autores han
2
PROGRAMACIÓN PARALELA
Es un modelo para escribir programas paralelos los cuales pueden ser compilados y ejecutados.
El valor de un modelo de programación puede ser juzgado por su generalidad (Si las soluciones
3
¿POR QUÉ SE HACE LA PROGRAMACIÓN PARALELA?
El hecho de que la programación paralela sea un paradigma da cuenta de que existe una razón
por la cual no ha dejado de ser necesaria o no ha sido totalmente automatizable, igualmente hay
programación paralela.
LA LEY DE MOORE
4
La ley que propuso Gordon E. Moore en 1965 dice resumidamente que el número de transistores
en un chip determinado se doblaría cada dos años. Esto quiere decir un aumento del rendimiento
en los procesadores del alrededor del 50%, pero esta ley no es fidenigna desde el 2002 dónde
La gráfica adjunta dice que el problema principal es que la ley no puede continuar
mantener por espacio pero principalmente por el punto de la temperatura mismo, se puede ver
que si esto fuese cierto llegaría muy pronto el año en que un solo procesador alcanzara la
OVERCLOCKING INFINITO
5
El overclokcing tiene un límite a pesar de que existiera una refrigeración perpetúa y adecuada del
procesador. Esto es debido a las corrientes parásitas que impiden una velocidad teóricamente
infinita a la cual los circuitos pueden cambiar entre estados, o de hecho sus transistores.
precisamente porque existen complejidades en el corazón del paralelismo que implican cosas que
SOLUCIÓN EN EL HARDWARE
Un diseño adecuado del hardware permitiría que la paralelización siempre estuviera presente con
respecto a los procesadores que se están usando de tal modo que alguno los problemas que son
CARACTERISTICAS PRINCIPALES
6
Las características de los modelos de programación paralela se pueden sub-dividir ampliamente,
de descomposición:
INTERACCIÓN DE PROCESO
La interacción de proceso se refiere a los mecanismos por los cuales procesos paralelos son
capaces de comunicarse entre sí. Las formas más comunes de interacción son la memoria y el
datos entre programas. Dependiendo del contexto, los programas pueden ejecutarse en un
7
Estas comunicaciones pueden ser asíncronas o síncronas. La formalización de la
la misma. Esto es más común con los lenguajes con especificidad de dominio en el que la
DESCOMPOSICIÓN DE PROBLEMA
descomposición del problema se refiere a la forma en que se formula estos procesos. Esta
programación paralela.
hilos de ejecución. Estos procesos suelen tener conductas distintas, que hace hincapié en
MISD.
operaciones en un conjunto de datos que por lo general está estructurado en una matriz,
en un sistema de memoria compartida, los datos serán accesibles para todos, pero en un
sistema de memoria distribuida estos serán divididos entre las memorias y trabajados de
8
forma local, el paralelismo de datos por lo general se clasifica como MIMD/SPMD o
SIMD.
aislamiento del espacio de diseño abstracto visto por el programador. En esta, todos los
procesos son presentados con el mismo acceso a algún tipo de espacio de memoria
compartida. . La segunda categoría considera máquinas en las que los dos niveles están
más cerca entre sí y, en particular, aquellos en los que el mundo del programador incluye
paralelismo explícito. Esta categoría descarta la memoria compartida y trabaja con base
HISTORIA
“branching” y “waiting”. Para este mismo año investigadores de la empresa IBM discutieron el
uso de paralelismo en cálculos numéricos por primera vez, a mediado de 1962 Burroughs
1964 La fuerza aérea estadounidense financió el diseño del primer computador paralelo masivo
ILLIAC IV. (256 procesadores). En 1967 Amdahl y Slotnick debatieron sobre la viabilidad del
procesamiento en paralelo, allí surgió la ley de Amdahl. Primera aplicación corriendo en ILLIAC
IV(1976). Por esta razón este computador fue llamado “the most infamous of the
supercomputers”, ya que solo fue completado en un 25%, tomó 11 años y 4 veces más al costo
9
estimado. El software ha sido una parte activa en la evolución de la programación paralela. Los
programas paralelos son más difíciles de escribir que los programas secuenciales, ya que se
requiere que haya una comunicación y sincronización entre las tareas que se han paralelizado.
VENTAJAS
DESVENTAJAS
10
Se caracterizaba por guardar las instrucciones de los procesos y los datos en una memoria
conexión de cables.
COMPONENTES PRINCIPALES
Como se muestra en la siguiente figura, estas son los componentes que utiliza la arquitectura de
Von Neumann.
Memoria
Unidad de control
Entradas/Salidas
11
METODOLOGIAS DE DISEÑO
METODOLOGIA FOSTER
Particionalmente
Comunicaciones
Aglomeración
Mapeo
12
Ilustración 4 Metodología Foster
TAXONOMIA DE FLYNN
Single Instruction, Single Data (SISD): Hay un elemento de procesamiento, que tiene acceso a
13
Ilustración 5 Single Instruction, Single Data (SISD)
que cada cual tiene memoria privada del programa, pero se tiene acceso común a una memoria
14
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
cual cada una tiene tanto instrucciones como información separada. Cada elemento ejecuta una
15
Ilustración 8 Multiple Instruction, Multiple Data (MIMD)
MAESTRO/ESCLAVO
Es usada cuando se tienen dos o más procesos que necesitan ejecutarse simultánea y
continuamente, pero a diferentes velocidades. Si estos procesos corren en un único ciclo, pueden
maestro y los otros como esclavos. El ciclo maestro controla a todos los demás.
16
ARQUITECTURAS DE MEMORIA DE COMPUTACIÓN PARALELA
MEMORIA COMPARTIDA
(SMP).
Procesadores idénticos
17
NON-UNIFORM MEMORY ACCESS (NUMA)
MEMORIA DISTRIBUIDA
Esta arquitectura se basa en múltiples procesadores con su propia memoria física privada, las
tareas pueden operar solo con información local y se necesita de la comunicación para obtener
18
EJEMPLO
de alta velocidad (Ethernet, SCI, Myrinet, Infiniband) Existe una categorización hecha
por la organización TOP500 que lleva cuenta de los clusteres más poderosos de la tierra
19
REFERENCIAS
http://ferestrepoca.github.io/paradigmas-de-programacion/paralela/paralela_teoria/index.html
https://es.wikipedia.org/wiki/Modelo_de_programaci%C3%B3n_paralela
20