Квантовые схемы симуляторы QSIM и QSIMH. Эти симуляторы использовались для анализа перекрестной энтропии в [1].
[1], F. Arute et al., «Квантовое превосходство с использованием программируемого сверхпроводящего процессора», Nature 574, 505, (2019).
QSIM-это симулятор полного состояния Schrödinger. Он вычисляет все 2 N -амплитуды вектора состояния, где n - количество кубитов. По сути, симулятор неоднократно выполняет умножения матрицы-вектора. Умножение одного матричного вектора соответствует применению одного затвора. Общее время выполнения пропорциональна G2 N , где G -это число 2-кубитных ворот. Чтобы ускорить симулятор, мы используем слияние затвора [2] [3], однократные арифметики, инструкции AVX/FMA для векторизации и OpenMP для многопоточного.
[2] M. Smelyanciy, NP Sawaya, A. Aspuru-Guzik, «Qhipster: квантовая высокопроизводительная среда тестирования программного обеспечения», Arxiv: 1601.07195 (2016).
[3] T. Häner, DS Steiger, «0,5 моделирование петабайта квантовой схемы 45 квадбит», Arxiv: 1704.01127 (2017).
QSIMH-это гибридный симулятор Schrödinger-Feynman [4]. Решетка разделена на две части, а разложение Шмидта используется для разложения 2-кгобивых ворот на разрезе. Если ранг Шмидта в каждом воротах равен M , а количество ворот на разрезе - K , то есть пути M k . Чтобы моделировать схему с точностью, нужно моделировать все пути M K и суммировать результаты. Общее время выполнения пропорционально (2 N 1 + 2 N 2 ) M K , где n 1 и n 2 являются числами кубитов в первой и второй части. Моделирование пути не зависит друг от друга и может быть тривиально параллелизировано для работы на суперкомпьютерах или в центрах обработки данных. Обратите внимание, что можно запустить симуляции с точностью f <1, просто суммируя фракцию всех путей.
Для повышения производительности используется двухуровневая схема контрольной точки зрения. Скажем, есть k Gates на вырезании. Мы разделили их на три части: P+R+S = K , где P - количество ворот «префикс», r - это количество «корневых» ворот, а S - количество ворот «суффикс». Первая контрольная точка выполняется после применения всех ворот вплоть до и включать ворота префикса, а вторая контрольная точка выполняется после применения всех ворот вплоть до корневых ворот. Выполняется полное суммирование по всем путям для корня и суффиксов.
Если P> 0, то одно такое моделирование дает F ≈ M -p (для всех ворот префикса, имеющих одинаковый ранг Schmidt M ). Нужно запустить моделирование M P с различными путями префикса и суммировать результаты, чтобы получить F = 1 .
[4] Ил Маркован, А. Фатима, С.В. Исаков, С. Бойкс, «Квантовое превосходство находится ближе и дальше, чем кажется», Arxiv: 1807.10749 (2018).
Код в основном разработан как библиотека. Пользователь может изменить образцы приложений в приложениях для удовлетворения своих собственных потребностей. Использование применений образцов описано в документах.
Формат ввода схемы описан в документах.
Примечание: этот формат устарел и больше не поддерживается.
В целях предоставляется ряд образцов цепей.
Мощные тесты для библиотек C ++ Используют платформу Test Google и расположены в тестах. Тесты Python используют pytest и расположены в qsimcirq_tests.
Чтобы построить и запустить все тесты, запустите:
make run-tests
Это составят все тестовые двоичные файлы с файлами с расширениями .x и запустит каждый тест последовательно. Тестирование остановится рано, если тест не пройдет. Он также запустит тесты интерфейса qsimcirq python. Чтобы запустить только C ++ или Python тесты, запустите make run-cxx-tests или make run-py-tests , соответственно.
Чтобы очистить сгенерированные тестовые файлы, запустите make clean из тестового каталога.
CIRQ - это структура для моделирования и вызов зашнурных цепей квантовой (NISQ) промежуточной шкалы (NISQ).
Чтобы начать моделирование Google Cirq Circuits с QSIM, см. Учебник.
Более подробную информацию о API QSIM-CIRQ можно найти в документах.
Это не официально поддерживаемый продукт Google.
QSIM загружается в Zenodo автоматически. Нажмите на этот значок, чтобы увидеть все форматы цитирования для всех версий.
Эквивалентная ссылка на формат Bibtex приведена ниже для всех версий:
@software{quantum_ai_team_and_collaborators_2020_4023103,
author = {Quantum AI team and collaborators},
title = {qsim},
month = Sep,
year = 2020,
publisher = {Zenodo},
doi = {10.5281/zenodo.4023103},
url = {https://doi.org/10.5281/zenodo.4023103}
}