Содержание
- 2. Москва, 2010 г. Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин В.А.
- 3. END PARALLEL PARALLEL END PARALLEL PARALLEL Выполнение OpenMP-программы Fork-Join параллелизм: Главная (master) нить порождает группу (team)
- 4. Когерентность и консистентность памяти Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин
- 5. Сеть передачи данных http://www.sgi.com/products/servers/altix/numalink.html Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин
- 6. Модели консистентности памяти из 34 Модель консистентности представляет собой некоторый договор между программами и памятью, в
- 7. Строгая консистентность из 34 Операция чтения ячейки памяти с адресом X должна возвращать значение, записанное самой
- 8. Последовательная консистентность из 34 Впервые определил Lamport в 1979 г. в контексте совместно используемой памяти для
- 9. а) удовлетворяет последовательной консистентности б) не удовлетворяет последовательной консистентности Последовательная консистентность из 34 Параллельное программирование с
- 10. Результат повторного выполнения параллельной программы в системе с последовательной консистентностью может не совпадать с результатом предыдущего
- 11. Причинная консистентность из 34 Предположим, что процесс P1 модифицировал переменную x, затем процесс P2 прочитал x
- 12. Причинная консистентность из 34 Нарушение модели причинной консистентности Корректная последовательность для модели причинной консистентности Определение потенциальной
- 13. PRAM (Pipelined RAM) и процессорная консистентность из 34 PRAM: Операции записи, выполняемые одним процессором, видны всем
- 14. Слабая консистентность (weak consistency) из 34 Пусть процесс в критической секции циклически читает и записывает значение
- 15. Слабая консистентность (weak consistency) из 34 Первое правило определяет, что все процессы видят обращения к синхронизационным
- 16. Слабая консистентность (weak consistency) из 34 Допустимая последователь- ность событий Недопустимая последовательность событий Параллельное программирование с
- 17. Консистентность по выходу из 34 В системе со слабой консистентностью возникает проблема при обращении к синхронизационной
- 18. Консистентность по выходу из 34 Следующие правила определяют требования к модели консистентности по выходу: До выполнения
- 19. 001 Модель памяти в OpenMP из 34 Нить Кэш общих переменных Общая память Private-переменные Threadprivate-переменные 001
- 20. 001 Модель памяти в OpenMP из 34 Нить 0 Общая память 001 Нить 1 static int
- 21. Консистентность памяти в OpenMP из 34 Корректная последовательность работы нитей с переменной: Нить0 записывает значение переменной
- 22. Консистентность памяти в OpenMP из 34 Если пересечение множеств переменных, указанных в операциях flush, выполняемых различными
- 23. Консистентность памяти в OpenMP из 34 #pragma omp flush [(список переменных)] По умолчанию все переменные приводятся
- 24. Классы переменных В модели программирования с разделяемой памятью: Большинство переменных по умолчанию считаются SHARED Глобальные переменные
- 25. Классы переменных double Array1[100]; int main() { int Array2[100]; #pragma omp parallel { int iam =
- 26. Можно изменить класс переменной при помощи конструкций: SHARED (список переменных) PRIVATE (список переменных) FIRSTPRIVATE (список переменных)
- 27. Конструкция PRIVATE Конструкция «private(var)» создает локальную копию переменной «var» в каждой из нитей. Значение переменной не
- 28. Конструкция FIRSTPRIVATE «firstprivate» является специальным случаем «private». Инициализирует каждую приватную копию соответствующим значением из главной (master)
- 29. Конструкция LASTPRIVATE lastprivate передает значение приватной переменной, посчитанной на последней итерации в глобальную переменную. из 34
- 30. Конструкция THREADPRIVATE Отличается от применения конструкции PRIVATE: с PRIVATE глобальные переменные маскируются THREADPRIVATE сохраняют глобальную область
- 31. Конструкция DEFAULT Меняет класс переменной по умолчанию: DEFAULT (SHARED) – действует по умолчанию DEFAULT (PRIVATE) –
- 32. из 34 Литература… http://www.openmp.org Распределенные системы. Принципы и парадигмы. / Э. Таненбаум, М. ван Стеен. –
- 33. из 34 Вопросы? Вопросы? Параллельное программирование с OpenMP: OpenMP - модель параллелизма по управлению © Бахтин
- 35. Скачать презентацию