🗊 Презентация Стандарт OpenMP. Информационные ресурсы. Лекция 3

Нажмите для полного просмотра!
Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №1 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №2 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №3 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №4 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №5 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №6 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №7 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №8 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №9 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №10 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №11 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №12 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №13 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №14 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №15 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №16 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №17 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №18 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №19 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №20 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №21 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №22 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №23 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №24 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №25 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №26 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №27 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №28 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №29 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №30 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №31 Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №32

Содержание

Вы можете ознакомиться и скачать презентацию на тему Стандарт OpenMP. Информационные ресурсы. Лекция 3. Доклад-сообщение содержит 32 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №1
Описание слайда:

Слайд 2


Chandra, R., Menon R., Dagum, L., Kohr, D., Maydan, D., McDonald, J. (2000). Parallel Programming in OpemMP. Morgan Kaufmann Publishers.
Описание слайда:
Chandra, R., Menon R., Dagum, L., Kohr, D., Maydan, D., McDonald, J. (2000). Parallel Programming in OpemMP. Morgan Kaufmann Publishers.

Слайд 3


OpenMP – стандарт параллельного программирования для многопроцессорных систем с общей памятью. OpenMP – стандарт параллельного программирования для...
Описание слайда:
OpenMP – стандарт параллельного программирования для многопроцессорных систем с общей памятью. OpenMP – стандарт параллельного программирования для многопроцессорных систем с общей памятью. Модели параллельного компьютера с произвольным доступом к памяти: PRAM – parallel random-access machine

Слайд 4


OpenMP Fortran API v1.0 (1997) OpenMP Fortran API v1.0 (1997) OpenMP C/C++ API v1.0 (1998) OpenMP Fortran API v2.0 (2000) OpenMP C/C++ API v2.0...
Описание слайда:
OpenMP Fortran API v1.0 (1997) OpenMP Fortran API v1.0 (1997) OpenMP C/C++ API v1.0 (1998) OpenMP Fortran API v2.0 (2000) OpenMP C/C++ API v2.0 (2002) OpenMP C/C++/ Fortran API v2.5 (2005) OpenMP C/C++/ Fortran API v3.0 (2008) OpenMP C/C++/ Fortran API v4.0 (2013) Разработкой занимается OpenMP ARB

Слайд 5


OpenMP Fortran API v1.0 (1997) OpenMP Fortran API v1.0 (1997) OpenMP C/C++ API v1.0 (1998) OpenMP Fortran API v2.0 (2000) OpenMP C/C++ API v2.0...
Описание слайда:
OpenMP Fortran API v1.0 (1997) OpenMP Fortran API v1.0 (1997) OpenMP C/C++ API v1.0 (1998) OpenMP Fortran API v2.0 (2000) OpenMP C/C++ API v2.0 (2002) OpenMP C/C++/ Fortran API v2.5 (2005) OpenMP C/C++/ Fortran API v3.0 (2008) OpenMP C/C++/ Fortran API v4.0 (2013) Разработкой занимается OpenMP ARB

Слайд 6


Поэтапное (инкрементальное) распараллеливание Поэтапное (инкрементальное) распараллеливание Единственность разрабатываемого кода Эффективность...
Описание слайда:
Поэтапное (инкрементальное) распараллеливание Поэтапное (инкрементальное) распараллеливание Единственность разрабатываемого кода Эффективность Стандартизированность

Слайд 7


Использование потоков Использование потоков Пульсирующий («вилочный») параллелизм
Описание слайда:
Использование потоков Использование потоков Пульсирующий («вилочный») параллелизм

Слайд 8


Набор директив Набор директив Библиотека функций Набор переменных окружения
Описание слайда:
Набор директив Набор директив Библиотека функций Набор переменных окружения

Слайд 9


Формат Формат #pragma omp имя_директивы [clause,…] Пример #pragma omp parallel default (shared) \ private (beta, pi)
Описание слайда:
Формат Формат #pragma omp имя_директивы [clause,…] Пример #pragma omp parallel default (shared) \ private (beta, pi)

Слайд 10


Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №10
Описание слайда:

Слайд 11


Определение параллельной области; Определение параллельной области; Разделение работы; Синхронизация.
Описание слайда:
Определение параллельной области; Определение параллельной области; Разделение работы; Синхронизация.

Слайд 12


Директива parallel: Директива parallel: #pragma omp parallel [clause …] structured_block clause if (scalar_expression) private (list) shared (list)...
Описание слайда:
Директива parallel: Директива parallel: #pragma omp parallel [clause …] structured_block clause if (scalar_expression) private (list) shared (list) default (shared | none) firstprivate (list) reduction (operator:list) copyin (list)

Слайд 13


#include #include #include int main(int argc, char *argv[]) { int nthreads, tid; #pragma omp parallel private (nthreads, tid) { tid =...
Описание слайда:
#include #include #include int main(int argc, char *argv[]) { int nthreads, tid; #pragma omp parallel private (nthreads, tid) { tid = omp_get_thread_num(); printf(“Hello World from thread = %d\n", tid); if (tid == 0) { nthreads = omp_get_num_threads(); printf(“Number of threads = %d\n", nthreads); } } }

Слайд 14


DO/for – распараллеливание циклов DO/for – распараллеливание циклов sections – распараллеливание раздельных фрагментов кода single – директива...
Описание слайда:
DO/for – распараллеливание циклов DO/for – распараллеливание циклов sections – распараллеливание раздельных фрагментов кода single – директива последовательного выполнения кода Синхронным является только завершение выполнения директив

Слайд 15


Директива DO/for: Директива DO/for: #pragma omp for [clause …] for_loop clause scheldule (type [,chunk]) ordered private (list) firstprivate (list)...
Описание слайда:
Директива DO/for: Директива DO/for: #pragma omp for [clause …] for_loop clause scheldule (type [,chunk]) ordered private (list) firstprivate (list) lastprivate (list) shared (list) reduction (operator: list) nowait

Слайд 16


#include #include #include int main(int argc, char *argv[]) { int A[10], B[10], C[10], i, n; // Заполним исходные массивы for (i = 0; i < 10; i++) {...
Описание слайда:
#include #include #include int main(int argc, char *argv[]) { int A[10], B[10], C[10], i, n; // Заполним исходные массивы for (i = 0; i < 10; i++) { A[i] = i; B[i] = 2 * i; C[i] = 0; } #pragma omp parallel shared(A, B, C) private(i, n) { // Получим номер текущей нити n = omp_get_thread_num(); #pragma omp for for (i = 0; i < 10; i++) { C[i] = A[i] + B[i]; printf("Нить \%d сложила элементы с номером %d\n", n, i); } } }

Слайд 17


Директива section: Директива section: #pragma omp sections [clause …] { #pragma omp section structured_block… } clause private (list) firstprivate...
Описание слайда:
Директива section: Директива section: #pragma omp sections [clause …] { #pragma omp section structured_block… } clause private (list) firstprivate (list) lastprivate (list) reduction (operator: list) nowait

Слайд 18


#include #include #include int main(int argc, char *argv[]) { int n = 0; #pragma omp parallel { #pragma omp sections lastprivate(n) { #pragma omp...
Описание слайда:
#include #include #include int main(int argc, char *argv[]) { int n = 0; #pragma omp parallel { #pragma omp sections lastprivate(n) { #pragma omp section { n = 1; } #pragma omp section { n = 2; } #pragma omp section { n = 3; } } printf("Значение n на нити %d: %d\n", omp_get_thread_num(), n); } printf("Значение n в последовательной области: %d\n", n); }

Слайд 19


Директива single: Директива single: #pragma omp single [clause …] { #pragma omp section structured_block… } clause private (list) firstprivate (list)...
Описание слайда:
Директива single: Директива single: #pragma omp single [clause …] { #pragma omp section structured_block… } clause private (list) firstprivate (list) nowait

Слайд 20


#include #include int main(int argc, char *argv[]) { int n; #pragma omp parallel private(n) { n = 1; #pragma omp master { n = 2; }...
Описание слайда:
#include #include int main(int argc, char *argv[]) { int n; #pragma omp parallel private(n) { n = 1; #pragma omp master { n = 2; } printf("Первое значение n: %d\n", n); #pragma omp barrier #pragma omp master { n = 3; } printf("Второе значение n: %d\n", n); } }

Слайд 21


#include #include #include int main(int argc, char *argv[]) { int n; #pragma omp parallel { #pragma omp critical { n = omp_get_thread_num();...
Описание слайда:
#include #include #include int main(int argc, char *argv[]) { int n; #pragma omp parallel { #pragma omp critical { n = omp_get_thread_num(); printf("Нить %d\n", n); } } }

Слайд 22


#include #include #include int main(int argc, char *argv[]) { #pragma omp parallel { printf("Сообщение 1\n"); printf("Сообщение...
Описание слайда:
#include #include #include int main(int argc, char *argv[]) { #pragma omp parallel { printf("Сообщение 1\n"); printf("Сообщение 2\n"); #pragma omp barrier printf("Сообщение 3\n"); } }

Слайд 23


#include #include #include int main(int argc, char *argv[]) { int count = 0; #pragma omp parallel { #pragma omp atomic count++; } printf("Число...
Описание слайда:
#include #include #include int main(int argc, char *argv[]) { int count = 0; #pragma omp parallel { #pragma omp atomic count++; } printf("Число нитей: %d\n", count); }

Слайд 24


#include #include #include int main(int argc, char *argv[]) { int count = 0; #pragma omp parallel { #pragma omp atomic count++; } printf("Число...
Описание слайда:
#include #include #include int main(int argc, char *argv[]) { int count = 0; #pragma omp parallel { #pragma omp atomic count++; } printf("Число нитей: %d\n", count); }

Слайд 25


#include #include #include int main(int argc, char *argv[]) { int i, n; #pragma omp parallel private (i, n) { n = omp_get_thread_num(); #pragma omp...
Описание слайда:
#include #include #include int main(int argc, char *argv[]) { int i, n; #pragma omp parallel private (i, n) { n = omp_get_thread_num(); #pragma omp for ordered for (i = 0; i < 5; i++) { printf("Нить %d, итерация %d\n", n, i); #pragma omp ordered { printf("ordered: Нить %d, итерация %d\n", n, i); } } } }

Слайд 26


if (scalar_expression) if (scalar_expression) shared (list) private (list) clause: firstprivate (list) lastprivate (list) reduction (operator: list)...
Описание слайда:
if (scalar_expression) if (scalar_expression) shared (list) private (list) clause: firstprivate (list) lastprivate (list) reduction (operator: list) default (shared | none)

Слайд 27


Возможный формат записи: Возможный формат записи: x = x op expr x = expr op x x binop = expr x++, ++x, x--, --x x – скалярная переменная expr не...
Описание слайда:
Возможный формат записи: Возможный формат записи: x = x op expr x = expr op x x binop = expr x++, ++x, x--, --x x – скалярная переменная expr не ссылается на x op не перегружен: +, -, *, &, ^, |, &&, || binop не перегружен: +, -, *, &, ^, |

Слайд 28


Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №28
Описание слайда:

Слайд 29


void omp_set_num_threads(int num) void omp_set_num_threads(int num) int omp_get_max_threads(void) int omp_get_num_threads(void) int...
Описание слайда:
void omp_set_num_threads(int num) void omp_set_num_threads(int num) int omp_get_max_threads(void) int omp_get_num_threads(void) int omp_get_thread_num (void) int omp_get_num_procs (void) int omp_in_parallel (void) void omp_set_dynamic(int num) int omp_get_dynamic(void) void omp_get_nested(void) void omp_set_nested(int nested)

Слайд 30


void omp_init_lock(omp_lock_t *lock) void omp_init_lock(omp_lock_t *lock) void omp_nest_init_lock(omp_nest_lock_t *lock) void...
Описание слайда:
void omp_init_lock(omp_lock_t *lock) void omp_init_lock(omp_lock_t *lock) void omp_nest_init_lock(omp_nest_lock_t *lock) void omp_destroy_lock(omp_lock_t *lock) void omp_destroy_nest_lock(omp_nest_lock_t *lock) void omp_set_lock(omp_lock_t *lock) void omp_set_nest_lock(omp_nest_lock_t *lock) void omp_unset_lock(omp_lock_t *lock) void omp_unset_nest_lock(omp_nest_lock_t *lock) void omp_test_lock(omp_lock_t *lock) void omp_test_nest_lock(omp_nest_lock_t *lock)

Слайд 31


OMP_SCHEDULE OMP_SCHEDULE OMP_NUM_THREADS OMP_DYNAMIC OMP_NESTED
Описание слайда:
OMP_SCHEDULE OMP_SCHEDULE OMP_NUM_THREADS OMP_DYNAMIC OMP_NESTED

Слайд 32


Стандарт OpenMP. Информационные ресурсы. Лекция 3, слайд №32
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию