Содержание
- 2. Москва, 2009 г. Параллельное программирование с OpenMP: Конструкции для синхронизации нитей © Бахтин В.А. из 26
- 3. из 26 #pragma omp master структурный блок /*Структурный блок будет выполнен MASTER-нитью группы. По завершении выполнения
- 4. из 26 При взаимодействии через общую память нити должны синхронизовать свое выполнение. int i=0; #pragma omp
- 5. из 26 Решение проблемы взаимного исключения должно удовлетворять требованиям: в любой момент времени только одна нить
- 6. Вычисление числа π из 26 Москва, 2009 г. Параллельное программирование с OpenMP: Конструкции для синхронизации нитей
- 7. из 26 #include int main () { int n =100000, i; double pi, h, sum, x;
- 8. из 26 #include #include int main () { int n =100000, i; double pi, h, sum,
- 9. из 26 int from_ list(float *a, int type); void work(int i, float *a); void example ()
- 10. из 26 #pragma omp atomic expression-stmt где expression-stmt: x binop= expr x++ ++x x-- --x Здесь
- 11. из 26 #include #include int main () { int n =100000, i; double pi, h, sum,
- 12. из 26 Концепцию семафоров описал Дейкстра (Dijkstra) в 1965 Семафор - неотрицательная целая переменная, которая может
- 13. из 26 Состояния семафора: uninitialized unlocked locked void omp_init_lock(omp_lock_t *lock); /* uninitialized to unlocked*/ void omp_destroy_lock(omp_lock_t
- 14. из 26 #include int main () { int n =100000, i; double pi, h, sum, x;
- 15. из 26 #include #include int main() { omp_lock_t lck; int id; omp_init_lock(&lck); #pragma omp parallel shared(lck)
- 16. из 26 #include typedef struct { int a,b; omp_lock_t lck; } pair; void incr_a(pair *p, int
- 17. из 26 #include typedef struct { int a,b; omp_nest_lock_t lck; } pair; void incr_a(pair *p, int
- 18. из 26 Точка в программе, достижимая всеми нитями группы, в которой выполнение программы приостанавливается до тех
- 19. из 26 void work(int i, int j) {} void wrong(int n) { #pragma omp parallel default(shared)
- 20. из 26 void work(int i, int j) {} void wrong(int n) { #pragma omp parallel default(shared)
- 21. из 26 void work(int i, int j) {} void wrong(int n) { #pragma omp parallel default(shared)
- 22. из 26 #pragma omp taskwait int fibonacci(int n) { int i, j; if (n return n;
- 23. из 26 #pragma omp flush [(список переменных)] По умолчанию все переменные приводятся в консистентное состояние (#pragma
- 24. из 26 Спасибо за внимание! Вопросы? Москва, 2009 г. Параллельное программирование с OpenMP: Конструкции для синхронизации
- 25. из 26 Система поддержки выполнения OpenMP-программ. Переменные окружения, управляющие выполнением OpenMP-программы. Следующая тема Москва, 2009 г.
- 27. Скачать презентацию