Главная /
Параллельное программирование с OpenMP /
Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм. #include <stdio.h> #include "omp.h" int counter; int main() { counter=0; omp_set_nested(0); #pragma omp parallel num_threads(2) { if (omp_get_thread_num() =
Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм.
#include <stdio.h>
#include "omp.h"
int counter;
int main()
{
counter=0;
omp_set_nested(0);
#pragma omp parallel num_threads(2)
{
if (omp_get_thread_num() == 0) {
#pragma omp parallel num_threads(2)
{
#pragma omp atomic
counter++;
}
}
}
printf("Counter=%d\n",counter);
}
Определите значение переменной counter
по завершении выполнения этой программы:
вопрос
Правильный ответ:
1
2
4
Сложность вопроса
76
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Благодарю за решениями по интуиту.
04 апр 2016
Аноним
Экзамен сдан на пять с минусом. Спасибо за ответы
16 янв 2016
Другие ответы на вопросы из темы программирование интуит.
- # Найдите ошибку в следующем фрагменте программы: int i, j; #pragma omp parallel default(shared) { #pragma omp for collapse (3) for (i=0; i<n; i++) { for (j=0; j < n; j++) work(i, j); } }
- # Директива master
- # Найдите ошибку в следующем фрагменте программы: #define N 10 int A[N],B[N]; #pragma omp parallel default(shared) { int i; ..…#pragma omp master for (i=0; i<N; i++) { A[i]=0; } #pragma omp for for (i=0; i<N; i++) B[i]=A[i]; }
- # Найдите ошибку в следующем фрагменте программы: #define N 10 int A[N],B[N]; #pragma omp parallel default(shared) num_threads(10) { int iam=omp_get_thread_num(); int tmp; tmp=A[iam]; B[iam]=tmp; }
- # Определите значение переменной team_size по завершении выполнения следующей программы: #include <stdio.h> #include "omp.h" int main() { int team_size; team_size=0; #pragma omp parallel num_threads(2) { if (omp_get_thread_num() == 0) { team_size=omp_get_team_size(0); } } printf("Team Size=%d\n",team_size); }