computación paralela

  • View
    1.820

  • Download
    0

Embed Size (px)

Transcript

  • INSTITUTO TECNOLOGICO DE CHIHUACHUA II

    ING. SISTEMAS COMPUTACIONALES

    Materia: Arquitectura de computadoras

    Fecha: 26 de mayo de 2015

    Integrantes:

    Flor Ramos Muiz

    Ivonne Diego

    Yazmin Polanco

    Johana Gmez

    Ana Teresa Morales Arredondo

    Jess Snchez

  • 2

    NDICE

    Aspectos bsicos de la computacin paralela.3

    Computacin paralela.5

    Taxonoma de las arquitecturas8 Sistema secuencial13

    Taxonoma de Flynn 14

    Organizacin del espacio de direcciones de memoria 17

    Sistemas de memoria distribuida. Multicomputadoras Clusters.. 23

    Redes De Interconexin Esttica.. 24

    Clster. 25

    Programacin De Clster 27

    Consideraciones Sobre Rendimiento De Los Clster.. 27

    Coherencia de cache. 27

    Mecanismos para la coherencia de la cache 29

    Modelos de Coherencia.. 31

    Consideraciones sobre el rendimiento de los clusters.. 31

    Casos de estudio34

    Bibliografa 36

  • 3

  • 4

    4.1 Aspectos bsicos de la computacin paralela.

    La computacin paralela es una forma de cmputo en la que

    muchas instrucciones se ejecutan simultneamente, operando sobre el

    principio de que problemas grandes, a menudo se pueden dividir en unos

    ms pequeos, que luego son resueltos simultneamente (en paralelo). Hay

    varias formas diferentes de computacin paralela: paralelismo a nivel de bit,

    paralelismo a nivel de instruccin, paralelismo de datos y paralelismo de

    tareas. El paralelismo se ha empleado durante muchos aos, sobre todo en la

    computacin de altas prestaciones, pero el inters en ella ha crecido

    ltimamente debido a las limitaciones fsicas que impiden el aumento de la

    frecuencia. Como el consumo de energa y por consiguiente la generacin

    de calor de las computadoras constituye una preocupacin en los ltimos

    aos, la computacin en paralelo se ha convertido en el paradigma

    dominante en la arquitectura de computadores, principalmente en forma

    de procesadores multincleo.

  • 5

    Las computadoras paralelas pueden clasificarse segn el nivel de paralelismo

    que admite su hardware: equipos con procesadores multincleo y multi-

    procesador que tienen mltiples elementos de procesamiento dentro de una

    sola mquina y los clsteres, MPPS y grids que utilizan varios equipos para

    trabajar en la misma tarea. Muchas veces, para acelerar la tareas especficas,

    se utilizan arquitecturas especializadas de computacin en paralelo junto a

    procesadores tradicionales.

    Los programas informticos paralelos son ms difciles de escribir que los

    secuenciales, porque la concurrencia introduce nuevos tipos de errores de

    software, siendo las condiciones de carrera los ms comunes. La

    comunicacin y sincronizacin entre diferentes subtareas son algunos de los

    mayores obstculos para obtener un buen rendimiento del programa

    paralelo.

    La mxima aceleracin posible de un programa como resultado de la

    paralelizacin se conoce como la ley de Amdahl.

    http://1.bp.blogspot.com/-K8AKJh-nS18/UpfrJV7yHDI/AAAAAAAAAJA/0NK1lC4pJKg/s1600/computacion+paralela.jpg

  • 6

    Aspectos a considerar

    Diseo de computadores paralelo: Escalabilidad y Comunicaciones.

    Diseo de algoritmos eficientes: No hay ganancia si los algoritmos no

    se disean adecuadamente.

    Mtodos para evaluar los algoritmos paralelos: Cmo de rpido se

    puede resolver un problema usando una mquina paralela? Con qu

    eficiencia se usan esos procesadores?.

    Lenguajes para computadores paralelos, flexibles para permitir una

    implementacin eficiente y que sean fciles de programar.

    Herramientas para la programacin paralela.

    Programas paralelos portables.

    Compiladores paralelizantes.

    4.2 COMPUTACIN PARALELA

    La computacin paralela es una tcnica de programacin en la que muchas instrucciones se ejecutan simultneamente. Se basa en el principio de que los problemas grandes se pueden dividir en partes ms pequeas que pueden resolverse de forma concurrente (en paralelo).

    TIPOS DE COMPUTACION PARALELA:

    PARALELISMO A NIVEL DE BIT

    Desde el advenimiento de la integracin a gran escala (VLSI) como tecnologa de fabricacin de chips de computadora en la dcada de 1970 hasta alrededor de 1986, la aceleracin en la arquitectura de computadores se lograba en gran medida duplicando el tamao de la palabra en la computadora, la cantidad de informacin que el procesador puede manejar por ciclo. El aumento del tamao de la palabra reduce el nmero de instrucciones que el procesador debe ejecutar para realizar una operacin en variables cuyos tamaos son mayores que la longitud de la palabra. Por ejemplo, cuando un procesador de 8 bits debe

  • 7

    sumar dos enteros de 16 bits, el procesador primero debe adicionar los 8 bits de orden inferior de cada nmero entero con la instruccin de adicin, a continuacin, aadir los 8 bits de orden superior utilizando la instruccin de adicin con acarreo que tiene en cuenta el bit de acarreo de la adicin de orden inferior, en este caso un procesador de 8 bits requiere dos instrucciones para completar una sola operacin, en donde un procesador de 16 bits necesita una sola instruccin para poder completarla.

    PARALELISMO A NIVEL DE INSTRUCCIN

    Un programa de ordenador es, en esencia, una secuencia de instrucciones ejecutadas por un procesador. Estas instrucciones pueden reordenarse y combinarse en grupos que luego son ejecutadas en paralelo sin cambiar el resultado del programa. Esto se conoce como paralelismo a nivel de instruccin. Los avances en el paralelismo a nivel de instruccin dominaron la arquitectura de computadores desde mediados de 1980 hasta mediados de la dcada de 1990.

    Los procesadores modernos tienenpipeline de instrucciones de varias etapas. Cada etapa en el pipeline corresponde a una accin diferente que el procesador realiza en la instruccin correspondiente a la etapa; un procesador con un pipeline de N etapas puede tener hasta n instrucciones diferentes en diferentes etapas de finalizacin. El ejemplo cannico de un procesador segmentado es un procesador RISC, con cinco etapas: pedir instruccin, decodificar, ejecutar, acceso a la memoria y escritura. El procesador Pentium 4tena un pipeline de 35 etapas. Adems del paralelismo a nivel de instruccin del pipelining, algunos procesadores pueden ejecutar ms de una instruccin a la vez. Estos son conocidos como procesadores superes calares. Las instrucciones pueden agruparse juntas slo si no hay dependencia de datos entre ellas. El scoreboarding y el algoritmo de Tomasulo (que es similar a scoreboarding pero hace uso del ) son dos de las tcnicas ms comunes para implementar la ejecucin fuera de orden y la paralelizacin a nivel de instruccin.

  • 8

    PARALELISMO DE DATOS

    El paralelismo de datos es el paralelismo inherente en programas con ciclos, que se centra en la distribucin de los datos entre los diferentes nodos computacionales que deben tratarse en paralelo. La paralelizacin de ciclos conduce a menudo a secuencias similares de operaciones (no necesariamente idnticas) o funciones que se realizan en los elementos de una gran estructura de datos. Muchas de las aplicaciones cientficas y de ingeniera muestran paralelismo de datos. Una dependencia de terminacin de ciclo es la dependencia de una iteracin de un ciclo en la salida de una o ms iteraciones anteriores. Las dependencias de terminacin de ciclo evitan la paralelizacin de ciclos. Este bucle no se puede paralelizar porque CUR depende de s mismo (PREV2) y de PREV1, que se calculan en cada iteracin del bucle. Dado que cada iteracin depende del resultado de la anterior, no se pueden realizar en paralelo. A medida que el tamao de un problema se hace ms grande, la paralelizacin de datos disponible generalmente tambin lo hace.

    PARALELISMO DE TAREAS El paralelismo de tareas es la caracterstica de un programa paralelo en la que clculos completamente diferentes se pueden realizar en cualquier conjunto igual o diferente de datos. Esto contrasta con el paralelismo de datos, donde se realiza el mismo clculo en distintos o mismos grupos de datos. El paralelismo de tareas por lo general no escala con el tamao de un problema. Durante muchos aos, la computacin paralela se ha aplicado en la computacin de altas prestaciones, pero el inters en ella ha aumentado en los ltimos aos debido a las restricciones fsicas que impiden el escalado en frecuencia. La computacin paralela se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en los procesadores multincleo. Sin embargo, recientemente, el consumo de energa de los ordenadores paralelos se ha convertido en una preocupacin. Los ordenadores paralelos se pueden clasificar segn el nivel de paralelismo que admite su hardware: los ordenadores multincleo y multiproceso tienen varios elementos de procesamiento en una sola mquina, mientras que los clusters, los MPP y los grids emplean varios ordenadores para trabajar en la misma tarea. Los programas de ordenador paralelos son ms difciles de escribir que los secuenciales porque la concurrencia introduce nuevos tipos

  • 9

    de errores de software, siendo las condiciones de carrera los ms comunes. La comunicacin y la sincronizacin entre las diferentes subtareas son tpicamente las grandes barreras para conseguir un buen rendimiento de los programas paralelos. El incremento de velocidad que consigue un programa como resultado de la paralelizacin viene dado por la ley de Amdahl.

    Taxonoma de las arquitecturas Clasificacin de Flynn Clasificacin clsica de arquitectura de computadores que hace alusin a si