2026/2027





Введение в задачи молекулярной динамики на языке Julia
ID 1231722
Статус:
Общеуниверситетский факультатив
Кто читает:
Департамент прикладной математики
Когда читается:
3, 4 модуль
Охват аудитории:
для всех
Преподаватели:
Писарев Василий Вячеславович
Язык:
русский
Кредиты:
3
Контактные часы:
30
Программа дисциплины
Аннотация
Julia – современный высокопроизводительный язык программирования, сочетающий преимущества динамической типизации и JIT компиляции. Язык хорошо подходит для научных вычислений за счет лаконичного синтаксиса (на уровне Python и Matlab), встроенной работы с многомерными массивами и высокой производительности скомпилированных программ. В курсе рассматривается реализация алгоритмов моделирования движения частиц на языке Julia и последующего анализа траекторий. Студенты знакомятся с численными алгоритмами для моделирования уравнений движения, реализацией структур данных в языке Julia (односвязные списки, система непересекающихся множеств Union-Find), а также некоторыми алгоритмами для обработки данных – поиск ближайших соседей, кластерный анализ, вычисление радиальных функций распределения. Будет демонстрироваться использование библиотек языка Julia для анализа производительности программ, динамического выделения памяти, профилирования программ. Будут показаны приемы повышения производительности вычислительных задач за счет выбора структур данных, снижения динамических выделений памяти при работе алгоритмов, использования многопоточных вычислений.
Цель освоения дисциплины
- Получение навыков программирования на языке Julia на примере реализации достаточно крупного программного проекта
- Ознакомление с основами молекулярного моделирования для расчета свойств веществ
- Обучение основам оптимизации производительности компьютерных программ
Планируемые результаты обучения
- Уметь профилировать и оптимизировать алгоритмы, анализировать их эффективность.
- Использовать язык программирования Julia на базовом уровне
- Реализовывать численные алгоритмы классической механики для молекулярного моделирования
- Применять приемы для уменьшения динамического выделения памяти, повышения локальности данных в программах на языке Julia.
- Применять классические алгоритмы для данных, полученных в численном моделировании
- Строить 2D и 3D графики с помощью библиотек Makie и/или Plots.jl
- Использовать среды Jupyter и/или Pluto.jl для интерактивного программирования на языке Julia
- Вычислять температуру, давление, функции пространственного распределения для системы частиц
Содержание учебной дисциплины
- Основы языка Julia
- Основы молекулярного моделирования
- Производительность программ на Julia
- Обработка результатов моделирования
Элементы контроля
- Домашнее задание: перенос учебной программы из формата ноутбука в формат скрипта
- Защита практического задания: реализация потенциала взаимодействия или функции анализа траектории
Промежуточная аттестация
- 2026/2027 4th module0.4 * Домашнее задание: перенос учебной программы из формата ноутбука в формат скрипта + 0.6 * Защита практического задания: реализация потенциала взаимодействия или функции анализа траектории
Список литературы
Рекомендуемая основная литература
- Katin, K. P. Molecular dynamics in multiscale modeling : учебник / K. P. Katin, M. M. Maslov. — Москва : НИЯУ МИФИ, 2015. — 44 с. — ISBN 978-5-7262-2193-9. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/103257 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Трофимова, Т. И., Основы физики. Молекулярная физика. Термодинамика : учебное пособие / Т. И. Трофимова. — Москва : КноРус, 2021. — 180 с. — ISBN 978-5-406-04727-9. — URL: https://book.ru/book/938041 (дата обращения: 09.12.2025). — Текст : электронный.
- Энгхейм, Э. Julia в качестве второго языка : руководство / Э. Энгхейм , перевод с английского А. В. Логунова. — Москва : ДМК Пресс, 2023. — 446 с. — ISBN 978-5-93700-214-3. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/455321 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
Рекомендуемая дополнительная литература
- Rapaport, D. C. The art of molecular dynamics simulation. –Cambridge university press, 2004.
- Шеррингтон, М. Осваиваем язык Julia / М. Шеррингтон , перевод с английского А. В. Логунова. — Москва : ДМК Пресс, 2017. — 416 с. — ISBN 978-5-97060-370-3. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/97344 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.
- Шиндин, А. В. Язык программирования математических вычислений JULIA. Базовое руководство : учебно-методическое пособие / А. В. Шиндин. — Нижний Новгород : ННГУ им. Н. И. Лобачевского, 2016. — 24 с. — Текст : электронный // Лань : электронно-библиотечная система. — URL: https://e.lanbook.com/book/153036 (дата обращения: 00.00.0000). — Режим доступа: для авториз. пользователей.