- •Вычислительные процессы. Формальная модель. Свойства процесса.
- •2. Система процессов. Независимые процессы. Взаимодействие процессов.
- •Показатели параллельных вс и вычислений
- •4. Классы параллельных вс
- •5. Синхронная и асинхронная организация обмена сообщениями. Rdma.
- •Mpi: Стандарт mpi. Общие понятия. Области связи и коммуникаторы.
- •Общие процедуры mpi: Инициализация, Завершение.
- •Общие процедуры mpi: Определение общего числа параллельных процессов в группе. Определение номера процесса в группе.
- •Прием/передача сообщений между отдельными процессами (связь "точка-точка").
- •Посылка сообщения
- •Прием сообщения
- •Посылка и прием сообщения:
- •Mpi: Групповые (коллективные) взаимодействия. Рассылка целого сообщения процессам. Сборка данных от процессов. Групповые (коллективные) взаимодействия
- •Рассылка целого сообщения процессам
- •Сборка данных от процессов
- •Mpi: Групповые (коллективные) взаимодействия: Рассылка частей сообщения процессам. Сборка частей сообщения с процессов. Рассылка частей сообщения процессам
- •Выполнение глобальных операций с возвратом результатов во все процессы
- •Mpi: Синхронизация процессов. Синхронизация процессов
- •Mpi: Виртуализация топологии.
- •Декартова топология
- •Топология графа
- •Программирование мвс с общей памятью. Процессы и потоки в posix
- •OpenMp: Общие понятия. Область применения.
- •17. Директивы OpenMp: Директивы для определения параллельной области.
- •18. OpenMp: Директивы для распределения вычислений внутри параллельной области: Директива for.
- •19. OpenMp: Директивы для распределения вычислений внутри параллельной области: Директива sections. Директива single.
- •20. OpenMp: Директивы для распределения вычислений внутри параллельной области: Объединение директив parallel и for (sections).
- •Проблема тупиков в параллельных программных системах. Виды тупиков. Методы борьбы с тупиками в параллельных программных системах.
- •22.Централизованный метод обнаружения тупиков в параллельных программных системах
- •23. Децентрализованный метод обнаружения тупиков в параллельных программных системах
- •24.Предотвращение тупиков в параллельных программных системах
- •Синхронизация логического времени в параллельных программных системах
- •Синхронизация физического времени в параллельных программных системах
- •Распределение процессов по процессорам. Критерии и подходы. Распределение статической системы процессов.
- •28. Распределение процессов по процессорам. Централизованный метод “Up-Down”
- •29. Распределение процессов по процессорам. Иерархический алгоритм.
- •30. Распределение процессов по процессорам. Стохастические алгоритмы.
- •31. Формальные модели параллельных вычислений
- •Модель мультипотоковых вычислений Блумова-Лейзерсона
- •Планирование мультипотоковых вычислений. «Жадный планировщик».
- •Планирование мультипотоковых вычислений. «Занятые листья».
- •Планирование мультипотоковых вычислений. «Похитетель работ».
5. Синхронная и асинхронная организация обмена сообщениями. Rdma.
Синхронная организация обмена сообщениями
Ts – момент времени инициирования начала обмена сообщениями.
Может быть ts<tr, ts>tr,ts=tr
С точки зрения написания программы величина находится вне рамок управления (это случайная величина).
Для организации детерм. принимаются правила, что фактический обмен сообщениями реализуется среда обмена. Фактич передача происходит в момент времени t, когда 1 пр. находится в фазе передачи, а Rпр. – фазе приема сообщ (включая синхронизацию).
А зависает до тех пор, пока В войдет в фазу приема. В проверяет вошел ли А в среду обмена.
ПР.
Мехазим «рандеву» в языке ADA.
GSP – модель Хоара.
«+»:
-синхронность;
-обмен сообщениями без копирования ( сокращение накладных расходов на промежуточное буферирование)
“-“:
-бронирующие вызовы для обмена сообщениями ( прогр прерывается, промежуток м.выполн.очень долго)
Режимы вызовов передачи сообщ:
-блокирующие вызовы для обмена сообщ.
-неблокирующие вызовы
Ассинхронная передача сообщения.
ОСр переписала сообщение себе и будет ждать В. «Момент обмена сообщениями» “Send-Receive” Put-Get
Механизм удаленного доступа к памяти
RDMA-Remote Direct Memory Access
Put~RDMA_Write
Get~RDMA_Read
~RDMA_Atomi
Пример: В не спрашивают, отправка данных когда удобно. Требует предварительной регистрации обл., когда разрешается удаленный доступ.
Между A и Z с помощью Write и Read не реализовать синхронизацию (семафор).
Mpi: Стандарт mpi. Общие понятия. Области связи и коммуникаторы.
MPI (Message Passing Interface - интерфейс передачи сообщений)
Что даёт?
Стандартизация
Переносимость
Эффективность использования
Большие возможности
Системные функции MPI:
MPI_Init (командная строка)
MPI_Finalize()
MPI_Comm_Size() – сколько запущено экземпляров
MPI_Comm_rank()
MPI_Wtime – возвращает число
Область связи ("communication domain") - это нечто абстрактное: в распоряжении программиста нет типа данных, описывающего непосредственно области связи, как нет и функций по управлению ими. Области связи автоматически создаются и уничтожаются вместе с коммуникаторами. Абонентами одной области связи являются ВСЕ задачи либо одной, либо двух групп.
Коммуникатор, или описатель области связи - это верхушка трехслойного пирога (группы, области связи, описатели областей связи), в который "запечены" задачи: именно с коммуникаторами программист имеет дело, вызывая функции пересылки данных, а также подавляющую часть вспомогательных функций. Одной области связи могут соответствовать несколько коммуникаторов. Коммуникаторы являются "несообщающимися сосудами": если данные отправлены через один коммуникатор, ветвь-получатель сможет принять их только через этот же самый коммуникатор, но ни через какой-либо другой.
Копирование. Самый простой способ создания коммуникатора - скопировать "один-в-один" уже имеющийся:
MPI_Comm tempComm;
MPI_Comm_dup( MPI_COMM_WORLD, &tempComm );
/* ... передаем данные через tempComm ... */
MPI_Comm_free( &tempComm );
Новая группа при этом не создается - набор задач остается прежним. Новый коммуникатор наследует все свойства копируемого.
Помимо характеристик области связи, тело коммуникатора содержит в себе некие дополнительные данные (атрибуты). Механизм хранения атрибутов называется "caching". Атрибуты могут быть системные и пользовательские; в системных, в частности, хранятся:
адрес функции-обработчика ошибок;
описание пользовательской топологии;
максимально допустимый идентификатор для сообщений.
Атрибуты идентифицируются целыми числами, которые MPI назначает автоматически. Некоторые константы для описания системных атрибутов: MPI_TAG_UB, MPI_HOST, MPI_IO, MPI_WTIME_IS_GLOBAL. К этим атрибутам программист обращается редко, и менять их не может; а для таких часто используемых атрибутов, как обработчик ошибок или описание топологии, существуют персональные наборы функций, например, MPI_Errhandler_xxx.