В Барселона, внутри старой часовни Torre Girona, работает один из самых мощных суперкомпьютеров Европы — MareNostrum V.
Разработчик рассказал, как на практике выглядит работа с такой машиной. И почему это совсем не «один огромный компьютер».
Это не один компьютер, а тысячи
Главное отличие HPC от облаков вроде AWS — архитектура. Вместо одной мощной машины, задачи разбиваются и запускаются на тысячах узлов, соединенных сверхбыстрой сетью.
В MareNostrum V используется InfiniBand с топологией fat-tree. Это позволяет любому из ~8000 узлов обмениваться данными без задержек и перегрузок сети — критично для задач машинного обучения и симуляций.
Система делится на две части:
- CPU-кластер: 6408 узлов с процессорами Intel, суммарно до 45,9 петафлопс;
- GPU-кластер: 1120 узлов с NVIDIA H100, до 260 петафлопс.
Отдельно есть login-узлы. Это «входная точка», где можно только подготовить задачи, но не запускать тяжелые вычисления.
Без интернета и с жесткими правилами
Работа с суперкомпьютером резко отличается от привычного девелопмента:
- у вычислительных узлов нет доступа в интернет;
- все данные нужно заранее загрузить через SSH;
- есть лимиты на CPU-часы и количество задач;
- у каждой задачи жесткий тайм-лимит (так что если его превысить, то процесс будет убит).
Результаты тоже нельзя смотреть «вживую» — вывод сохраняется в лог-файлы, которые анализируют после выполнения.
Все решает планировщик
Запуск кода идет не напрямую, а через менеджер задач SLURM. Разработчик пишет bash-скрипт с параметрами — сколько узлов нужно, сколько процессов, сколько времени.
Дальше система сама ставит задачу в очередь, выделяет ресурсы и запускает код.
Так, автор прогнал 50 CFD-симуляций подряд, связав их в цепочку зависимостей. За ночь суперкомпьютер обработал все данные, которые потом пошли в обучение ML-модели.
Ограничение, о котором забывают
Даже на суперкомпьютере нельзя бесконечно ускорять код. Все упирается в Закон Амдала: если часть программы нельзя распараллелить, она становится узким местом.
Даже 5% последовательного кода ограничивают максимальное ускорение примерно в 20 раз — сколько бы ядер ни было.
Кроме того, слишком большое число потоков увеличивает накладные расходы на обмен данными. И это тоже может замедлить выполнение.
Квантовое ускорение
Интересная деталь: MareNostrum V уже интегрирован с квантовыми системами.
Они используются как ускорители для задач оптимизации и квантовой химии — там, где даже GPU не справляются.
