Студопедия — Оператор-выражение
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Оператор-выражение






, где оператор-выражение должен иметь одну из следующих форм:

  • x binop = выражение
  • x++
  • ++x
  • x—
  • --x

В предыдущих выражениях:

x - переменная.

выражение - должно быть выражением скалярного типа.

binop - должен быть одним из следующих операторов: +, *, -, /, &, |, <<;,или >>;.

По сути atomic и critical решают одну и ту же проблему, но директива atomic более эффективна, чем critical.

Пример: Следующий пример исключает условие «гонки», т.е. одновременное изменение элемента x несколькими нитями, путем использования директивы atomic:

 

#pragma omp parallel for shared(x, y, n)

for (i=0; i<n; i++) {

#pragma omp atomic

x[i] += work1(i);

y[i] += work2(i);

}

 

Преимущество использования директивы atomic в этом примере состоит в том, что директива позволяет изменить значения двух различных элементов x параллельно. Если вместо директивы atomic была бы использована директива critical, то все модификации элементов x должны были быть выполнены последовательно (хотя и в не гарантированном порядке).

Заметим, что директива atomic приемлема только к оператору, непосредственно следующему за директивой. И как следствие, в этом примере, элемент y не модифицируется атомарно.

 

4. barrier выполняет явную синхронизацию работы всех нитей в группе. При достижении оператора barrier, каждая нить останавливается и ожидает, пока остальные нити достигнут этой точки, после чего все нити продолжают работать дальше в параллельном режиме.

Синтаксис директивы barrier:

#pragma omp barrier

5. flush Поскольку в современных параллельных вычислительных системах может использоваться сложная структура и иерархия памяти, пользователь должен иметь гарантии того, что в необходимые ему моменты времени каждая нить будет видеть единый согласованный образ памяти. Для этих целей и предназначена директива flush.

flush определяет пересечение нитей (cross-thread) в точке оценки, где требуется гарантия того, что все нити в группе имеют одно и то же видение некоторых объектов памяти. Это означает, что предыдущие вычисления выражений, которые ссылаются на эти объекты памяти, были завершены, а последующие вычисления не начаты.

Синтаксис директивы flush:

#pragma omp flush [(список)]

Все переменные, которые требуют синхронизации, должны быть перечислены в списке директивы. Если в этом списке присутствует указатель, то осуществляется сброс самого указателя, а не числового значения объекта, на который он указывает.

Директива flush без списка синхронизирует все разделяемые переменные (такой способ синхронизации будет иметь значительные накладные расходы по сравнению с директивой flush со списком). Директива flush без списка может использоваться в директивах:

  • barrier.
  • При ходе или выходе из конструкции critical.
  • При ходе или выходе из конструкции ordered.
  • При выходе из конструкции parallel.
  • При выходе из конструкции for.
  • При выходе из конструкции sections.
  • При выходе из конструкции single.

 

Директиву flush нельзя использовать, если присутствует оператор nowait (т.е. выполнение без синхронизации).

 

Ограничения к использованию директивы flush:

1. Переменная, определенная в директиве flush, не должна быть ссылкой.

2. программная конструкция, которая содержит директиву barrier, должна быть блоком (или составным оператором).

 

6. ordered - директивадолжна находиться внутри конструкций for или parallel for. Программный блок, непосредственно следующий за директивой ordered, выполняется в порядке, в котором итерации цикла выполнялись бы в последовательном режиме.

Синтаксис директивы ordered:

#pragma omp ordered







Дата добавления: 2015-08-12; просмотров: 401. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

ТЕХНИКА ПОСЕВА, МЕТОДЫ ВЫДЕЛЕНИЯ ЧИСТЫХ КУЛЬТУР И КУЛЬТУРАЛЬНЫЕ СВОЙСТВА МИКРООРГАНИЗМОВ. ОПРЕДЕЛЕНИЕ КОЛИЧЕСТВА БАКТЕРИЙ Цель занятия. Освоить технику посева микроорганизмов на плотные и жидкие питательные среды и методы выделения чис­тых бактериальных культур. Ознакомить студентов с основными культуральными характеристиками микроорганизмов и методами определения...

САНИТАРНО-МИКРОБИОЛОГИЧЕСКОЕ ИССЛЕДОВАНИЕ ВОДЫ, ВОЗДУХА И ПОЧВЫ Цель занятия.Ознакомить студентов с основными методами и показателями...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Методика исследования периферических лимфатических узлов. Исследование периферических лимфатических узлов производится с помощью осмотра и пальпации...

Роль органов чувств в ориентировке слепых Процесс ориентации протекает на основе совместной, интегративной деятельности сохранных анализаторов, каждый из которых при определенных объективных условиях может выступать как ведущий...

Лечебно-охранительный режим, его элементы и значение.   Терапевтическое воздействие на пациента подразумевает не только использование всех видов лечения, но и применение лечебно-охранительного режима – соблюдение условий поведения, способствующих выздоровлению...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия