Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <omp.h>
- #include <math.h>
- #define ILEITERACJI 30000000
- double piWallis(int ileIteracji);
- double piLajkonik(int ileIteracji);
- int main(int argc, char *argv[])
- {
- double pi1 = 2.0, pi2 = 0.0;
- double start1, stop1;
- double stop0, start0;
- //*****************************************************************************
- printf("Bez OpenMP\n\n");
- start0 = time(NULL);
- start1 = omp_get_wtime();
- pi1 = piWallis(ILEITERACJI);
- pi2 = piLajkonik(ILEITERACJI);
- stop0 = time(NULL);
- stop1 = omp_get_wtime();
- printf("Metoda Willisa: %f\n", pi1);
- printf("Metoda Laibnitz'a: %f\n", pi2);
- printf("Czas dla f. time() : %f\n", stop0 - start0);
- printf("Czas dla f. omp_get_wtime() : %f\n\n", stop1 - start1);
- //******************************************************************************
- pi1 = 0.0, pi2 = 0.0;
- printf("Wraz z OpenMP\n\n");
- start0 = time(NULL);
- start1 = omp_get_wtime();
- #pragma omp parallel sections
- {
- #pragma omp section
- {
- pi1 = piWallis(ILEITERACJI);
- printf("Metoda Willisa: %f\n", pi1);
- printf("Obliczenia wykonal watek %d\n",omp_get_thread_num());
- }
- #pragma omp section
- {
- pi2 = piLajkonik(ILEITERACJI);
- printf("Metoda Laibnitz'a: %f\n", pi2);
- printf("Obliczenia wykonal watek %d\n",omp_get_thread_num());
- }
- }
- stop0 = time(NULL);
- stop1 = omp_get_wtime();
- printf("Czas dla f. time() : %f\n", stop0 - start0);
- printf("Czas dla f. omp_get_wtime() : %f\n\n", stop1 - start1);
- return 0;
- }
- double piWallis(int ileIteracji)
- {
- int i;
- double wynik = 1.0;
- for(i = 1; i < ileIteracji; i++)
- {
- wynik *= ( (2.0 * i)*(2.0 * i) ) / ( ( 2.0 * i - 1.0 )*( 2.0 * i + 1.0) );
- }
- return (2.0 * wynik);
- }
- double piLajkonik(int ileIteracji)
- {
- int i;
- double wynik = 0;
- for(i = 0; i < ileIteracji; i++)
- {
- wynik += pow( -1, i ) / ( 2 * i + 1);
- }
- return 4 * wynik;
- }
Advertisement
Add Comment
Please, Sign In to add comment