РАЗРАБОТКА КВАНТОВОЙ ОБЛАЧНОЙ ПЛАТФОРМЫ
|
ВВЕДЕНИЕ 4
Глава 1. Предварительные теоретические сведения 9
1.1 Двумерные квантовые состояния 9
1.1.1 Квантовый бит 9
1.1.2 Эволюция 11
1.1.3 Матрицы Паули 11
1.1.4 Измерение 12
1.1.5 Квантовая запутанность 12
1.2 Состояния высокой размерности 13
1.2.1 Кудит 13
1.2.2 Обобщение матричных представлений 13
1.2.3 Обобщение измерения 14
1.3 Логическое кодирование квантовой информации 14
Глава 2. Математическая модель квантового процессорного устройства 15
2.1 Квантовая память 16
2.2 Инициализация состояний 16
2.3 Матричное представление элементарных операторов 17
2.3.1 Элементарные операторы для кубитов 17
2.3.2 Элементарные операторы для кудитов 18
2.4 Измерение 19
Глава 3. Архитектура облачной платформы для квантовых вычислений 20
Глава 4. Реализация математической модели квантового
процессорного устройства 21
4.1 Описание библиотеки для симуляции работы с кудитами . . . 21
4.1.1 Квантовый регистр кудитов 21
4.1.2 Квантовая симулятор работы кудитной системы .... 22
4.2 Описание симуляции работы квантового контролера 23
4.2.1 Память 23
4.2.2 Квантовое процессорное устройство 23
4.2.3 Инструкции управления квантовым контроллером ... 24
Глава 5. Реализация набора средств разработки квантовых алгоритмов 26
5.1 Возможности API сервера 26
5.2 Дополнительные операторы в SDK 27
5.3 Описание SDK клиента 27
5.3.1 Модуль api 27
5.3.2 Модуль base 28
5.3.3 Модуль gates 29
5.3.4 Модуль program 31
5.3.5 Модуль algorithm 31
Глава 6. Реализация квантового хеширования на кудитах 32
6.1 Алгоритм хеширования для кудитов 32
6.2 Алгоритм Reverse-теста для кудитов 33
ЗАКЛЮЧЕНИЕ 35
СПИСОК ЛИТЕРАТУРЫ 36
ПРИЛОЖЕНИЯ 44
Глава 1. Предварительные теоретические сведения 9
1.1 Двумерные квантовые состояния 9
1.1.1 Квантовый бит 9
1.1.2 Эволюция 11
1.1.3 Матрицы Паули 11
1.1.4 Измерение 12
1.1.5 Квантовая запутанность 12
1.2 Состояния высокой размерности 13
1.2.1 Кудит 13
1.2.2 Обобщение матричных представлений 13
1.2.3 Обобщение измерения 14
1.3 Логическое кодирование квантовой информации 14
Глава 2. Математическая модель квантового процессорного устройства 15
2.1 Квантовая память 16
2.2 Инициализация состояний 16
2.3 Матричное представление элементарных операторов 17
2.3.1 Элементарные операторы для кубитов 17
2.3.2 Элементарные операторы для кудитов 18
2.4 Измерение 19
Глава 3. Архитектура облачной платформы для квантовых вычислений 20
Глава 4. Реализация математической модели квантового
процессорного устройства 21
4.1 Описание библиотеки для симуляции работы с кудитами . . . 21
4.1.1 Квантовый регистр кудитов 21
4.1.2 Квантовая симулятор работы кудитной системы .... 22
4.2 Описание симуляции работы квантового контролера 23
4.2.1 Память 23
4.2.2 Квантовое процессорное устройство 23
4.2.3 Инструкции управления квантовым контроллером ... 24
Глава 5. Реализация набора средств разработки квантовых алгоритмов 26
5.1 Возможности API сервера 26
5.2 Дополнительные операторы в SDK 27
5.3 Описание SDK клиента 27
5.3.1 Модуль api 27
5.3.2 Модуль base 28
5.3.3 Модуль gates 29
5.3.4 Модуль program 31
5.3.5 Модуль algorithm 31
Глава 6. Реализация квантового хеширования на кудитах 32
6.1 Алгоритм хеширования для кудитов 32
6.2 Алгоритм Reverse-теста для кудитов 33
ЗАКЛЮЧЕНИЕ 35
СПИСОК ЛИТЕРАТУРЫ 36
ПРИЛОЖЕНИЯ 44
Квантовые компьютеры — это вычислительные машины, работающие на основе законов квантовой механики. С их помощью можно добиться повышения производительности в определенных классах задач по сравнению с классическим компьютером. Например, исследователями был представлен пример квантового превосходства в работе [1].
Для повседневных задач достаточно классического компьютера, поэтому квантовый процессор предлагается рассматривать как часть гетерогенной системы, то есть использовать его в качестве сопроцессора. Например, так используют графические процессоры, которые в определенных задачах эффективнее, чем центральные процессоры.
На данный момент квантовые машины далеки от тех, что смогут реализовать уже созданные, либо разрабатываемые сложные квантовые алгоритмы. Но и существующие разработки прототипов малодоступны общественности. Эту проблему можно решить с помощью модели облачных вычислений, предоставляющая возможность любому человеку по сети Интернет получить доступ к существующим наработкам. Так, например, появление IBM Quantum Experience [2] породило целый пласт исследовательских работ.
Далее, рассмотрим некоторые из существующих решений:
- Бристольский университет представил первую в мире облачную платформу под названием Quantum in the Cloud (Qcloud) [3] с доступом к квантовым вычислениям на 2-ух кубитном компьютере или симуляторе. В данном квантовом процессоре используются фотоны, выпускаемые из лазера, излучающий синий цвет (blue laser), с дальнейшим их запутыванием специальной оптикой [4].
Qcloud дает представление о реализации квантовых вычислений с физической точки зрения. Пользователю предоставляется доступ к облачному сервису через веб-интерфейс, либо при помощи JSON
Web API. Далее идет разбиение на два режима: “моделирование” (simulation) и “эксперимент” (experiment). Режим “эксперимент” дает доступ к реальному квантовому компьютеру.
- Впервые компанией IBM была представлена облачная платформа IBM Quantum Experience (QX) [5] с прототипом универсального квантового компьютера ibmqx2 на 5-ти сверхпроводящих кубитах и симулятором, затем — API [6] и SDK [7] для своего облачного сервиса. В октябре 2017 года исследователями компании была представлена система с моделированием до 56-ти кубит [8]. Сейчас IBM предоставляет общий доступ к 5-ти и 16-ти кубитным компьютерам. 20-ти кубитный компьютер доступен в коммерческих целях, либо партнерам и членам IBM Q Network.
Для программирования на IBM Q был создан квантовый ассемблер (Quantum Assembly Language, QASM) под названием OpenQASM [9]. Его синтаксис напоминает язык C с ассемблерными вставками. Единственными типами OpenQASM являются классические и квантовые регистры, соответственно представленными одномерными массивами битов и кубитов. Для более подробного изучения существует репозиторий [10] с описанием особенностей, примерами и инструментами для этого языка.
- Компания Rigetti Computing представила в общественный доступ свой облачный сервис для квантовых вычислений Forest [11], с возможностью моделировать алгоритмы на 36-ти кубитах, либо на 8-ми и 19-ти кубитном квантовом компьютере [12].
Rigetti Computing объединила классическую и квантовую архитектуру компьютера в гибридную под названием Quantum Abstract Machine (QAM), а также разработала язык программирования Quantum Instruction Language (Quil) [13]. Для простой разработки на языке Python, компанией был создан инструмент pyQuil [14], который генерирует программы на языке Quil.
- Компания Nippon Telegraph and Telephone Company (NTT) совместно с Японским национальным институтом информатики и Токийским университетом представила общедоступную облачную платформу QNNcloud [15], включающую прототип системы квантовых вычислений. Данная система работает на принципе линейных оптических квантовых вычислений (Linear optical quantum computing, LOQC) [16]. Парадигма LOQC базируется на фотонах, что позволяет производить вычисления при комнатной температуре, в отличие от текущих физических реализаций квантовых компьютеров, где в основе архитектуры используются кубиты, которым необходимы сверхнизкие температуры.
NTT в QNNcloud используют собственную разработанную технологию Quantum Neural Network (QNN), которая ищет решения для задач комбинаторной оптимизации путем моделирования взаимодействующих спинов с использованием объединенных в сеть оптических параметрических осцилляторов. Было показано, что данная разработка смогла найти решение задачи о максимальном разрезе, состоящей из 2000 узлов, менее чем за 100 миллисекунд, что примерно в 50 раз меньше, чем время решения с помощью подхода с имитацией отжига на центральном процессоре [17].
QNNdoud предоставляет два режима: “игровая площадка” (playground) и “вычислительная машина” (machines). Первый режим дает представление о решении задачи о максимальном разрезе на простом симуляторе, а второй — возможность произвести решение задачи непосредственно на квантовой вычислительной системе с количеством узлов в графе от 100 до 2000.
- Компьютерные системы канадской компания D-Wave Systems основаны на адиабатических квантовых вычислениях [18; 19]. Новая адиабатическая вычислительная система с увеличенным до 2048 количеством кубит была представлена в январе 2017 года под названием D-Wave 2000Q. Несмотря на то, что у данной системы относительно большое количество кубит, она рассчитана лишь на узкий круг задач оптимизации. Подробности своего компьютера компания не раскрывает. Поэтому научное сообщество ставит под сомнения их разработку.
Также D-Wave Systems был представлен инструмент Qbsolv [20], решающий большую задачу Quadratic Unconstrained Binary Optimization (QUBO) путем разбиения на подзадачи, решаемый системой от D-Wave или алгоритмом поиска с запретами (Tabu Search, TS) [21].
- Помимо разработок облачных сервисов, ведутся работы по совершенствованию инструментов разработки. Так, например, группой исследователей из Национальной лаборатории Ок-Ридж был представлен фреймворк eXtreme-scale ACCelerator programming (XACC) [22], представляющий собой API высокого уровня для использования квантового сопроцессора [23]. Этот фреймворк имеет C-подобный интерфейс, построенный на модели сопроцессора, аналогично используемой в CUDA или OpenCL для графических процессоров. То есть, XACC представляется посредником между языком программирования и сопроцессором.
Стоит отметить, что методология программирования на квантовых компьютерах только начала развиваться, а на классических компьютерах исследуется относительно давно. Используя полученный опыт, можно наиболее эффективно развивать рассматриваемую область программирования. Этот тема была рассмотрена вместе с существующими квантовыми языками программирования в работе [24].
Помимо применений квантовых битов исследуется возможность использования состояний высокой размерности (кудиты). Например, в квантовом распределения ключей одним из трех условий для безусловной секретности является то, что сообщение шифруется ключом, представляемым случайной последовательностью символов. И обычно для кодирования этой последовательности в квантовой связи используются однофотонные состояния [25]. Для повышения уровня критической ошибки разрабатываются различные протоколы, в частности, основанные на состояниях высокой размерности (кудиты) [26; 27]. Также, кудиты позволяют упростить физическую реализацию и повысить эффективность квантовых вычислений [28—30].
Таким образом, создание сервиса с возможностью выполнения вычислительных операций на кудитах является актуальной задачей на данный момент. И в данной работе представлена реализация модели облачных квантовых вычислений, которая является логическим продолжением работ [31-39].
Целью работы является создание системы квантового программирования с облачным интерфейсом.
Для достижения указанной цели необходимо разработать программную платформу, предоставляющую инфраструктуру для квантового программирования на оригинальной обобщенной физико-математической модели квантовых вычислений. Для обеспечения возможности проектирования и тестирования квантовых алгоритмов в классических визуальных средах разработки данная платформа должна включать:
- систему моделирования квантового сопроцессора;
- набор инструментов разработчика гибридных классически- квантовых приложений.
Для повседневных задач достаточно классического компьютера, поэтому квантовый процессор предлагается рассматривать как часть гетерогенной системы, то есть использовать его в качестве сопроцессора. Например, так используют графические процессоры, которые в определенных задачах эффективнее, чем центральные процессоры.
На данный момент квантовые машины далеки от тех, что смогут реализовать уже созданные, либо разрабатываемые сложные квантовые алгоритмы. Но и существующие разработки прототипов малодоступны общественности. Эту проблему можно решить с помощью модели облачных вычислений, предоставляющая возможность любому человеку по сети Интернет получить доступ к существующим наработкам. Так, например, появление IBM Quantum Experience [2] породило целый пласт исследовательских работ.
Далее, рассмотрим некоторые из существующих решений:
- Бристольский университет представил первую в мире облачную платформу под названием Quantum in the Cloud (Qcloud) [3] с доступом к квантовым вычислениям на 2-ух кубитном компьютере или симуляторе. В данном квантовом процессоре используются фотоны, выпускаемые из лазера, излучающий синий цвет (blue laser), с дальнейшим их запутыванием специальной оптикой [4].
Qcloud дает представление о реализации квантовых вычислений с физической точки зрения. Пользователю предоставляется доступ к облачному сервису через веб-интерфейс, либо при помощи JSON
Web API. Далее идет разбиение на два режима: “моделирование” (simulation) и “эксперимент” (experiment). Режим “эксперимент” дает доступ к реальному квантовому компьютеру.
- Впервые компанией IBM была представлена облачная платформа IBM Quantum Experience (QX) [5] с прототипом универсального квантового компьютера ibmqx2 на 5-ти сверхпроводящих кубитах и симулятором, затем — API [6] и SDK [7] для своего облачного сервиса. В октябре 2017 года исследователями компании была представлена система с моделированием до 56-ти кубит [8]. Сейчас IBM предоставляет общий доступ к 5-ти и 16-ти кубитным компьютерам. 20-ти кубитный компьютер доступен в коммерческих целях, либо партнерам и членам IBM Q Network.
Для программирования на IBM Q был создан квантовый ассемблер (Quantum Assembly Language, QASM) под названием OpenQASM [9]. Его синтаксис напоминает язык C с ассемблерными вставками. Единственными типами OpenQASM являются классические и квантовые регистры, соответственно представленными одномерными массивами битов и кубитов. Для более подробного изучения существует репозиторий [10] с описанием особенностей, примерами и инструментами для этого языка.
- Компания Rigetti Computing представила в общественный доступ свой облачный сервис для квантовых вычислений Forest [11], с возможностью моделировать алгоритмы на 36-ти кубитах, либо на 8-ми и 19-ти кубитном квантовом компьютере [12].
Rigetti Computing объединила классическую и квантовую архитектуру компьютера в гибридную под названием Quantum Abstract Machine (QAM), а также разработала язык программирования Quantum Instruction Language (Quil) [13]. Для простой разработки на языке Python, компанией был создан инструмент pyQuil [14], который генерирует программы на языке Quil.
- Компания Nippon Telegraph and Telephone Company (NTT) совместно с Японским национальным институтом информатики и Токийским университетом представила общедоступную облачную платформу QNNcloud [15], включающую прототип системы квантовых вычислений. Данная система работает на принципе линейных оптических квантовых вычислений (Linear optical quantum computing, LOQC) [16]. Парадигма LOQC базируется на фотонах, что позволяет производить вычисления при комнатной температуре, в отличие от текущих физических реализаций квантовых компьютеров, где в основе архитектуры используются кубиты, которым необходимы сверхнизкие температуры.
NTT в QNNcloud используют собственную разработанную технологию Quantum Neural Network (QNN), которая ищет решения для задач комбинаторной оптимизации путем моделирования взаимодействующих спинов с использованием объединенных в сеть оптических параметрических осцилляторов. Было показано, что данная разработка смогла найти решение задачи о максимальном разрезе, состоящей из 2000 узлов, менее чем за 100 миллисекунд, что примерно в 50 раз меньше, чем время решения с помощью подхода с имитацией отжига на центральном процессоре [17].
QNNdoud предоставляет два режима: “игровая площадка” (playground) и “вычислительная машина” (machines). Первый режим дает представление о решении задачи о максимальном разрезе на простом симуляторе, а второй — возможность произвести решение задачи непосредственно на квантовой вычислительной системе с количеством узлов в графе от 100 до 2000.
- Компьютерные системы канадской компания D-Wave Systems основаны на адиабатических квантовых вычислениях [18; 19]. Новая адиабатическая вычислительная система с увеличенным до 2048 количеством кубит была представлена в январе 2017 года под названием D-Wave 2000Q. Несмотря на то, что у данной системы относительно большое количество кубит, она рассчитана лишь на узкий круг задач оптимизации. Подробности своего компьютера компания не раскрывает. Поэтому научное сообщество ставит под сомнения их разработку.
Также D-Wave Systems был представлен инструмент Qbsolv [20], решающий большую задачу Quadratic Unconstrained Binary Optimization (QUBO) путем разбиения на подзадачи, решаемый системой от D-Wave или алгоритмом поиска с запретами (Tabu Search, TS) [21].
- Помимо разработок облачных сервисов, ведутся работы по совершенствованию инструментов разработки. Так, например, группой исследователей из Национальной лаборатории Ок-Ридж был представлен фреймворк eXtreme-scale ACCelerator programming (XACC) [22], представляющий собой API высокого уровня для использования квантового сопроцессора [23]. Этот фреймворк имеет C-подобный интерфейс, построенный на модели сопроцессора, аналогично используемой в CUDA или OpenCL для графических процессоров. То есть, XACC представляется посредником между языком программирования и сопроцессором.
Стоит отметить, что методология программирования на квантовых компьютерах только начала развиваться, а на классических компьютерах исследуется относительно давно. Используя полученный опыт, можно наиболее эффективно развивать рассматриваемую область программирования. Этот тема была рассмотрена вместе с существующими квантовыми языками программирования в работе [24].
Помимо применений квантовых битов исследуется возможность использования состояний высокой размерности (кудиты). Например, в квантовом распределения ключей одним из трех условий для безусловной секретности является то, что сообщение шифруется ключом, представляемым случайной последовательностью символов. И обычно для кодирования этой последовательности в квантовой связи используются однофотонные состояния [25]. Для повышения уровня критической ошибки разрабатываются различные протоколы, в частности, основанные на состояниях высокой размерности (кудиты) [26; 27]. Также, кудиты позволяют упростить физическую реализацию и повысить эффективность квантовых вычислений [28—30].
Таким образом, создание сервиса с возможностью выполнения вычислительных операций на кудитах является актуальной задачей на данный момент. И в данной работе представлена реализация модели облачных квантовых вычислений, которая является логическим продолжением работ [31-39].
Целью работы является создание системы квантового программирования с облачным интерфейсом.
Для достижения указанной цели необходимо разработать программную платформу, предоставляющую инфраструктуру для квантового программирования на оригинальной обобщенной физико-математической модели квантовых вычислений. Для обеспечения возможности проектирования и тестирования квантовых алгоритмов в классических визуальных средах разработки данная платформа должна включать:
- систему моделирования квантового сопроцессора;
- набор инструментов разработчика гибридных классически- квантовых приложений.
В результате работы на основе оригинальной обобщенной физикоматематической модели квантового сопроцессора реализована программная инфраструктура, обеспечивающая возможность квантового программирования в существующих визуальных средах разработки. Выполнены все поставленные задачи, а именно:
- разработана система моделирования квантового сопроцессора, обеспечивающая выполнение квантовых программ как на двумерных квантовых состояниях (кубитах), так и на состояниях высокой размерности (кудитах);
- предложен набор инструментов разработчика гибридных классически-квантовых приложений, обеспечивающий возможность реализации квантовых алгоритмов на языке Python 3;
- проведена апробация предложенной квантовой вычислительной платформы — реализованы базовые криптографические процедуры на основе квантового хеширования для состояний высокой размерности.
Перечисленные задачи решались с учетом возможностей разработанной в Казанском Квантовом Центре КНИТУ-КАИ архитектуры нанофотонного квантового компьютера с интегрированной квантовой памятью, работающего на основе эффекта квантового транзистора. Кроме того, впервые в подобной платформе реализована возможность вычисления на многомерных квантовых состояниях.
Реализованная квантовая облачная платформа может быть использована в области квантового программирования. Это касается как развития образовательных программ в указанной области, так и фундаментальных и прикладных научных исследований, к примеру, для создания высокоуровневых прикладных систем, использующих возможности квантовых вычислений как на кубитах, так и на кудитах.
- разработана система моделирования квантового сопроцессора, обеспечивающая выполнение квантовых программ как на двумерных квантовых состояниях (кубитах), так и на состояниях высокой размерности (кудитах);
- предложен набор инструментов разработчика гибридных классически-квантовых приложений, обеспечивающий возможность реализации квантовых алгоритмов на языке Python 3;
- проведена апробация предложенной квантовой вычислительной платформы — реализованы базовые криптографические процедуры на основе квантового хеширования для состояний высокой размерности.
Перечисленные задачи решались с учетом возможностей разработанной в Казанском Квантовом Центре КНИТУ-КАИ архитектуры нанофотонного квантового компьютера с интегрированной квантовой памятью, работающего на основе эффекта квантового транзистора. Кроме того, впервые в подобной платформе реализована возможность вычисления на многомерных квантовых состояниях.
Реализованная квантовая облачная платформа может быть использована в области квантового программирования. Это касается как развития образовательных программ в указанной области, так и фундаментальных и прикладных научных исследований, к примеру, для создания высокоуровневых прикладных систем, использующих возможности квантовых вычислений как на кубитах, так и на кудитах.



