Documente Academic
Documente Profesional
Documente Cultură
-Private
PROGRAM
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>
int main(void){
int i;
int x =30;
for( i=0;i<=10;i++){
x=i;
}
OUTPUT
first private
PROGRAM
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>
int main(void){
int i;
int x =30;
for( i=0;i<=10;i++){
x=i;
}
First private specifies that each thread should have its own instance of a variable and that the
variable should be initialized with the value of the variable, because it exists before m the parallel
construct.
That is, every thread gets its own instance of x and that instance equals 30.
Shared
PROGRAM
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>
int main(void){
int i;
int x =30;
for( i=0;i<=10;i++){
x=i;
}
Last Private
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>
int main(void){
int i;
int x =30;
for( i=0;i<=10;i++){
x=i;
OUTPUT
Critical
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
#define SIZE 10
int main()
int i;
int max;
int a[SIZE];
a[i] = rand();
printf("%d\n", a[i]);
}
max = a[0];
max = a[i];
}
OUTPUT
Atomic
#include <stdio.h>
#include <omp.h>
#define MAX 10
int main() {
int count = 0;
count++;
}
Master
#include <omp.h>
#include <stdio.h>
int main( )
int k = omp_get_num_threads();
}
Single
#include <stdio.h>
#include <omp.h>
int main() {
#pragma omp parallel num_threads(2)
{
#pragma omp single
printf("read input\n");
printf("compute results\n");
printf("write output\n");
}
}