Лаборатория синтеза параллельных программ
Основные научные направления
- Технологии параллельного программирования. Основная задача на ближайшее время - исключить параллельное программирование.
- Перспективные системы параллельного программирования.
- Теория и методы параллельного фрагментированного программирования.
- Языки высокого уровня, методы и средства параллельной реализации больших численных моделей на пета- и экза-флопсных супер-ЭВМ.
- Структурные методы автоматического конструирования параллельных программ.
- Исследование методов фрагментации алгоритма как универсального подхода к распараллеливанию численных алгоритмов.
- Исследование эффективности реализации численных фрагментированных алгоритмов на мультипроцессорах и мультикомпьютерах.
- Разработка распределенных системных алгоритмов с локальными взаимодействиями для эффективной реализации систем параллельного программирования распределенных вычислительных систем.
- Технология клеточно-автоматного моделирования нелинейных процессов в физике, химии, биологии.
- Разработка клеточно-автоматных моделей для исследования процессов в потоках жидкости, в активных средах с катализаторами, в биосистемах, в системах со сложной структурой.
- Разработка эффективных алгоритмов и программных реализаций на суперкомпьютерах клеточно-автоматных моделей физических, химических и биологических явлений на микро- и нано- уровнях.
Основные результаты
Разработаны теоретические и технологические основы параллельного фрагментированного программирования как универсального структурного подхода к автоматическому конструированию параллельных программ. Созданная платформа стала основанием для проекта LuNA – комплекса методов и средств автоматической генерации параллельных программ численного моделирования с необходимыми свойствами для исполнения на мультикомпьютерах с большим числом процессоров.
- Система фрагментированного программирования LuNA дает возможность программисту уменьшить трудоемкость разработки параллельных программ, параллельное программирование полностью исключается из процесса разработки больших численных моделей. LuNA обеспечивает автоматическую генерацию параллельных программ численного моделирования, в ней исполнение прикладной программы автоматически оптимизируется по времени путём её настройки на конфигурацию аппаратного обеспечения с учётом структуры вычислений прикладной программы (самообучение программы).
- Разработан язык высокого уровня LuNA (Language for Numerical Algorithms), на котором программист представляет свой алгоритм. Представление алгоритмов предполагает разбиение регулярных вычислений на множество фрагментов, работающих над множеством фрагментов данных. Программист в LuNA может задавать частичный порядок на множестве вычислительных фрагментов и формулировать свои «рекомендации» о распределении вычислительных фрагментов и фрагментов данных по вычислительным узлам суперкомпьютера, чтобы обеспечить свойство локальности при работе с данными. Система LuNA генерирует программу, автоматически настраивая коммуникации между узлами вычислительной системы. Автоматическая динамическая миграция процессов обеспечивает равномерную нагрузку процессоров.
- Для управления поведением фрагментированной программы разработаны средства, позволяющие задавать прямое управление на части программы, параметры освобождения ненужной более памяти («сборки мусора»). Разработаны эффективные алгоритмы реализации исполнительной системы для технологии фрагментированного программирования на неоднородных вычислительных системах.
- Разработан набор широко используемых параллельных численных подпрограмм. Выполнена фрагментация алгоритма решения системы двумерных уравнений газовой динамики в эйлеровых координатах, фрагментация алгоритма моделирования динамики самогравитирующего пылевого облака методом частиц-в-ячейках и др. Исследованы способы эффективной фрагментации численных алгоритмов на примере задач моделирования на структурированных сетках, матрично-векторных алгоритмов и метода «частиц в ячейках».
- Разработано расширение языка LuNA для описания поведения и распределения ресурсов прикладной параллельной фрагментированной программы. Разработаны системные алгоритмы, поддерживающие новые языковые средства. Испытание разработанных алгоритмов показало ускорение выполнения фрагментированных программ для ряда тестовых задач, в числе которых решение уравнения Пуассона неявным итерационным волновым методом на трехмерной регулярной решетке. Алгоритмы учитывают требования неограниченной масштабируемости при применении их на пета- и экза-флопсных суперкомпьютерах.
Современное эффективное представление и изучение сложных нелинейных процессов в физике, химии, биологии связано с созданием новых математических моделей, которые, с одной стороны, не ограничены требованиями непрерывности и дифференцируемости, а с другой стороны, легко отображаются на параллельные архитектуры современных вычислительных устройств. Основой для класса таких моделей, который является альтернативой для дифференциальных уравнений, стал клеточный автомат Джона фон Неймана. Клеточно-автоматные модели способны представлять сложные нелинейные процессы в потоках жидкости, в системах со сложной структурой, в активных средах с катализаторами, в биосистемах. Они могут использоваться для имитации на микро и нано уровнях фазовых превращений и химических взаимодействий. Множество модификаций и расширений клеточного автомата составляют концептуальный класс дискретных методов моделирования.
- Создана методологическая основа для клеточно-автоматного моделирования сложных нелинейных процессов в физике, химии, биологии. Исследованы свойства клеточно-автоматных моделей - поведенческие (нестационарное поведение, стационарные процессы), вычислительные (точность, производительность). Реальные задачи клеточно-автоматного моделирования имеют большие размеры, разработаны методы эффективной реализации их на суперкомпьютерах. Мелкозернистая параллельность дискретных методов обусловливает технологичность их реализации на современных параллельных суперкомпьютерах.
-
Накоплен большой опыт моделирования ряда физических (газодинамика, процессы в пористых материалах), химических (гетерогенные каталитические реакции) и биологических (рост и деление бактерий, самоорганизация организмов в водоеме) процессов, который подтверждает эффективность и результативность клеточно-автоматного моделирования. Исследованы и разработаны в синхронном и асинхронном вариантах клеточно-автоматные модели следующих природных процессов и явлений:
- диффузионных процессов,
- многофазных потоков жидкости,
- процессов самоорганизации,
- процесса образования кумулятивной струи из порошковой смеси с учетом химических реакций между частицами порошка, реакций на катализаторах,
- процессов образования твердых покрытий, гетерогенных каталитических реакций окисления моноокиси углерода на поверхности палладия и на частицах палладия, нанесенных на металлическую подложку.
- Путем клеточно-автоматного моделирования исследована динамика популяции организмов оз. Байкал, промоделировано влияние локального загрязнения на изменение популяции, найдены критические значения интенсивности загрязнения для сохранения популяций.