Контрольные вопросы лабораторной работы No 1

© Е.В. Аксенова (evaksen@mail.ru)


  1. Какой формат записи директив в OpenMP?
  2. Что такое параллельная область? С помощью каких директив в OpenMP создается параллельная область? Как задается количество нитей в параллельной области OpenMP-программы?
  3. Дайте определение общим и частным переменным в OpenMP. Как задаются общие и частные переменные в OpenMP-программе?
  4. Что выведет следующая программа?
    int a, b;
    #pragma omp parallel private(a)
    {
      int c;
      a = omp_get_thread_num();
      b = omp_get_thread_num();
      c = omp_get_thread_num();
      printf(“%d %d %d\n”, a, b, c);
    }
    
  5. Как осуществляется распараллеливание циклов в OpenMP? Какое условие должно выполняться, чтобы циклы могли быть распараллелены?
  6. Укажите циклы for, которые могут быть распараллелены? Объясните свой выбор?
    // 1).
    for(i=0;i<100;i++) {
      sum = sum + i;
    }
    
    // 2).
    for(i=0;i<100;i++) {
      z[i] = x[i-1];
    }
    
    // 3).
    for(i=0;i<100;i++) {
      a[i] = a[i-1]+3;
    }