Главная /
Параллельное программирование с OpenMP /
Пусть W(x)a – операция записи в переменную x значения a. Пусть R(x)a – операция чтения переменной x, где a – прочитанное значение переменной x. Следующая последовательность событий: [таблица]
Пусть W(x)a
– операция записи в переменную x
значения a
. Пусть R(x)a
– операция чтения переменной x
, где a
– прочитанное значение переменной x
. Следующая последовательность событий:
P1: W(x)a | W(x)c | ||||
---|---|---|---|---|---|
P2: | R(x)a | W(x)b | |||
P3: | R(x)a | R(x)c | R(x)b | ||
P4: | R(x)a | R(x)b | R(x)c |
Правильный ответ:
допустима при строгой модели консистентности
допустима при причинной модели консистентности
допустима при последовательной модели консистентности
Сложность вопроса
79
Сложность курса: Параллельное программирование с OpenMP
28
Оценить вопрос
Комментарии:
Аноним
Какой человек ищет эти вопросы по интуит? Это же безумно легко
06 авг 2020
Аноним
Зачёт сдан. Бегу в клуб отмечать зачёт по тестам
24 май 2020
Аноним
Спасибо за решениями по интуиту.
10 мар 2020
Другие ответы на вопросы из темы программирование интуит.
- # Слабая модель консистентности памяти определяется следующим условием:
- # Использование операторов перехода (goto) в структурном блоке OpenMP возможно:
- # Найдите ошибку в следующем фрагменте программы: #pragma omp parallel default(shared) { int i; #pragma omp for schedule(dynamic) for (i=0; i<n; i++) { #pragma omp ordered printf("iteration %d\n", i); } }
- # Пусть следующая программа скомпилирована компилятором, поддерживающим вложенный параллелизм. #include <stdio.h> #include "omp.h" int counter; int main() { counter=0; omp_set_nested(1); #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 по завершении выполнения этой программы:
- # Intel Thread Checker: