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

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Стандарт OpenMP. Информационные ресурсы. Лекция 3 абсолютно бесплатно. Урок-презентация на эту тему содержит всего 32 слайда. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Стандарт OpenMP. Информационные ресурсы. Лекция 3



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    32 слайда
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    1.73 MB
  • Просмотров:
    63
  • Скачиваний:
    0
  • Автор:
    неизвестен



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

№1 слайд
Содержание слайда:

№2 слайд
www.openmp.org www.openmp.org
Содержание слайда: www.openmp.org www.openmp.org http://parallel.ru/tech/tech_dev/openmp.html www.llnl.gov/computing/tutorials/workshops/workshop/openMP/MAIN.html Chandra, R., Menon R., Dagum, L., Kohr, D., Maydan, D., McDonald, J. (2000). Parallel Programming in OpemMP. Morgan Kaufmann Publishers.

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

№4 слайд
OpenMP Fortran API v . OpenMP
Содержание слайда: 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 v . OpenMP
Содержание слайда: 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 имя
Содержание слайда: Формат Формат #pragma omp имя_директивы [clause,…] Пример #pragma omp parallel default (shared) \ private (beta, pi)

№10 слайд
Содержание слайда:

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

№12 слайд
Директива parallel Директива
Содержание слайда: Директива 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 lt stdio.h gt include
Содержание слайда: #include <stdio.h> #include <stdio.h> #include <omp.h> 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 – распараллеливание циклов DO/for – распараллеливание циклов sections – распараллеливание раздельных фрагментов кода single – директива последовательного выполнения кода Синхронным является только завершение выполнения директив

№15 слайд
Директива DO for Директива DO
Содержание слайда: Директива 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 lt stdio.h gt include
Содержание слайда: #include <stdio.h> #include <stdio.h> #include <omp.h> 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: Директива section: #pragma omp sections [clause …] { #pragma omp section structured_block… } clause private (list) firstprivate (list) lastprivate (list) reduction (operator: list) nowait

№18 слайд
include lt stdio.h gt include
Содержание слайда: #include <stdio.h> #include <stdio.h> #include <omp.h> 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: Директива single: #pragma omp single [clause …] { #pragma omp section structured_block… } clause private (list) firstprivate (list) nowait

№20 слайд
include lt stdio.h gt include
Содержание слайда: #include <stdio.h> #include <stdio.h> 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 lt stdio.h gt include
Содержание слайда: #include <stdio.h> #include <stdio.h> #include <omp.h> 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 lt stdio.h gt include
Содержание слайда: #include <stdio.h> #include <stdio.h> #include <omp.h> int main(int argc, char *argv[]) { #pragma omp parallel { printf("Сообщение 1\n"); printf("Сообщение 2\n"); #pragma omp barrier printf("Сообщение 3\n"); } }

№23 слайд
include lt stdio.h gt include
Содержание слайда: #include <stdio.h> #include <stdio.h> #include <omp.h> int main(int argc, char *argv[]) { int count = 0; #pragma omp parallel { #pragma omp atomic count++; } printf("Число нитей: %d\n", count); }

№24 слайд
include lt stdio.h gt include
Содержание слайда: #include <stdio.h> #include <stdio.h> #include <omp.h> int main(int argc, char *argv[]) { int count = 0; #pragma omp parallel { #pragma omp atomic count++; } printf("Число нитей: %d\n", count); }

№25 слайд
include lt stdio.h gt include
Содержание слайда: #include <stdio.h> #include <stdio.h> #include <omp.h> 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
Содержание слайда: 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 op не перегружен: +, -, *, &, ^, |, &&, || binop не перегружен: +, -, *, &, ^, |

№28 слайд
Содержание слайда:

№29 слайд
void omp set num threads 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
Содержание слайда: 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
Содержание слайда: OMP_SCHEDULE OMP_SCHEDULE OMP_NUM_THREADS OMP_DYNAMIC OMP_NESTED

№32 слайд
Содержание слайда:

Скачать все slide презентации Стандарт OpenMP. Информационные ресурсы. Лекция 3 одним архивом: