Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include "omp.h"
- #include <iostream>
- #include <windows.h>
- #include <stdio.h>
- using namespace std;
- int main()
- {
- setlocale(LC_ALL, "Russia");
- /*int count, num;
- #pragma omp parallel
- {
- count = omp_get_num_threads();
- num = omp_get_thread_num();
- if (num == 0) printf("Total threads : %d\n", count);
- else printf("Number of thread %d\n", num);
- }*/
- //////////////////////////////////////////////////////
- /*int A[10], B[10], C[10], i, n;
- //Заполним исходные массивы
- for (i = 0; i<10; i++) { A[i] = i; B[i] = 2 * i; C[i] = 0; }
- #pragma omp parallel shared(A, B, C) private(i, n)
- {
- // Получим номер текущей нити
- n = omp_get_thread_num();
- #pragma omp for
- for (i = 0; i<10; i++)
- {
- C[i] = A[i] + B[i];
- printf("Thread %d add elements with the number %d\n", n, i);
- }
- }*/
- ///////////////////////////////////////////////////////
- /*int i;
- #pragma omp parallel private(i)
- {
- //#pragma omp for schedule (static)//всегда по разному 0003232111
- //#pragma omp for schedule (static, 1)//всегда по разному 0332211100
- //#pragma omp for schedule (static, 2)//всегда по разному 0101003322
- //#pragma omp for schedule (dynamic)//всегда по разному 0001010123
- //#pragma omp for schedule (dynamic, 2)//всегда по разному 0101020233
- //#pragma omp for schedule (guided)//всегда по разному
- #pragma omp for schedule (guided, 2)//всегда по разному
- for (i = 0; i<10; i++)
- {
- printf("Thread %d did iteration %d\n", omp_get_thread_num(), i);
- //sleep(1);
- }}*/
- /////////////////////////////////////////////////////////
- /*int i;
- #pragma omp parallel private(i)
- {
- //#pragma omp for schedule (static, 6)//
- //#pragma omp for schedule (dynamic, 6)
- #pragma omp for schedule (guided, 6)
- for (i = 0; i<13; i++)
- {
- printf("Thread %d did iteration %d\n", omp_get_thread_num(), i);
- //sleep(1);
- }
- }*/
- //////////////////////////////////////////////////////////
- /*typedef enum omp_sched_t {
- omp_sched_static = 1,
- omp_sched_dynamic = 2,
- omp_sched_guided = 3,
- omp_sched_auto = 4
- } omp_sched_t;*/
- /////////////////////////////////////////////////////////
- /*int n;
- #pragma omp parallel private(n)
- {
- n = omp_get_thread_num();
- #pragma omp sections
- {
- #pragma omp section
- { printf("First section, process %d\n", n); }
- #pragma omp section
- { printf("Second section, process %d\n", n); }
- #pragma omp section
- { printf("Third section, process %d\n", n); }
- }
- printf("Parallel area, process %d\n", n);
- }*/
- ////////////////////////////////////////////////
- int n = 0;
- #pragma omp parallel
- {
- #pragma omp sections// lastprivate(n)
- {
- #pragma omp section
- { n=1;}
- #pragma omp section
- { n=2; }
- #pragma omp section
- { n=3;}
- }
- printf("Value n on thread %d: %d\n", omp_get_thread_num(), n);
- }
- printf("Value n in sq area: %d\n", n);
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment