Введение в автоматическое конструирование эффективных параллельных программ в предметных областях на основе концепции активных знаний
Докладчик: Перепёлкин Владислав Александрович, к.т.н., с.н.с. ИВМиМГ СО РАН
Автоматизация конструирования параллельных программ актуальна ввиду того, что позволяет снижать сложность и трудоёмкость для человека процесса разработки параллельных программ, а также повышать их качество. Проблемой является обеспечение достаточно высокой эффективности конструируемых программ. Удовлетворительных универсальных подходов тут нет. Концепция активных знаний -- это подход, который позволяет обеспечивать достаточно хорошее качество конструируемых программ в пределах некоторой предметной области. Для этого требуется создать частичное формальное её описание -- базу активных знаний. В докладе излагаются основы концепции активных знаний и даётся представление о системе LuNA, способной автоматически строить параллельные программы на основе базы активных знаний.
Время в моделях систем с дискретными событиями
Докладчик: Скопин Игорь Николаевич, к.ф-м.н., с.н.с. ИВМиМГ СО РАН
Рассматривается проблематика определения модельного времени при исследовании развивающихся систем. Обосновывается отказ от концепции абсолютного глобального времени в пользу подхода, основанного на событийных протоколах элементов. Локальное время элемента может быть представлено как частично упорядоченное множество событий, в которых он участвует. Объединение таких протоколов формирует глобальное время системы в виде отношения частичного порядка. Подчеркивается связь концепции с событийным механизмом управления в имитационных моделях. Обсуждаются преимущества предлагаемой модели для адекватного отражения причинно-следственных связей и верификации корректности взаимодействий.
Параллельная программная реализация клеточных автоматов на распределенных вычислительных системах
Докладчик: Медведев Юрий Геннадьевич, к.т.н., с.н.с. ИВМиМГ СО РАН
Рассмотрены основные понятия теории клеточных автоматов (КА) и способы применения КА для моделирования физических, химических и биологических процессов. Изложены методы эффективной программной реализации КА в системах с общей и распределенной памятью. Для реализации в системах с общей памятью применяется библиотека OpenMP, для реализации в системах с распределенной памятью - библиотека MPI. Программная реализация КА выполняется с использованием библиотеки КА топологий CATlib, которая, в свою очередь, использует указанные средства параллельной реализации. Рассмотрен вопрос балансировки нагрузки на узлы кластера, дана оценка производительности и эффективности параллельной реализации. В качестве примеров приведены задачи моделирования газовых потоков, реакционно-диффузионных процессов и распространения электромагнитных волн.
Мастер-класс "Программирование клеточно-автоматных моделей"
Докладчик: Бурнышев Егор Константинович, студент 1 курса магистратуры ФПМИ НГТУ
Рассмотрены области применения клеточно-автоматного подхода. Приведена классификация клеточных автоматов. Освещен ряд задач, решенных с помощью данного метода, а также нашедших применение в различных отраслях науки. Изложены основные особенности программной реализации клеточно-автоматных моделей пространственной динамики при помощи библиотеки CATlib. Описаны функциональные возможности предоставляемого CATlib инструментария и способы его использования. В рамках мастер-класса рассмотрена демонстрационная модель игры «камень, ножницы, бумага» на клеточном массиве с квадратной топологией. Осуществлена ее программная реализация.
Review of Tools and Methods for Programming Automation (Обзор средств для автоматизации программирования)
Докладчик: Парфенов Денис Романович, аспирант ФИТ НГУ
При разработка программ, решающих прикладные вычислительные задачи, необходимо учитывать множество факторов. В том числе, специфику прикладной предметной области и характеристики оборудования. Каждый из этих факторов по-разному влияет на сложность написания эффективных программ: при реализации необходимо учитывать особенности вычислительного устройства и требования ко времени работы и точности, но иногда может быть и вовсе сложно выразить алгоритм решения задачи на существующих языках программирования. В этом докладе рассматриваются различные средства, упрощающие разработку высокопроизводительных программ: от генераторов программ по описанию задачи на специально разработанном DSL, которые позволяют автоматически получать эффективные программы по высокоуровневому описанию алгоритма, до runtime-систем, которые позволяют эффективно использовать распределённые вычислительные системы и освобождают прикладных программистов от необходимости реализации системных алгоритмов.
