Параллельные алгоритмы для моделирования структуры и физических свойств наноматериалов и квазикристаллов Лекция 9: Передача данных по сети Авторы: Мазуренко Владимир Владимирович Мазуренко Владимир Гаврилович Цель лекции Компетенции: способность эксплуатировать современную аппаратуру и оборудование для выполнения прикладных математических и физических исследований, направленных на решение физико-технических, естественнонаучных, экономических и иных задач способность применять на практике базовые общепрофессиональные знания теории и методов математических и физических исследований, направленных на решение инновационных инженерных, технических, экономических, экологических, информационных, технологических задач Содержание лекции 9.1. Передача данных 9.1.1. Передача данных от всех процессоров всем процессорам в сети 9.1.2. Обобщенная передача данных от одного процессора всем процессорам в сети 9.1.3. Обобщенна передача от всех процессоров всем процессорам 9.1.4. Циклический сдвиг Передача данных от всех процессоров всем процессорам сети Передача сообщений Топология Кольцо каждый процессор может инициировать рассылку своего сообщения одновременно (в каком-либо выбранном направлении по кольцу) Передача данных от всех процессоров всем процессорам сети Передача сообщений Топология решетка организуется передача сообщений раздельно по всем процессорам сети, располагающимся на одних и тех же горизонталях решетки рассылка данных выполняется по процессорам сети, образующим вертикали решетки Общая длительность Передача данных от всех процессоров всем процессорам сети Передача сообщений Топология гиперкуб обобщение способа передачи данных для топологии типа решетки на размерность гиперкуба N Передача данных от всех процессоров всем процессорам сети Передача пакетов Наиболее эффективным является метод редукции каждый процессор сразу же после приема очередного сообщения реализует требуемую обработку полученных данных (например, выполняет сложение полученного значения с имеющейся на процессоре частичной суммой) Для данных единичной длины Обобщенная передача данных от одного процессора всем остальным процессорам сети Проблема все рассылаемые сообщения являются различными Топология гиперкуб Процессор – инициатор рассылки передает половину своих сообщений одному из своих соседей (например, по первой размерности) – в результате исходный гиперкуб становится разделенным на два гиперкуба половинного размера, в каждом из которых содержится ровно половина исходных данных. действия по рассылке сообщений могут быть повторены, и общее количество повторений определяется исходной размерностью гиперкуба Обобщенная передача данных от всех процессоров всем процессорам сети Топология Кольцо Каждый процессор производит передачу всех своих исходных сообщений своему соседу (в каком-либо выбранном направлении по кольцу). процессоры осуществляют прием направленных к ним данных, затем среди принятой информации выбирают свои сообщения, после чего выполняют дальнейшую рассылку оставшейся части данных Обобщенная передача данных от всех процессоров всем процессорам сети Топология решетка организуется передача сообщений раздельно по всем процессорам сети, располагающимся на одних и тех же горизонталях решетки (каждому процессору по горизонтали передаются только те исходные сообщения, что должны быть направлены процессорам соответствующей вертикали решетки) на каждом процессоре собираются p сообщений, предназначенных для рассылки по одной из вертикалей решетки рассылка данных выполняется по процессорам сети, образующим вертикали решетки Обобщенная передача данных от всех процессоров всем процессорам сети Топология гиперкуб обобщенной множественной рассылки сообщений может быть получен путем обобщения способа выполнения операции для топологии типа решетка на размерность гиперкуба N На каждом этапе i, 1≤ i ≤ N, выполнения алгоритма функционируют все процессоры сети, которые обмениваются своими данными со своими соседями по i-й размерности и формируют объединенные сообщения. При организации взаимодействия двух соседей канал связи между ними рассматривается как связующий элемент двух равных по размеру подгиперкубов исходного гиперкуба, и каждый процессор пары посылает другому процессору только те сообщения, что предназначены для процессоров соседнего подгиперкуба. каждый процессор выполняет операций по сортировке своих сообщений перед обменом информацией со своими соседями Выводы На лекции рассмотрены основные операции коммуникации Передача данных от всех процессоров всем процессорам сети Обобщенная передача данных от одного процессора всем остальным процессорам сети Обобщенная передача данных от всех процессоров всем процессорам сети Обсуждаются модели, при помощи которых могут быть получены оценки времени выполнения операций передачи данных Литература Основные источники: В.П. Гергель, Р.Г. Стронгин, Основы параллельных вычислений для многопроцессорных систем. –Н. Новгород, ННГУ, 2001 А.А. Букатова, В.Н. Дацюк, А.И. Жегуло, Программирование многопроцессорных вычислительных систем, Ростов-на-Дону, Издательство ООО “ЦВВР”, 2003, 208 с. Вл.В. Воеводин, Параллельная обработка данных, Курс лекций Дополнительные источники: Информационно-аналитические материалы по параллельным вычислениям www.parallel.ru