Работа в операционной системе Linux и параллельные

advertisement
Лекция 14.
Параллельные алгоритмы для моделирования
структуры и физических свойств наноматериалов
и квазикристаллов
Лекция 14
Виртуальные топологии процессов
Часть I
Авторы: Мазуренко Владимир Владимирович
Скорняков Сергей Львович
Мазуренко Владимир Гаврилович
Лекция 14. Компетенции
• знание и понимание теории и методов применения математики и
информатики для построения качественных и количественных
моделей в науке, технике и технологиях
• готовность использовать основные законы естественнонаучных
дисциплин в профессиональной деятельности, применять методы
математического анализа и моделирования, теоретического и
экспериментального исследования в физике, химии, экологии,
других естественных и социально-экономических науках
• способность
применять
на
практике
базовые
общепрофессиональные знания теории и методов математических
и физических исследований, направленных на решение
инновационных инженерных, технических, экономических,
экологических, информационных, технологических задач
Лекция 14. Содержание лекции
Содержание лекции
● Определение основных понятий
● Декартова топология
Лекция 14. Топология. Основные понятия
Топология – механизм сопоставления процессам некоторого
коммуникатора альтернативной системы адресации
Топологии MPI виртуальны, т.е. не связаны с физической
топологией коммуникационной сети
Топология используется для более удобного обозначения
процессов, приближения устройства программы к структуре
математического алгоритма
Топология может использоваться системой для оптимизации
распределения процессов по физическим процессорам при
помощи изменения порядка нумерации внутри компьютера
Лекция 14. Типы топологий в MPI
В MPI предусмотрены два типа топологий:
- декартова топология (прямоугольная решётка произвольной
размерности)
- топология графа
MPI_TOPO_TEST(COMM, TYPE, IERR)
INTEGER COMM, TYPE, IERR
Процедура определения
коммуникатором comm
типа
топологии,
связанной
с
Параметр type может принимать значения:
- mpi_graph для топологии графа
- mpi_cart для декартовой топологии
- mpi_undefined с коммуникатором comm не связана никакая
топология
Лекция 14. Функции работы с топологиями
Функции и процедуры работы с декартовыми топологиями:
MPI_CART_CREATE(COMM, NDIMS, DIMS, PERIODS, REORDER,
COMM_CART,IERR)
INTEGER COMM, NDIMS, DIMS(*), COMM_CART, IERR, LOGICAL
PERIODS(*), REORDER
Процедура создания коммуникатора comm_cart, обладающей
декартовой топологией, из коммуникатора comm.
Параметр ndims задаёт размерность получаемой декартовой
решётки.
Массив dims(i) определяет число элементов в измерении i.
Логический массив periods определяет периодичность решётки
на каждом из измерений
Логический параметр reorder разрешает/запрещает менять
нумерацию процессов для оптимизации распределения по
физическим процессорам
Лекция 14. Пример создания топологии
Процедура MPI_CART_CREATE является коллективной, поэтому
должна быть вызвана всеми процессами коммуникатора comm.
Пример создания трёхмерной топологии 4x3x2, каждое
измерение которой является периодическим. Разрешено менять
нумерацию процессов.
dims(1) = 4
dims(2) = 3
dims(3) = 2
periods(1) = .TRUE.
periods(2) = .TRUE.
periods(3) = .TRUE.
call MPI_CART_CREATE(MPI_COMM_WORLD, 3, dims, periods,
& .TRUE., comm_cart, ierr)
Лекция 14. Функции работы с топологиями
MPI_DIMS_CREATE(NNODES, NDIMS, DIMS, IERR)
INTEGER NNODES,NDIMS, DIMS(*), IERR
Процедура определения размеров dims(i) для каждой из ndims
размерностей при создании декартовой топологии для nnodes
процессов. Процедура является локальной и не требует
межпроцессного взаимодействия. Предпочтительным является
создание топологии, в которой число процессов приблизительно
одинаково по всем измерениям.
MPI_CART_COORDS(COMM, RANK, MAXDIMS, COORDS, IERR)
INTEGER COMM, RANK, MAXDIMS, COORDS(*), IERR
Процедура определения декартовых координат процесса по его
рангу rank в коммуникаторе comm. Координаты возвращаются в
массиве coords с числом элементов maxdims. Отсчёт координат
по каждому измерению начинается с нуля.
Лекция 14. Функции работы с топологиями
MPI_CART_RANK(COMM, COORDS, RANK, IERR)
INTEGER COMM, COORDS(*), RANK, IERR
Определение ранга rank процесса в коммуникаторе comm по его
декартовым координатам coords. Для периодических решёток
координаты вне допустимых интервалов пересчитываются, для
непериодических решёток они считаются ошибочными.
MPI_CART_SUB(COMM, DIMS, NEWCOMM, IERR)
INTEGER COMM, NEWCOMM, IERR LOGICAL DIMS(*)
Расщепление коммуникатора comm, с которым связана декартова
топология, при помощи процедуры mpi_cart_create на
подгруппы,
соответствующие
декартовым
подрешёткам
меньшей размерности. Элемент номер i логического массива
dims устанавливается равным значению .true., если измерение
Лекция 14. Функции работы с топологиями
номер i должно оставаться в формируемой подрешётке,
связанной с коммуникатором newcomm.
Пример расщепления топологии 4х3х2 на 3 двумерных
подрешётки 4х2 по 8 процессов в каждой:
dims(0) = .TRUE.
dims(1) = .FALSE.
dims(2) = .TRUE.
call MPI_CART_SUB(comm_cart, dims, newcomm, ierr)
Лекция 14. Выводы
Выводы
• Топология – механизм сопоставления процессам некоторого
коммуникатора альтернативной системы адресации
• Топологии MPI не связаны с физической топологией
информационной сети
• В MPI предусмотрены декартовы топологии произвольной
размерности и топологии графа
Лекция 14. Список литературы
Список литературы
1. А. С. Антонов Введение в параллельные вычисления Издательство
МГУ, 2002.
2. А. А. Бунатов, В. Н. Дацюк, А. И. Жегуло Программирование
многопроцессорных вычислительных систем Ростов-на-Дону,
2003.
3. Г. И. Шпаковский, Н. В. Серикова Программирование для
многопроцессорных систем в стандарте MPI Минск БГУ, 2002.
4. А. С. Антонов Параллельное программирование с использованием
технологии MPI Издательство МГУ, 2004.
5. Материалы сайтов:
www.ibm.com
www.intuit.ru
www.parallel.ru
Download