Cómo abrir la programación multiproceso en el sistema Linux

  

OpenMP es un lenguaje de programación multiproceso y multiprocesador que puede ser compatible con múltiples plataformas, incluidos los sistemas Linux. ¿Cómo abrir la programación multiproceso bajo Linux? Vamos a conocerlo.

clave Sintaxis:

código es el siguiente:

#inlcude "omp.h"

#pragma omp paralelo para

#pragma omp para reducción (+: variable)

#pragma omp critical //lock

{

}

#pragma omp paralelo para privado (x, y) //cada subproceso copia de forma independiente las variables x, y, no interfiere entre sí, si no se configura en predeterminado, las variables son compartidas. //La carga de trabajo total se divide en n /k bloques y, a continuación, la programación de subprocesos múltiples

#pragma omp secciones paralelas

{

#pragma omp section //para garantizar algunos No hay una dependencia variable entre las funciones en la sección

. . . . . . . . .

#pragma omp section

. . . . . . . . .

}

#pragma omp paralelo

{

. . . . . . .
();

#pragma omp master /single //Asegúrese de que solo el hilo principal /un hilo pueda acceder a la siguiente función, la diferencia es que el maestro no tiene una barrera de barrera, y el hilo único que se completa primero espera a que finalice. Hilo

{

}

. . . . . . .

} "/p" "p" #pragma omp barrier /nowait //Establezca la barrera /no hay necesidad de esperar, si la función siguiente no depende del multihilo anterior, puede usar nowait

#pragma omp paralelo para firstprivate (variable) /lastprivate (variable) //para cada valor inicial de múltiples subprocesos /fuera de los múltiples subprocesos de vuelta al subproceso principal cuando la asignación es para que el subproceso principal utilice

Hay OpenMP API:

El código es el siguiente:

int omp_get_num_threads (); //Obtenga el número de subprocesos actualmente en uso

int omp_get_num_threads (2/3 /...) //Establezca el número de subprocesos para utilizar

nt omp_get_thread_num (void); //devuelva el número de subproceso actual

int omp_get_num_procs (void); //devuelva el número de núcleos de procesamiento disponibles

En ubuntu, no es necesario agregar el archivo de encabezado "omp.h", simplemente agregue -fopenmp al compilar.

Por ejemplo: el comando de operación emacs es el siguiente

El código es el siguiente:

emacs omp.c "/p" "p" #include "stdio.h"

int main ()

{

int rank, size;

#pragma omp paralelo num_thread (3) private (rank) //num_threads se usa para controlar el número de hilos < Br>

//O use omp_set_num_threads (3); "/p" "p" {

rank = omp_get_thread_num ();

size = omp_get_num_threads ();

printf (" usando% d de% d ahora. \\ n ", rango, tamaño);

}

return 0;

} /p "p" ctrl + xs

alt + x compilar

gcc -fopenmp -o omp omp.c

alt + shift + 1. /omp

Lo anterior es la introducción de la programación de subprocesos múltiples de OpenMP en Linux. Este artículo presenta principalmente la programación de subprocesos múltiples de OpenMP a través de un ejemplo. Si desea obtener más información al respecto, le recomendamos que preste más atención. Soportarlo

Copyright © Conocimiento de Windows All Rights Reserved