Advertisement
Guest User

Untitled

a guest
Nov 25th, 2014
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.58 KB | None | 0 0
  1. #include "iostream"
  2. #include <omp.h>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.  
  9.  
  10.     int LICZBA_W = 10;
  11.     //int i;
  12.     int suma = 0;
  13.     int pid;
  14.  
  15.     cout << "Zad 1" << endl;
  16.  
  17.     //------------------------------------------------------------------
  18.  
  19. #pragma omp parallel num_threads(LICZBA_W)
  20.     {
  21.         pid = omp_get_thread_num();
  22.         cout << endl << "Jestem watkiem nr " << pid;
  23.  
  24.         pid = omp_get_thread_num();
  25.         cout << endl << "Koncze watek nr " << pid;
  26.     }
  27.  
  28.     cout << endl;
  29.     //-----------------------------------------------------------------
  30.     cout << "----------------------------------------------------------";
  31.  
  32.     cout << endl << "Zad 2" << endl;
  33.  
  34. #pragma omp parallel num_threads(LICZBA_W)
  35.     {
  36.         pid = omp_get_thread_num();
  37.         cout << endl << "Jestem watkiem nr " << pid;
  38.  
  39. #pragma omp barrier
  40.  
  41.         pid = omp_get_thread_num();
  42.         cout << endl << "Koncze watek nr " << pid;
  43.  
  44.     }
  45.  
  46.     cout << endl;
  47.     //---------------------------------------------------------------
  48.     cout << "----------------------------------------------------------";
  49.     //PRIVATE
  50.  
  51.     cout << endl << "Zad 3" << endl;
  52.  
  53.     int a = 5;
  54.     cout << "Private" << endl;
  55.  
  56. #pragma omp parallel num_threads(5) private(a)
  57.     {
  58.         a = 5;
  59.         pid = omp_get_thread_num();
  60.         a = a + pid;
  61.         cout << "Zmienna prywatna: " << a << endl;
  62.     }
  63.     cout << "Wartosc a: " << a << endl;
  64.  
  65.     //---------------------------------------------------------------
  66.     cout << "----------------------------------------------------------";
  67.     //FIRSTPRIVATE
  68.  
  69.     cout << endl << "FirstPrivate" << endl;
  70.  
  71. #pragma omp parallel num_threads(5) firstprivate(a)
  72.     {
  73.         a = 5;
  74.         pid = omp_get_thread_num();
  75.         a = a + pid;
  76.         cout << "Zmienna prywatna: " << a << endl;
  77.     }
  78.     cout << "Wartosc a: " << a << endl;
  79.  
  80.     //---------------------------------------------------------------
  81.     cout << "----------------------------------------------------------";
  82.     //SHARED_1
  83.  
  84.     cout << endl << "Shared_atomic" << endl;
  85.  
  86. #pragma omp parallel num_threads(5) shared(a)
  87.     {
  88.         a = 5;
  89.         pid = omp_get_thread_num();
  90. #pragma omp atomic
  91.         a += pid;
  92.         cout << "Zmienna prywatna: " << a << endl;
  93.     }
  94.     cout << "Wartosc a: " << a << endl;
  95.  
  96.     //---------------------------------------------------------------
  97.     cout << "----------------------------------------------------------";
  98.     //SHARED_2
  99.  
  100.     cout << endl << "Shared_critical" << endl;
  101.  
  102. #pragma omp parallel num_threads(5) shared(a)
  103.     {
  104.         a = 5;
  105.         pid = omp_get_thread_num();
  106. #pragma omp critical
  107.         a += pid;
  108.         cout << "Zmienna prywatna: " << a << endl;
  109.     }
  110.     cout << "Wartosc a: " << a << endl;
  111.  
  112.  
  113.     cout << endl;
  114.     system("PAUSE");
  115.  
  116.     //return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement