Descargar

Tipos de paralelismo

Enviado por Pablo Turmero


Partes: 1, 2

    edu.red

    (Gp:) Paralelismo de Datos (Gp:) Paralelismo de Tareas

    Tipos de Paralelismo Paralelismo de datos: cada procesador ejecuta la misma tarea sobre diferentes conjuntos o subregiones de datos Paralelismo de tareas: cada procesador ejecuta una diferente tarea La mayoría de las aplicaciones están entre estos dos extremos

    edu.red

    Paralelismo Maestro-Esclavo Una común forma de usar paralelismo en el desarrollo de aplicaciones desde hace años (especialmente en PVM) fue el paralelismo Maestro-Esclavo: un simple procesador es responsable de distribuir los datos y recolectar los resultados (paralelismo de tarea) todos los otros procesadores ejecutan la misma tarea sobre su porción de datos (paralelismo de datos)

    edu.red

    Modelos de Programación Paralela Los modelos de programación que se usan actualmente son: Paralelismo de datos – las operaciones son ejecutadas en paralelo sobre colecciones de datos estructurados. Paso de mansajes – procesos colocados en memoria local se comunican con otros procesos enviando y recibiendo mensajes. Memoria compartida – cada procesador tiene acceso a un conjunto de memoria compartida

    edu.red

    Modelos de Programación Paralela La mayoría de los esfuerzos en paralelización están dentro de las siguientes categorias: Códigos pueden ser paralelizados usando librerías de paso de mensaje tal como MPI. Códigos pueden ser paralelizados usando directivas de compilación tal como OpenMP. Códigos pueden ser escritos en nuevos lenguajes paralelos.

    edu.red

    Modelos de Programación ? Arquitecturas Correspondecia natural Paralelismo de datos ? CM-2 (máquina SIMD) Paso de mensaje ? IBM SP (MPP) Memoria compartida ? SGI Origin, Sun E10000 Correspondencia implementada HPF (un lenguaje paralelo de datos) y MPI (una librería de paso de mensaje) -> sobre la mayoría de los computadores paralelos OpenMP (un conjunto de directivas, etc. para programación de memoria compartida) -> sobre mayoría de máquinas de memoria compartida.

    edu.red

    SPMD Todas las máquinas actuales son MIMD (Multiple Instruction, Multiple Data) y pueden explotar paralelismo de datos o paralelismo de tareas. El primer paradigma de programación paralela es el SPMD: Single Program, Multiple Data Cada procesador ejecuta una copia del código fuente Paralelismo de datos (a través de la descomposición de los datos) y paralelismo de tareas (a través de funciones que retornan al procesador ID)

    edu.red

    OpenMP – Estandar para SM OpenMP es un nuevo estandar para programación en memoria compartida: SMPs y cc-NUMAs. OpenMP provee un conjunto estandar de directivas, rutinas de librerías run-time Ambiente de variables para paralelizar códigos bajo el modelo de memoria compartida. Ver http://www.openmp.org para más información

    edu.red

    program add_arrays parameter (n=1000) real x(n),y(n),z(n) read(10) x,y,z

    do i=1,n x(i) = y(i) + z(i) enddo … end Fortran 77 program add_arrays parameter (n=1000) real x(n),y(n),z(n) read(10) x,y,z

    !$OMP PARALLEL DO do i=1,n x(i) = y(i) + z(i) enddo … end Fortran 77 + OpenMP La directiva resaltada especifica que el bucle es ejecutado en paralelo. Cada procesador ejecuta un subconjunto de iteraciones del bucle. OpenMP Ejemplo

    Partes: 1, 2
    Página siguiente