Skip to content
Nikita Kataev edited this page Oct 10, 2019 · 15 revisions

SAPFOR (System FOR Automated Parallelization)

Система автоматизированного распараллеливания программ SAPFOR (System FOR Automate Parallelization) включает набор различных инструментов, разрабатываемых с целью снижения сложности и уменьшения времени создания параллельных программ на языках программирования Фортран и Си. SAPFOR, являясь частью DVM-системы и разрабатывается в ИПМ им. М.В.Келдыша РАН при активном участии аспирантов и студентов факультета ВМК МГУ им. М.В.Ломоносова.

Разработка системы SAPFOR включает три основных направления исследований:

  • Исследование характеристик и свойств программы (профилирование, анализ зависимостей по данным и др.).
  • Автоматическое распараллеливание «хорошо» написанных потенциально параллельных программ. Данный подход предполагает следование определенным правилам при разработке программ на традиционных последовательных языках программирования (Фортран и Си), а также возможность дополнительного описание свойств программ с использованием директив определнного вида (например, указание отсутствия зависимостей по данным в цикле).
  • Автоматизированное преобразование программ к потенциальному параллельному виду. Устранение зависимостей в программе, оптимизация доступа к памяти, изменение структуры хранения данных и структуры вычислений (подстановка процедур и переменных, преобразование циклов и др.).

Git-репозиторий предоставляет доступ к версии системы SAPFOR, разрабатываемой на базе набора компиляторных технологий LLVM. В данный момент в большей степени поддерживается язык Си, при этом некоторые возможности анализа программ на языке Фортран также уже доступны.

Основным инструментом для анализа и преобразования программ является TSAR (Traits Static AnalyzeR. Инструмент позволяет управлять анализом и преобразованием программ из коммандной строки, в том числе опираясь на результаты динамического анализа програм, реализованного в инструменте DYNA (DYNamic Analyzer) системы SAPFOR.

Документация

Если Вы хотите воспользоваться SAPFOR, то посмотрите руководство по сборке и использованию системы. Система может быть собрана как в Unix-подобных системах (Ubuntu, FreeBSD и др.), так и на машинах под управлением ОС Windows. В случае использования Unix-подобных систем требуемые компоненты LLVM могут быть получены из соответсвующих пакетов, при использовании OC Windows потребуется сборка LLVM из исходных кодов.

Некоторые особенности, связанные с процессом разработки SAPFOR, отражены в руководстве разработчика.

Вопросы и замечания можно присылать, воспользовавшись формой связи на сайте проекта DVM-системы.