2026/2027





Введение в задачи молекулярной динамики на языке Julia
ID 1231721
Статус:
Общеуниверситетский факультатив
Кто читает:
Департамент прикладной математики
Когда читается:
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 * Защита практического задания: реализация потенциала взаимодействия или функции анализа траектории
Список литературы
Рекомендуемая основная литература
- Julia в качестве второго языка - Энгхейм Э. - Издательство "ДМК Пресс" - 978-5-93700-214-3 - 2023 - русский - https://e.lanbook.com/book/455321 - ЛАНЬ - 455321
- Molecular dynamics in multiscale modeling - Katin K.P., Maslov M.M. - Национальный исследовательский ядерный университет «Московский инженерно-физический институт» - 978-5-7262-2193-9 - 2015 - русский - https://e.lanbook.com/book/103257 - ЛАНЬ - 103257
- Трофимова, Т. И., Основы физики. Молекулярная физика. Термодинамика : учебное пособие / Т. И. Трофимова. — Москва : КноРус, 2021. — 180 с. — ISBN 978-5-406-04727-9. — URL: https://book.ru/book/938041 (дата обращения: 01.07.2026). — Текст : электронный.
Рекомендуемая дополнительная литература
- Rapaport, D. C. The art of molecular dynamics simulation. –Cambridge university press, 2004.
- Осваиваем язык Julia - Шеррингтон М. - Издательство "ДМК Пресс" - 978-5-97060-370-3 - 2017 - русский - https://e.lanbook.com/book/97344 - ЛАНЬ - 97344
- Язык программирования математических вычислений JULIA. Базовое руководство - Шиндин А. В. - Национальный исследовательский Нижегородский государственный университет им. Н.И. Лобачевского - - - 2016 - русский - https://e.lanbook.com/book/153036 - ЛАНЬ - 153036