Нижегородец занимается вычислениями на одном из суперкомпьютеров России

Нижегородец занимается вычислениями на одном из суперкомпьютеров РоссииФото Владимира Точинова

Машина занимает 13 место в стране среди суперкомпьютеров

Суперкомпьютеры и специалисты по ним в современном мире нужны нам как воздух. Разработка лекарств и сверхбыстрых самолетов, создание мультфильмов и раскрытия загадок вселенной, за всем эти стоят они. Люди, которые, как правило, остаются в тени, но без них человечество не сможет двигаться вперед. Без ученых, что работают на суперкомпьютерах мы бы давно уперлись в потолок, каждый раз они расширяют границы научного познания и толкают прогресс вперед. Ученый и программист Валентин Волокитин уже много лет работает на суперкомпьютере. В интервью «Pro Город» нижегородец рассказал свою историю.

О работе. Меня зовут Валентин Волокитин. Я работаю в ННГУ им. Н.И. Лобачевского. Поступил сразу после школы на специальность "Прикладная математика и информатика", тогда еще на факультет вычислительной математики и кибернетики. Я пошел по стопам брата, который также закончил эту специальность, но на другом факультете нашего университета. Научиться программировать было моей мечтой. Начиная с 3 курса я начал заниматься научной деятельностью по направлению "Высокопроизводительные алгоритмы для решения задач квантовой физики".

Сейчас я аспирант 3-го года обучения в ННГУ. Работаю программистом в лаборатории суперкомпьютерных технологий и высокопроизводительных вычислений кафедры математического обеспечения и суперкомпьютерных технологий ИТММ. По совместительству являюсь младшим научным сотрудником кафедры дифференциальных уравнений, математического и численного анализа.

О деятельности лаборатории. В нашей лаборатории, как и на кафедре в целом, мы разрабатываем и улучшаем (в плане производительности) алгоритмы вычислительной математики и физики, а также пишем программное обеспечения для решения прикладных задач. Основным направлением нашей работы является эффективное использование современных вычислительных систем, в том числе кластеров (суперкомпьютеров). Такой подход позволяет создавать программное обеспечение, способное решать многие задачи быстро и эффективно.

Об обязанностях. В мои обязанности входят разработка программного кода, улучшение его производительности (алгоритмические и программные оптимизации), проведение экспериментов и подготовка данных для научной публикации. Работа же разделена на два разных направления. В первом направлении, мы разрабатываем алгоритмы решения квантовых задач огромных размеров. Также мы стараемся применить методы машинного обучения, что стало возможным благодаря развитию суперкомпьютерных технологий. Во втором проекте, связанным с численным моделированием лазерной плазмы, мы дорабатываем и расширяем программный код, а также оптимизируем его. Примечательно, что данный код был разработан в сотрудничестве с исследовательскими группами из Института прикладной физики РАН (Нижний Новгород), Гётеборгского университета (Швеция) и университета Умеа (Швеция).

Что такое суперкомпьютер? Под суперкомпьютером принято называть вычислительную машину, значительно превосходящую по вычислительной мощности обычные компьютеры. Сейчас, как правило, суперкомпьютеры часто представляют собой десятки, сотни, тысячи, а иногда и больше объединённых между собой по локальной сети компьютеров. При этом вычисления можно производить на всем суперкомпьютере (кластере) сразу или на отдельной его части, что позволяет работать на нем сразу нескольким исследовательским группам.

В ННГУ есть свой кластер, называется он СК «Лобачевский». Данный кластер был открыт в 2014 году, на момент открытия он занимал 4 место по производительности среди суперкомпьютеров России и 189 в мире. Его пиковая производительность составляет 573 TFLOPs, что эквивалентно 573 * 10^12 операций сложения и/или умножения в секунду.

Роль суперкомпьютера в технологиях. Без применения современных вычислительных машин, а уж тем более их эффективного использования, почти ни у одной группы мира нет возможности проводить востребованные исследования в областях, где так или иначе нужен вычислительный эксперимент. Также необходимы специалисты, которые обладают знаниями в области высокопроизводительных вычислений и могут работать на стыке нескольких направлений. Проведение численных исследований позволяет сократить финансово затратные натурные эксперименты. В случае же проведения натурного эксперимента, в области той же самой физики, количество получаемых данных превосходит возможности человеческого понимания и осознания. Вычислительные машины помогают привести огромное количество данных в понятный для человека вид.

О высокопроизводительных алгоритмах и вычислении. Отвечая на ваш вопрос, лучше объяснить, что такое высокая производительность программ. Под этим понимается крайне эффективное использование вычислительных ресурсов. К примеру, есть на каком-то компьютере 20 ядер в процессоре, и хотелось бы, чтобы задача решалась при использовании всех доступных ядер. По сути, это оптимизация процесса вычислений.

Самый сложный случай. Наверное, самым запоминающимся было исследование, когда мы пытались оптимизировать вычисления в алгоритме квантовых траекторий. Мы долго бились над решением этой задачи. Проблема была в том, что мы перемножали матрицу на вектор, но такая операция плохо задействовала вычислительные мощности современной архитектуры компьютера (x86_64). Поэтому наша основная задача была адаптировать вычисления под более эффективное действие – умножение матрицы на матрицу. Казалось бы, эти действия с точки зрения математики абсолютно идентичны, но абсолютно по-разному выполняются на компьютерах. Всего лишь выполнив некоторые перестановки в действиях, мы сократили время работы программы в очень существенные 20-30 раз. Хотя, казалось бы, ничего кроме порядка действий в такой программе и не поменялось.

Главные трудности. Не считая рабочих моментов, необходимо пристально следить за новыми идеями и веяниями в IT-индустрии, так как часто их можно использовать в наших задачах. В этом IT-сегмент сильно отличается от всех устоявшихся областей, именно здесь можно наблюдать колоссальное развитие отрасли и смену множества технологий в рамках крайне небольших промежутков времени. Так некоторые знания в данной сфере могут становиться неактуальными за 5-10 лет.

Совет тем, кто хочет стать программистом. Некоторые считают, что разработка ПО – это только знание языков программирования. Но на самом деле, это не так, в данной области требуется отличный математический аппарат, хорошее аналитическое мышление и развитая способность к постоянному обучению. Без этого ничего не выйдет. Но если вы будете развивать эти качества и приложите усилия, то у вас, может и не сразу, но все получится.


Примечание: Суперкомпьютер “Лобачевский” недавно прошел модернизацию. Вычислительные ресурсы суперкомпьютера расширены двумя серверами с современными графическими ускорителями NVidia A100, обеспечивающими высокую производительность в задачах искусственного интеллекта, анализа данных и высокопроизводительных вычислений. В редакции №34 от 30.03.2021 сайта “Top50”, который предоставляет список мощнейших суперкомпьютеров России, кластер СК Лобачевский занимает 13 место в стране. (Данные до модернизации)

 

...

  • 0

Популярное

Последние новости