محاكاة الدائرة الكم QSIM و QSIMH. تم استخدام هذه المحاكاة لقياس الانتروبيا المتقاطع في [1].
[1] ، F. Arute et al ، "تفوق الكم باستخدام معالج توصيل فائق قابل للبرمجة" ، Nature 574 ، 505 ، (2019).
QSIM هو محاكاة Schrödinger كاملة للمستهلك. يحسب جميع السعات 2 N من متجه الحالة ، حيث N هو عدد Qubits. في الأساس ، يقوم جهاز المحاكاة بإجراء مضاعفات المصفوفة-مرارا وتكرارا. يتوافق الضرب المصفوفة المصفوفة مع تطبيق بوابة واحدة. يتناسب إجمالي وقت التشغيل مع G2 N ، حيث G هو عدد بوابات 2 كوبيت. لتسريع جهاز المحاكاة ، نستخدم بوابة الانصهار [2] [3] ، تعليمات الحساب الدقيقة الواحدة ، AVX/FMA للتجميل و OPENMP للتعدد.
[2] M. Smelyanskiy ، NP Sawaya ، A. Aspuru-Guzik ، "Qhipster: The Quantum High Performance Proferge Environment" ، Arxiv: 1601.07195 (2016).
[3] T. Häner ، DS Steiger ، "0.5 Petabyte Simulation لدائرة كمية 45 كومة" ، Arxiv: 1704.01127 (2017).
QSIMH هو محاكاة Schrödinger-Feynman المختلطة [4]. يتم تقسيم الشبكة إلى جزأين ويستخدم تحلل Schmidt لتحليل بوابات 2 كوبيت على القطع. إذا كانت رتبة Schmidt لكل بوابة م ، وعدد البوابات الموجودة على القطع هو K ، فهناك مسارات M K. لمحاكاة دائرة مع Fidelity One ، يحتاج المرء إلى محاكاة جميع مسارات M k وتلخيص النتائج. يتناسب إجمالي وقت التشغيل مع (2 N 1 + 2 N 2 ) M K ، حيث N 1 و N 2 هما أرقام Qubit في الجزءين الأول والثاني. تكون عمليات محاكاة المسار مستقلة عن بعضها البعض ويمكن موازية بشكل تافه لتشغيلها على أجهزة الكمبيوتر العملاقة أو في مراكز البيانات. لاحظ أنه يمكن للمرء تشغيل عمليات المحاكاة باستخدام Fidelity F <1 فقط عن طريق جمع جزء من جميع المسارات.
يتم استخدام مخطط تحديد مستويين لتحسين الأداء. قل ، هناك أبواب K على القطع. قمنا بتقسيمها إلى ثلاثة أجزاء: p+r+s = k ، حيث p هو عدد بوابات "البادئة" ، R هو عدد بوابات "الجذر" و S هو عدد بوابات "لاحقة". يتم تنفيذ نقطة التفتيش الأولى بعد تطبيق جميع البوابات حتى بوابات البادئة ويتم تنفيذ نقطة التفتيش الثانية بعد تطبيق جميع البوابات حتى بوابات الجذر. يتم تنفيذ الملخص الكامل على جميع مسارات بوابات الجذر واللاحقة.
إذا كان p> 0 ، فإن إحدى هذه المحاكاة تعطي f ≈ m -p (لجميع بوابات البادئة التي لها نفس رتبة Schmidt M ). يحتاج المرء إلى تشغيل عمليات المحاكاة M P مع مسارات بادئة مختلفة وتجميل النتائج للحصول على F = 1 .
[4] Il Markov ، A. Fatima ، SV Isakov ، S. Boixo ، "إن تفوق الكم أقرب وأبعد مما يبدو" ، Arxiv: 1807.10749 (2018).
تم تصميم الكود بشكل أساسي كمكتبة. يمكن للمستخدم تعديل عينة تطبيقات في التطبيقات لتلبية احتياجاتهم الخاصة. يوصف استخدام تطبيقات العينة في المستندات.
يوصف تنسيق إدخال الدائرة في المستندات.
ملاحظة: تم إهمال هذا التنسيق ، ولم يعد يتم الحفاظ عليه بنشاط.
يتم توفير عدد من الدوائر العينة في الدوائر.
تستخدم اختبارات الوحدة لمكتبات C ++ إطار اختبار 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).
للبدء في محاكاة دوائر Google CIRQ مع QSIM ، راجع البرنامج التعليمي.
يمكن العثور على المزيد من المعلومات التفصيلية حول واجهة برمجة تطبيقات 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}
}