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
En el sistema Linux, al instalar Windows 8.1 con la máquina virtual VirtualBox, se muestra el error
La llamada ip dinámica se refiere al servicio DHCP. Si no necesita configurar manua
El archivo fstab se usa principalmente para describir la información de varios sist
En el sistema Ubuntu, un usuario debe reemplazar la versión de lanzamiento original
Linux para aumentar la resolución de VirtualBox
Resumen del uso del comando hexdump en sistemas Linux
Instalación de Linux método Redis y procesamiento de problemas comunes
Sistema Linux que usa el comando sl para hacer que las habilidades de escritorio sean dinámicas
Linux usa una máquina virtual para instalar el método de Windows 10
Ubuntu 14.04 ejecutando error adb cómo hacerlo?
Cómo configurar un sistema Linux bajo una matriz de discos RAID
Linux Shell resumen de comandos de procesamiento de texto
¿Qué debo hacer si ORA-12528 informa un error al construir DataGuard en Linux?
Cómo Linux distingue entre comando de instalación y comando cp
método de instalación de Linux para utilizar el software de monitoreo collectl de
Sistema Linux cómo configurar la administración de seguridad
¿Cómo se conecta Windows 8 automáticamente a ADSL
Cómo cambiar la animación de arranque predeterminada de win7 a la imagen que desea
¿Cómo entra Win8 /8.1 en bios? Método bios de Win8.1
¿Por qué Win7 no tiene una hermosa animación de arranque? [图]
Cómo configurar el problema de la personalidad de Win8.1
Haga clic derecho para abrir el sistema Win7, desapareció, cómo hacerlo
¿Qué debo hacer si Win8 tiene un error 0x800F081F al instalar .NET 3.5?