В новый выпуск подкаста «Сушите вёсла» ребята позвали Андрея, инженера в области расчётов динамики ядерных реакторов, чтобы он рассказал, как сейчас обстоят дела в индустрии ядерной энергетики и что нас может ждать дальше. Традиционно обсудили, как присоединиться к такой команде, какие технологии используются в компании Андрея и бабахнет ли, если поделить на ноль в Fortran. В финале закопали немножко ядерных отходов и ушли в фотонный закат верить в лучшее.
«Сушите вёсла» — подкаст про разработку, аналитику, тестирование и всё, что связано с созданием ИТ-продуктов. Авторы — ведущий android-разработчик red_mad_robot Рома Чорыев и разработчик Артём Кулаков.
Слушайте весь подкаст по ссылке или читайте короткую выжимку — ответы на шесть главных вопросов выпуска.
Тайминг
02:35 — чем же всё-таки занимается Андрей
06:10 — что и как делают программисты в ядерной индустрии
11:40 — как выглядит программирование процессов в реакторе
15:11 — как Андрей попал в профессию
16:11 — на чём пишут «ядерные» программисты
20:40 — про среду разработки и отладку кода
22:38 — что с лицензиями для Fortran
26:00 — про утилитарность и встраиваемость программ
26:40 — как устроена работа
30:27 — какой возрастной разброс среди специалистов
31:38 — почему не используется машинное обучение
35:15 — про сложности при разработке и отладке
36:49 — как программировать без интернета
40:16 — что будет в случае ошибки
45:00 — нужна ли информационная безопасность ядерной области
47:55 — про будни ядерных проектировщиков
49:53 — про таск-менеджеры
52:15 — про распределённые вычисления
54:00 — вход в профессию
59:55 — про будущее ядерных реакторов
01:03:00 — что делать с ядерными отходами
Дисклеймер: выпуск был записан 19 июля 2022 года. По просьбе гостя мы не раскрываем его фамилию и место его работы.
Что и как делают программисты в ядерной области
Герой этого выпуска, Андрей, занимается перспективными — то есть не действующими, а запланированными, — проектами. Представьте, что есть начальная версия проекта, — с ней Андрей работает как физик. Проверяет, что будет, если что-то пойдёт не так, — например, оператор нажмет не ту кнопку, какая-нибудь система выйдет из строя или отключится электричество. Задача Андрея — выяснить, как поведёт себя проект в разных экстремальных условиях, чтобы не случилось ничего похожего на серьезную аварию вроде той, что случилась на АЭС «Фукусима-1» в 2011 году.
После этого он решает задачу — выбирает готовый программный продукт или преобразует его под новый проект и новые цели. Чаще всего каждый новый проект требует своего собственного программного обеспечения.
Говоря простыми словами, главное, для чего нужно программировании в области анализа безопасности ядерных реакторов — предсказать, что будет, когда реактор построят. По сути, я решаю системы физических уравнений, с помощью которых описываю, что происходит внутри реактора.
Андрей, инженер в области расчётов динамики ядерных реакторов
Раньше такие расчёты совершали без применения программирования — были специальные отделы людей, которые делали вычисления буквально на бумаге. Тогда считалось, что не нужно так много систем безопасности, как сейчас, да и технологически это было невозможно.
Сегодня основной принцип безопасности подобных установок состоит в том, чтобы безопасность мало зависела от человеческого фактора, подвижных механизмов или компьютеров. Теперь есть возможность считать всё намного подробнее, поэтому вероятность ошибки становится практически нулевой.
Появились более подробные физические модели, что позволяет делать более подробные расчёты, количество этих расчётов увеличилось, и их качество сильно выросло. Но задача остаётся прежней — сделать так, чтобы этот реактор был безопасным.
Андрей, инженер в области расчётов динамики ядерных реакторов
По словам гостя, его работа очень похожа на решение задач по физике из школы или института, только глубже.
Используешь физические законы, математику, иногда геометрию, чтобы логично прийти к результату. Допустим, согласовали худший сценарий, что может происходить в этой проектируемой установке, — и мне нужно определить какие-то параметры внутри, которые позволят утверждать, что ничего важного там не расплавится, никто не заболеет лучевой болезнью.
Андрей, инженер в области расчётов динамики ядерных реакторов
На чём пишут «ядерные» программисты и почему не используют Go и Rust
В отличие от общепринятого понимания программиста, который пишет свои продукты для пользования как можно большего количества людей, в ядерной индустрии всё наоборот. Здесь пишут для узкого круга — команды, поэтому важна скорость расчётов. В этой логике используется два языка программирования — либо Fortran, либо С++. Это связано с тем, что для них существуют системы, которые способны распараллелить такие расчёты и значительно сократить время. Для них есть специальная библиотека, которая работает исключительно с Fortran и с С++. Поэтому более современные языки пока использовать неудобно.
От того, какой язык программирования мы используем, закон сохранения энергии никак не изменится. Поэтому язык, на самом деле, не так важен — код остаётся очень похожим, где бы ты его ни писал. Более важны удобство или то время, за которое ты должен выдать решение. Зачастую намного проще к большому, уже работающему продукту что-то добавить и выдать хороший результат, чем пытаться писать всё заново.
Андрей, инженер в области расчётов динамики ядерных реакторов
Как устроена работа
Написанием программ занимаются команды из разных научных областей. Некоторые из них независимо делают похожие расчёты, которые сравниваются, чтобы исключить ошибку. Чтобы смоделировать всё, что происходит внутри реактора, нужны знания из разных областей физики.
Я, например, специалист в области теплофизики и гидравлики, другие люди — в области ядерной физики. Каждый пишет свои отдельно работающие куски кода, и потом мы связываем их между собой.
Андрей, инженер в области расчётов динамики ядерных реакторов
Эти части кода объединяют определённые общие переменные, и в итоге они превращаются в одну большую программу, которая работает и объединяет в себе все эти области физики. Код распределяется через локальную сеть или диски — интернет на постоянной основе не используется, потому что это небезопасно.
Но держать всё в голове невозможно. Чтобы проверить что-то — конструкцию, метод, формулу, — есть специальные компьютеры с доступом в интернет. Часто можно столкнуться не только с проблемами задачи, но и с проблемой языка программирования.
Погуглить, например, подробную таблицу свойств воды, которая была измерена где-нибудь не в России, тоже часто необходимо. Часто на тех же самых форумах Fortran приходится решать какие-то проблемы языка.
Андрей, инженер в области расчётов динамики ядерных реакторов
Какова цена ошибки
По словам Андрея, расчёты в ядерной области делаются с очень большим временным запасом, поэтому трудно представить, что допущенная сегодня ошибка не будет обнаружена и повлияет на что-то в будущем.
Есть инженерная область знаний, связанная с вероятностным анализом, где люди занимаются расчётами вероятных событий. Кроме этого — множество различных проверок, абсолютно независимых друг от друга. Допущенная ошибка в программе всегда видна по несоответствию результатов, то есть где-то один параметр не будет соответствовать другому.
Давайте вернёмся в школу — мы считали-считали какую-то задачку по физике, вроде всё хорошо посчитали, а какая-нибудь масса получается отрицательной. То же самое можно не часто, а просто увидеть в результатах расчётов, то, что один физический параметр не соответствует другому. Значит, это сигнализирует об ошибке.
Андрей, инженер в области расчётов динамики ядерных реакторов
Условия должны быть максимально консервативными и жёсткими, чтобы добиваться в конструкции того, чтобы даже при них какие-то параметры, важные для безопасности, были ниже определённого предела. Анализ безопасности должен быть максимально консервативным, чтобы на основе его результатов спроектировать лучший вариант конструкции реактора. Такая конструкция должна обеспечить непревышение пределов безопасности. Что бы ни случилось.
Как попасть в профессию
Если вам хочется писать программы для ядерных реакторов, нужно по такой специальности закончить технический вуз — МЭИ, Бауманку или МИФИ. А ещё очень хотеть программировать.
Теоретически, если опытный программист несколько лет писал backend- или frontend-системы, послушал этот выпуск и загорелся темой, — он может заниматься такой работой, но нужно подтянуть физику. Но на практике, по словам Андрея, таких случаев он не встречал.
Главное — желание. Понятно, что вуз или какая-то магистратура в течение нескольких лет даёт очень много, и параллельно её закончить — это лучшее решение.
Андрей, инженер в области расчётов динамики ядерных реакторов
Вероятно, в будущем индустрия сможет перестроиться, но сегодня первичные знания для этой работы — математика и физика, а не программирование. Однако сложно быть программистом без понимания логики, которая близка к математической.
Это ответ на вопрос, нужна ли программисту математика и физика и зачем вас ими мучают в вузах, а вы плюётесь и говорите, что всю жизнь будете «фронтенды» писать.
Артём Кулаков, разработчик, ведущий подкаста «Сушите вёсла»
Какое будущее у ядерных реакторов
Для ядерных реакторов существует много применений. Например, они могут вырабатывать электроэнергию, и это очень удобно, потому что ядерное топливо по сравнению с углём, газом и нефтью занимает очень мало места и более транспортабельно. С помощью ядерных реакторов получают лекарства — нарабатывают изотопы, которые потом используются в медицине. Есть и проекты, которые позволяют очень эффективно использовать топливо для получения электроэнергии, намного эффективнее, чем нефть или газ.
Говоря о перспективности «зелёной» энергетики в сравнении с ядерной, Андрей считает, что в будущем будет использоваться комбинированный вариант.
Всё-таки ветер и море требуют определённых условий — местности, ландшафта, а ядерная энергетика ничего не требует. Ты поставил реактор там, где удобно, и он работает, он компактный, к нему легко подвозить топливо, в том числе на каком-то автотранспорте, не нужно никаких особенных путей снабжения.
Андрей, инженер в области расчётов динамики ядерных реакторов
С точки зрения экономики на ядерные реакторы самые большие капитальные затраты по сравнению с другими станциями. Но зато потом непосредственно эксплуатация обходится в разы дешевле.
Полезные материалы
Началось строительство опытного реактора на быстрых нейтронах БРЕСТ — короткая статья о перспективах максимального использования топливаи ядерных циклах.
Белая книга ядерной энергетики — фундаментальный труд об этих концепциях под редакцией профессора Е. О. Адамова.
Слушайте нас там, где удобно, — Mave, Apple, Google Podcasts, Яндекс.Музыка.
Предыдущие выпуски подкаста «Сушите вёсла»
Криптономикон 2022: технология блокчейн и её проблемы — хитросплетения смарт-контрактов, Византийский консенсус, взлёт и падение рынка NFT и программисты новой эры.
Цифровые робингуды: про «чёрных» и «белых» хакеров, bug bounty и куда пойти опытному исследователю безопасности
«Юра, мы всё… Поехали!»: что делать программисту в космонавтике.
Приходите в наш телеграм-чат — задать вопросы о ядерной индустрии и поболтать о том о сём.
Над материалом работали:
текст, редактура — Ника Черникова,
иллюстрация — Марина Черникова.