Добавить в корзинуПозвонить
Найти в Дзене

Квантовое программирование: какие навыки потребуются от разработчиков будущего?

У квантовых компьютеров огромный потенциал: ученые верят, что машина с несколькими миллионами кубитов будет способна с высокой точностью моделировать молекулярные комбинации в медицине, решать логистические задачи, строить макроэкономические прогнозы и не только. Инженеры сегодня симулируют квантовые вычисления, совершенствуют существующие алгоритмы и пишут новые — уже квантовые. Разбираемся, как

У квантовых компьютеров огромный потенциал: ученые верят, что машина с несколькими миллионами кубитов будет способна с высокой точностью моделировать молекулярные комбинации в медицине, решать логистические задачи, строить макроэкономические прогнозы и не только. Инженеры сегодня симулируют квантовые вычисления, совершенствуют существующие алгоритмы и пишут новые — уже квантовые. Разбираемся, как связано классическое и квантовое программирование и какие навыки потребуются от программистов будущего.

Чем квантовое программирование отличается от классического?

Начнем с того, что некорректно противопоставлять классическое программирование квантовому — они работают в тесной связке, потому что классический компьютер управляет всем процессом, а квантовый выступает в роли мощного ускорителя для определенных математических операций.

Специалисты сегодня используют классические языки программирования, например, Rust или Python, чтобы создать последовательность инструкций для вычислительной машины, подготовить данные, а затем через трансляторы переводят их на низкоуровневый язык квантового программирования с помощью квантовых библиотек.

Это, например, Qiskit (IBM), Cirq (Google), PyQuil (Rigetti), Q# (Microsoft), а также специализированные пакеты и надстройки, создаваемые научными коллективами. В частности, исследователи Российского квантового центра и НИТУ «МИСиС» разработали пакет на базе PennyLane, предназначенный для реализации отдельных вычислительных примитивов (примитив — базовый неделимый блок, который нельзя разбить на более мелкие составляющие, доступные для программиста), используемых, например, в алгоритме Шора.

И классический, и квантовый компьютеры являются физическими устройствами. Различие в том, что в классическом случае информация кодируется в битах (0 и 1), реализованных, например, в многоэлектронных схемах, тогда как в квантовом компьютере используются кубиты — квантовые состояния физических систем, таких как сверхпроводящие цепи, отдельные атомы, ионы или фотоны.

Таким образом, выполнение квантового алгоритма в конечном итоге сводится к управлению реальным квантовым устройством. Абстрактные инструкции алгоритма транслируются в последовательности физических управляющих воздействий — например, лазерных или микроволновых импульсов, параметры которых настраиваются в эксперименте. Эти импульсы воздействуют на физические кубиты, реализуя требуемые операции и переводя систему в состояния суперпозиции и запутанности.