OpenMP: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Botcrux (discussione | contributi)
m Bot: Aggiungo template {{interprogetto}} (FAQ)
ValterVBot (discussione | contributi)
m Gli elementi fondamentali: tag source deprecati, replaced: <source lang= → <syntaxhighlight lang= (5), </source> → </syntaxhighlight> (5)
Riga 41:
Esempio (in C): Visualizza la stringa "Hello, world" utilizzando thread multipli.
 
<sourcesyntaxhighlight lang=c>
#include <stdio.h>
 
Riga 50:
return 0;
}
</syntaxhighlight>
</source>
 
Viene usato il flag -fopenmp per compilare utilizzando il compilatore GCC:
<sourcesyntaxhighlight lang=bash>
$gcc -fopenmp hello.c -o hello
</syntaxhighlight>
</source>
 
L'Output su un computer con 2 Core e 2 threads è il seguente:
 
<sourcesyntaxhighlight lang=bash>
Hello, world.
Hello, world.
</syntaxhighlight>
</source>
 
L'output può essere non comprensibile a causa del fenomeno di [[Race condition]] dovuto ai due thread che condividono lo [[Canali standard|standard output]].
 
<sourcesyntaxhighlight lang=bash>
Hello, wHello, woorld.
rld.
</syntaxhighlight>
</source>
 
* '''Costrutti di Work sharing'''
Riga 82:
Esempio: inizializzo il valore in un array in parallelo utilizzando ogni thread per svolgere il lavoro
 
<sourcesyntaxhighlight lang=c>int main(int argc, char *argv[]) {
const int N = 100000;
int i, a[N];
Riga 91:
 
return 0;
}</sourcesyntaxhighlight>
 
* '''Clausole OpenMP''' (data environment management)