MSU2011_MPI_OpenMP (811099), страница 5

Файл №811099 MSU2011_MPI_OpenMP (MSU2011_MPI_OpenMP) 5 страницаMSU2011_MPI_OpenMP (811099) страница 52020-08-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

nthreads-varОпределяет максимально возможное количество нитей в создаваемойпараллельной области.Начальное значение: зависит от реализации.Значение переменной можно изменить:C shell:setenv OMP_NUM_THREADS 16Korn shell:export OMP_NUM_THREADS=16Windows:set OMP_NUM_THREADS=16void omp_set_num_threads(int num_threads);Узнать значение переменной можно:int omp_get_max_threads(void);21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP108 из 125Internal Control Variables. run-sched-varЗадает способ распределения витков цикла между нитями, если указанаклауза schedule(runtime).Начальное значение: зависит от реализации.Существует одна копия этой переменной для каждой нити.Значение переменной можно изменить:C shell:setenv OMP_SCHEDULE "guided,4"Korn shell:export OMP_SCHEDULE "dynamic,5"Windows:typedef enum omp_sched_t {omp_sched_static = 1,omp_sched_dynamic = 2,omp_sched_guided = 3,omp_sched_auto = 4} omp_sched_t;set OMP_SCHEDULE=staticvoid omp_set_schedule(omp_sched_t kind, int modifier);Узнать значение переменной можно:void omp_get_schedule(omp_sched_t * kind, int * modifier );21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP109 из 125Система поддержки выполнения OpenMPпрограмм.int omp_get_num_threads(void);-возвращает количество нитей в текущей параллельной области#include <omp.h>void work(int i);void test(){int np;np = omp_get_num_threads(); /* np == 1*/#pragma omp parallel private (np){np = omp_get_num_threads();#pragma omp for schedule(static)for (int i=0; i < np; i++)work(i);}}21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP110 из 125Система поддержки выполнения OpenMPпрограмм.int omp_get_thread_num(void);-возвращает номер нити в группе [0: omp_get_num_threads()-1]#include <omp.h>void work(int i);void test(){int iam;iam = omp_get_thread_num(); /* iam == 0*/#pragma omp parallel private (iam){iam = omp_get_thread_num();work(iam);}}21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP111 из 125Система поддержки выполнения OpenMPпрограмм.int omp_get_num_procs(void);-возвращает количество процессоров, на которых программа выполняется#include <omp.h>void work(int i);void test(){int nproc;nproc = omp_get_num_ procs();#pragma omp parallel num_threads(nproc){int iam = omp_get_thread_num();work(iam);}}21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP112 из 125Система поддержки выполнения OpenMP-программ.Функции работы со временемdouble omp_get_wtime(void);возвращает для нити астрономическое время в секундах, прошедшее снекоторого момента в прошлом.

Если некоторый участок окружить вызовамиданной функции, то разность возвращаемых значений покажет время работыданного участка. Гарантируется, что момент времени, используемый вкачестве точки отсчета, не будет изменен за время выполнения программы.double start;double end;start = omp_get_wtime();/*...

work to be timed ...*/end = omp_get_wtime();printf("Work took %f seconds\n", end - start);double omp_get_wtick(void);- возвращает разрешение таймера в секундах (количество секунд междупоследовательными импульсами таймера).21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP113 из 125Материалы по курсу Презентация доступна:ftp://ftp.keldysh.ru/K_student/MSU2011/MSU2011_MPI_OpenMP.pdf21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP114 из 125Литература OpenMP Application Program Interface Version 3.0, May 2008.http://www.openmp.org/mp-documents/spec30.pdf MPI: A Message-Passing Interface Standard Version 2.2, September2009. http://www.mpi-forum.org/docs/mpi-2.2/mpi22-report.pdf Антонов А.С.

Параллельное программирование с использованиемтехнологии OpenMP: Учебное пособие.-М.: Изд-во МГУ, 2009.http://parallel.ru/info/parallel/openmp/OpenMP.pdf Антонов А.С. Параллельное программирование с использованиемтехнологии MPI: Учебное пособие.-М.: Изд-во МГУ, 2004.http://parallel.ru/tech/tech_dev/MPI/mpibook.pdf Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. – СПб.:БХВ-Петербург, 2002. Э. Таненбаум, М. ван Стеен. Распределенные системы. Принципы ипарадигмы. – СПб. Питер, 200321 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP115 из 125АвторБахтин Владимир Александрович, кандидат физико-математических наук,заведующий сектором Института прикладной математики им.

М.В. Келдыша РАН,bakhtin@keldysh.ru21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP116 из 125Инициализация и завершение MPI программПервой вызываемой функцией MPI должна быть функция:int MPI_Init ( int *agrc, char ***argv )Для инициализации среды выполнения MPI-программы. Параметрами функции являютсяколичество аргументов в командной строке и текст самой командной строки.Последней вызываемой функцией MPI обязательно должна являться функция:int MPI_Finalize (void)Обратно21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP117 из 125Определение количества и ранга процессовОпределение количества процессов в выполняемой параллельной программеосуществляется при помощи функции:int MPI_Comm_size ( MPI_Comm comm, int *size ).Для определения ранга процесса используется функция:int MPI_Comm_rank ( MPI_Comm comm, int *rank ).Обратно21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP118 из 125Неблокирующие обмены данными междупроцессорамиДля передачи сообщения процесс-отправитель должен выполнить функцию:int MPI_Isend(void *buf, int count, MPI_Datatype type, int dest,int tag, MPI_Comm comm, MPI_Request *request),где• buf - адрес буфера памяти, в котором располагаются данные отправляемого сообщения,• count - количество элементов данных в сообщении,• type - тип элементов данных пересылаемого сообщения,• dest - ранг процесса, которому отправляется сообщение,Обратно• tag - значение-тег, используемое для идентификации сообщений,• comm - коммуникатор, в рамках которого выполняется передача данных.Для приема сообщения процесс-получатель должен выполнить функцию:int MPI_Irecv(void *buf, int count, MPI_Datatype type, int source,int tag, MPI_Comm comm, MPI_Status *status, MPI_Request *request),где•buf, count, type - буфер памяти для приема сообщения, назначение каждого отдельногопараметра соответствует описанию в MPI_Send,•source - ранг процесса, от которого должен быть выполнен прием сообщения,•tag - тег сообщения, которое должно быть принято для процесса,•comm - коммуникатор, в рамках которого выполняется передача данных,•status - указатель на структуру данных с информацией о результате выполнения операцииприема данных.21 февраля119 из 125Гибридная модель программирования MPI/OpenMPМосква, 2011MPI_WaitallОжидание завершения всех операций обмена осуществляется при помощи функции:int MPI_Waitall(int count,MPI_Request array_of_requests[],MPI_Status array_of_statuses[])Обратно21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP120 из 125MPI_Cart_createСоздание декартовой топологии (решетки) в MPI:int MPI_Cart_create(MPI_Comm oldcomm, int ndims, int *dims, int *periods,int reorder, MPI_Comm *cartcomm),где:• oldcomm - исходный коммуникатор,• ndims - размерность декартовой решетки,• dims - массив длины ndims, задает количество процессов в каждом измерении решетки,• periods - массив длины ndims, определяет, является ли решетка периодической вдолькаждого измерения,• reorder - параметр допустимости изменения нумерации процессов,• cartcomm - создаваемый коммуникатор с декартовой топологией процессов.Обратно21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP121 из 125MPI_Cart_shiftФункция:int MPI_Card_shift(MPI_Comm comm, int dir, int disp, int *source, int *dst)для получения номеров посылающего(source) и принимающего (dst) процессов вдекартовой топологии коммуникатора (comm) для осуществления сдвига вдоль измеренияdir на величину disp.Обратно21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP122 из 125MPI_Card_coordsОпределение декартовых координат процесса по его рангу:int MPI_Card_coords(MPI_Comm comm,int rank,int ndims,int *coords),где:•comm - коммуникатор с топологией решетки,• rank - ранг процесса, для которого определяются декартовы координаты,• ndims - размерность решетки,• coords - возвращаемые функцией декартовы координаты процесса.Обратно21 февраляМосква, 2011Гибридная модель программирования MPI/OpenMP123 из 125MPI_Type_vectorДля снижения сложности в MPI предусмотрено несколько различных способовконструирования производных типов:• Непрерывный способ позволяет определить непрерывный набор элементовсуществующего типа как новый производный тип,• Векторный способ обеспечивает создание нового производного типа как набораэлементов существующего типа, между элементами которого существуют регулярныепромежутки по памяти.

Характеристики

Тип файла
PDF-файл
Размер
2,02 Mb
Материал
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6417
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее