4 года Q#
Здесь вы можете увидеть все примечания к выпускам за год.
Такой же, как и когда-либо
2021 год был непохожим на другие (кроме, конечно, 2020 года). В жизни (все еще) доминировал вирус COVID-19 и меры, принятые во всем мире, чтобы попытаться контролировать его распространение.
Я и вся команда Microsoft Quantum надеемся, что вы и те, кто вам близок, продолжали благополучно переносить пандемию, и желаем вам дальнейшего здоровья и безопасности в наступающем году.
Azure Quantum
Общедоступная предварительная версия Azure Quantum была выпущена в начале этого года. Это был огромный шаг для нашей команды и для языка Q#. Среди прочего, это был первый раз, когда представители сообщества смогли запускать программы Q# на реальном квантовом оборудовании.
Большая часть работы команды в прошлом году была направлена на Azure Quantum: исправление ошибок, добавление новых функций и упрощение использования. Azure Quantum можно использовать из Python Notebooks, Q# Jupyter или интерфейса командной строки Azure. К нему также можно получить доступ с помощью REST API из любой среды, которая может создавать HTTP-запросы.
Совсем недавно мы добавили поддержку отправки квантовых схем Qiskit и Cirq поставщикам оборудования Azure Quantum. Это часть нашего стремления сделать Azure Quantum самой открытой и доступной облачной службой для квантовых вычислений.
Вы можете увидеть рабочий процесс сквозной квантовой разработки программного обеспечения с использованием Q#, QDK и Azure Quantum здесь.
Квантовое промежуточное представление
Было много новостей о стеке компилятора, особенно о QIR.
QIR Alliance
Самым большим событием является анонс нового QIR Alliance, совместных усилий по разработке перспективного квантового промежуточного представления с целью обеспечения полной совместимости в рамках квантовой экосистемы и сокращения усилий по разработке со всех сторон.
Первый этап компиляции, специфичный для QIR
Материалы QIR Alliance включают QAT, подход LLVM с учетом требований QIR. Сам QAT преобразует код из полного QIR в профиль QIR, который представляет собой ограниченное подмножество QIR, подходящее для выполнения на определенном оборудовании.
QAT полезен сам по себе, но для меня он еще более крутой, поскольку демонстрирует мощь классических инструментов компилятора, таких как LLVM, в контексте квантовых вычислений. По мере того, как квантовые компьютеры становятся более зрелыми и квантовые алгоритмы, которые можно запускать на них, становятся более сложными, потребность в оптимизации кода и преобразовании кода с помощью компилятора становится все более острой, как это было в случае с классическими вычислениями.
Инструменты Python для QIR
Также от QIR Alliance доступен pyqir, набор инструментов Python для создания и использования QIR. Я уже начал экспериментировать с использованием pyqir для генерации QIR из объектных моделей, созданных различными инструментами построения квантовых схем на основе Python. Я ожидаю увидеть гораздо больше применений pyqir в будущем!
Q#
Все это не значит, что мы не работали над самим языком Q# в течение последнего года. В начале года было проведено множество чисток синтаксиса. За этим недавно последовал новый модуль форматирования кода, который может автоматически обновлять устаревший синтаксис.
Возможно, самым значительным изменением в Q# стало внедрение вывода типов Хиндли-Милнера. Хотя это не меняет язык напрямую, но упрощает использование, удаляя некоторые ранее необходимые спецификации типов. Что еще более важно, он предоставляет функциональные возможности, которые мы можем использовать для добавления новых интересных языковых функций в будущем, таких как лямбда-выражения.