Anterior Siguiente

OpenMP asume que los hilos de una región comparten la memoria. Pero a veces es necesario que cada hilo tenga datos cuyos valores sean propios de ese hilo particular. Volvamos al código del ejemplo anterior:

#include <stdio.h>
#include <omp.h>

int main(){
    int m = omp_get_thread_num();
    printf("thread=%d in serial region\n", m);
    
    #pragma omp parallel 
    {
        int t = omp_get_thread_num();
        printf("thread=%d in parallel region\n", t);
    }
    
    printf("thread=%d in serial region\n", m);
}

Descarga el código aquí.

La variable m, definida antes del inicio de la región paralela, una vez dentro de esta última, es vista por los hilos como una variable compartida y todos la pueden acceder, mientras que la variable t, definida dentro de la región paralela, es vista como una variable privada, y cada hilo maneja su propia copia. La siguiente figura lo ilustra:

Modelo de datos

Preguntas

  • ¿Qué condiciones serían necesarias para un modelo de memoria distribuida?
Anterior Siguiente
Estás en el Nivel 1: Introducción a la programación paralela con OpenMP. ¿Deseas volver al inicio?