Лекция 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