Ученые факультета ВМК МГУ совместно с коллегами из Института прикладной математики им. М.В. Келдыша РАН представили новый подход к разработке параллельных программ. Опыт его применения на примере решения задачи численного моделирования гидродинамических неустойчивостей опубликован в сборнике Lecture Notes in Computer Science.
Данный метод основан на использовании высокоуровневой модели параллельного программирования DVMH (Distributed Virtual Memory for Heterogeneous Systems), которая предназначена для разработки соответствующих программ для гетерогенных вычислительных кластеров с различными типами ускорителей и позволяет отказаться от использования низкоуровневых технологий программирования типа MPI, SHMEM, CUDA, OpenCL. DVMH модель скрывает конкретные технологии программирования реализации компиляторов DVMH языков. Это, в свою очередь, позволяет при необходимости расширять множество поддерживаемых архитектур, избегая значительных изменений в DVMH модели, и обеспечивает эффективную переносимость существующих DVMH программ.
Несмотря на то что модель DVMH является высокоуровневой, ее применение все равно требует достаточных знаний в области параллельных вычислений и может быть сопряжено с определенными трудностями. Способствовать решению данной проблемы может дальнейшая автоматизация процесса распараллеливания, связанная с созданием систем, которые упрощают перевод последовательной программы в параллельную. Однако полностью автоматическое распараллеливание произвольных программ сталкивается со значительными препятствиями, не позволяющими достичь приемлемой эффективности получаемых параллельных версий. Поэтому на рассматриваемые последовательные программы могут накладываться существенные ограничения, а пользователь получает возможность описывать свойства программ, которые невозможно установить автоматически.
В связи с этим перспективным видится смешанный подход, который объединяет использование высокоуровневой модели параллельного программирования, системы автоматизации, ответственной за выполнение наиболее трудоемких этапов распараллеливания, а также возможность для пользователя контролировать ход распараллеливания и принимать в нем активное участие. В качестве инструмента автоматизации может выступать система SAPFOR (System FOR Automated Parallelization), ориентированная на использование DVMH языков как целевых. С одной стороны, система включает автоматически распараллеливающий компилятор, при этом инкапсулированные в DVMH модели возможности по динамической настройке запускаемых параллельных программ упрощают его разработку. С другой стороны, система обладает широкими возможностями по статическому и динамическому анализу программ, автоматизирует выполнение преобразований исходных, позволяя пользователю выбирать отдельные фрагменты, которые должны быть преобразованы. Графический интерфейс позволяет управлять пользователю процессом распараллеливания.
«Множество параллельных программ создаются с использованием того огромного программного задела, который был получен на последовательных ЭВМ. Необходимость разработки методики распараллеливания существующих последовательных программ ощущается очень остро. В рамках спецсеминара мы пытаемся обобщить опыт распараллеливания программ и создать соответствующую методику. Такая методика поддержана специальными инструментами, которые разрабатываются при активном участии студентов и аспирантов факультета ВМК», – отметил доцент кафедры системного программирования факультета ВМК МГУ Владимир Бахтин.
Информация предоставлена пресс-службой МГУ
Источник фото: ria.ru