Descargar

Programación con Paralelismo Implícito

Enviado por Pablo Turmero


Partes: 1, 2, 3

    edu.red ÍNDICE PROGRAMACIÓN CON PARALELISMO IMPLÍCITO (OMP) Introducción Conceptos básicos Paralelismo de datos Directivas OMP Regiones paralelas

    edu.red OpenMPIntroducción El estándar es definido y revisado por el comité OpenMP Architecture Review Board compuesto actualmente por: U.S. DoD: Aeronautical Systems Center cOMPunity (Comunidad de usuarios de OpenMP) Edinburgh Parallel Computing Centre (EPCC) Laboratorio NASA Ames ST Microelectronics: The Portland Group Fujitsu Hewlett Packard International Business Machines (IBM) Intel Corporation KAI Software Lab (KSL) NEC Corporation Silicon Graphics Inc. (SGI) Sun Microsystems Universidad RWTH Aachen

    edu.red OpenMPIntroducción Antes de la introducción de OpenMP cada fabricante tenía su propio “estándar”

    Los programas tenían portabilidad nula

    El estándar ANSI X3H5 fracasó por falta de apoyo

    Se perdió interés en las máquinas SMP

    El estándar OpenMP se introdujo para resolver esto: En 1997 se publicó la versión 1.0 En 1999 se publicó la versión 1.1 En 2000 se publicó la versión 2.0 En 2005 se publicó la versión 2.5

    edu.red OpenMPIntroducción OpenMP se fundamenta en directivas y cláusulas: Las directivas especifican qué hacer Las cláusulas indican cómo hacerlo Se añaden como comentarios al código

    Tipos de directivas en OpenMP: Directivas de distribución de trabajo Directivas de sincronización de tareas

    Tipos de cláusulas en OpenMP: Cláusulas de datos Cláusulas de comportamiento Cláusulas de sincronía

    edu.red OpenMPIntroducción Ventajas de OpenMP:

    Sencillo: no requiere el envío explícito de mensajes como en MPI La descomposición de los datos es automática Admite la paralelización incremental del código Mismo código fuente para las versiones serial y paralela Permite implementar granularidad gruesa y fina Elevada portabilidad

    edu.red OpenMPIntroducción Inconvenientes de OpenMP:

    Requiere un compilador que entienda OpenMP El estándar sólo contempla C y Fortran Sólo es eficiente en máquinas de memoria compartida En general la eficiencia paralela es baja La escalabilidad está limitada por el acceso a memoria Aumentar la eficiencia requiere reestructurar el código

    edu.red OpenMPIntroducción Compiladores que soportan OpenMP SGI MIPSpro IBM XL Sun Studio Portland Group Compilers and Tools Absoft Pro FortranMP Lahey/Fujitsu Fortran 95 Fujitsu-Siemens Fortran 95 (Solaris) Intel Software Development Products PathScale GNU GCC (a partir de la versión 4.2) HP

    edu.red OpenMPIntroducción El soporte para OpenMP ha de ser activado

    Versión serial de un programa: ifort ejemplo.f90 Versión paralela de un programa: ifort -openmp ejemplo.f90

    En casi todos los compiladores la opción es -openmp

    edu.red Un programa secuencial es un caso especial de un programa de memoria compartida

    Paralelización incremental es el proceso de convertir un programa secuencial a un programa paralelo poco a poco

    Las iteraciones de un bucle for se pueden ejecutar en paralelo si ninguna iteración depende de otra anterior.

    Ejemplos: for (i=first;i<=n;i++) suma += suma + v[i]

    OpenMP Conceptos básicos

    edu.red OpenMPConceptos básicos SECTIONS – particiona el trabajo en secciones separadas. Cada sección es ejecutada por un hilo. Se puede utilizar para implementar un tipo de “paralelismo funcional” SINGLE – serializa una sección de código

    Partes: 1, 2, 3
    Página siguiente