Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<omp.h>
- struct drand48_data puffer;
- #pragma omp threadprivate( puffer )
- int main(int argc, char** argv)
- {
- int N; //lovesek szama
- int kn; // korbe talalt lovesek szama
- int i;
- double x, y; // koord.
- double start, end;
- int seed = 0;
- switch (argc)
- {
- case 3:
- seed = atoi(argv[2]);
- case 2:
- N = atoi(argv[1]);
- break;
- default:
- printf("Hasznalat: %s N\n",argv[0]);
- return 0;
- }
- kn=0;
- start = omp_get_wtime(); // IDOMERES INDUL
- #pragma omp parallel private(i,x,y)
- {
- int mykn=0;
- int thed = omp_get_thread_num();
- srand48_r(seed+thed,&puffer);
- #pragma omp for
- for ( i = 0; i< N; i++)
- {
- drand48_r(&puffer, &x);
- drand48_r(&puffer, &y);
- if ( (x*x + y*y) <1 )
- mykn++;
- }
- #pragma omp critical
- kn +=mykn;
- }
- end = omp_get_wtime(); // IDOMERES VEGE
- printf("PI erteke = %f \n", 4.*(double)kn / N );
- printf("futasi ido: %2f\n", end-start);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment