Z tego pytania wynika, że głównymi językami programowania obliczeń kwantowych są Q # i QISKit .
Jakie inne języki programowania są dostępne do programowania komputerów kwantowych? Czy są pewne korzyści z wyboru konkretnych?
EDYCJA: Szukam języków programowania, a nie emulatorów. Emulatory symulują różne rzeczy. Języki programowania to metoda pisania instrukcji (zarówno dla rzeczywistych obiektów, jak i emulatorów). Może istnieć jeden język, który działa dla wielu emulatorów i odwrotnie.
programming
Pro Q
źródło
źródło
Odpowiedzi:
Lista Wikipedii języków programowania komputerów kwantowych
(Ta odpowiedź nie jest kopią tej strony, jest bardziej zaktualizowana i zawiera zweryfikowane linki. W niektórych przypadkach dodaje się link autora lub link do strony internetowej).
Zestawy instrukcji kwantowych
Quil - architektura zestawu instrukcji dla obliczeń kwantowych, która po raz pierwszy wprowadziła wspólny model pamięci kwantowej / klasycznej. Zobacz także PyQuil .
OpenQASM - pośrednia reprezentacja wprowadzona przez IBM do użytku z Quantum Experience .
Kwantowe języki programowania
Języki imperatywne
QCL - Jeden z pierwszych zaimplementowanych kwantowych języków programowania.
Pseudokod kwantowy - [Właściwie to nie język, ale dobry sposób na przedstawienie algorytmów i operacji kwantowych.] EH Knill. „Konwencje dla pseudokodu kwantowego”, niepublikowane, raport LANL LAUR-96-2724 (PDF Źródło 1 , 2 ), Szukaj w arXiv wszystkich artykułów odnoszących się do pracy Knilla.
Q | SI> - Oryginalny artykuł w języku chińskim z angielskim streszczeniem. Wersja angielska na arXiv: „ Q | SI>: Quantum Programming Environment ”.
Q język - Oprogramowanie dla języka Q .
qGCL - „ Alternacja w programowaniu kwantowym: od superpozycji danych do superpozycji programów ”.
QMASM - specyficzny dla systemów D-Wave. Dokumentacja QMASM . Autor edif2qmasm i strony QMASM Scotta Pakina na LANL.
Języki funkcjonalne
QFC i QPL - strona internetowa autora .
QML - Strona główna: http://sneezy.cs.nott.ac.uk/QML/ (nie odpowiada, miesiąc później), kopia sneezy.cs.nott.ac.uk Archive.Org , rozprawa doktorska autora: „ Funkcjonalny kwantowy język programowania ”(PDF).
LIQUi |> - Rozszerzenie do F # (F Sharp).
Kwantowe obliczenia lambda - Wikipedia wymienia kilka wersji .
Quipper - skalowalny funkcjonalny język programowania oparty na Haskell do obliczeń kwantowych. Zobacz także Proto-Quipper . Dyskusja Petera Selingera (FSCD 2018) zatytułowana „ Wyzwania w kwantowych językach programowania ” ( .PDF ) omawia te języki.
Języki Multi-Paradigm
Q # (Q Sharp) - specyficzny dla domeny język programowania używany do wyrażania algorytmów kwantowych. Został pierwotnie wydany publicznie przez Microsoft jako część Quantum Development Kit. Dostępne są również Microsoft Quantum Katas , seria samouczków, których celem jest nauczenie elementów obliczeń kwantowych i programowania Q # w tym samym czasie.
Strawberry Fields (od XanduAI ) to pełna biblioteka Pythona do projektowania, symulacji i optymalizacji ciągłych zmiennych optycznych obwodów kwantowych.
Witryna Quantum Computing Report zawiera stronę z narzędziami zawierającą kilkanaście linków, niektóre nowe i niektóre powtarzające powyższą listę.
Zobacz także stronę QuanTiki: „ Lista symulatorów QC ”, gdzie znajduje się ogromna lista symulatorów i języków programowania opartych na: C / C ++, CaML, OCaml, F #, wraz z GUI, Java, JavaScript, Julia, Maple, Mathematica, Maxima , Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML i inne usługi online zapewniające kalkulatory, kompilatory, symulatory i zestawy narzędzi itp.
Jeśli planujesz używać określonego komputera kwantowego, można mieć nadzieję, że język programowania opracowany przez producenta jest zarówno odpowiedni dla tej konkretnej maszyny, jak i dobrze obsługiwany.
Wybór języka z większą liczbą oznacza, że dostępnych jest więcej forów i mam nadzieję, że więcej poprawek i wsparcia.
Niestety pozostawia to kilka świetnych produktów niszowych, które mają trudności z zdobyciem bazy użytkowników. Próba znalezienia jednego języka, który jest zarówno mocny / wyrazisty, jak i obsługiwany na różnych platformach, jest sztuczką, odpowiedzią jest opinia bankomatu.
Ryan LaRose oferuje ocenę czterech platform oprogramowania: Forest (pyQuil), QISKit, ProjectQ oraz Quantum Developer Kit w „ Omówieniu i porównaniu kwantowych platform oprogramowania ” (6 lipca 2018 r.).
Aktualizacje:
Google Cirq i OpenFermion-Cirq: „ Blog AI AI - Ogłoszenie Cirq: Open Source Framework dla algorytmów NISQ ”.
D-Wave za Leap i Ocean SDK umożliwia dostęp do systemu D-Wave 2000Q ™ w środowisku cloud z dostępem do 2000+ qubit maszyny kwantowe wyżarzanie w celu przetestowania i uruchomienia obciążenia za darmo, zakładając algorytmów podstawowych wykorzystywanych iść do basenu open source . Złóż wniosek, aby zalogować się na stronie Le-In D-Wave .
Usługa chmury kwantowej (QCS) firmy Rigetti Computing oferuje Quantum Machine Image, zwirtualizowane środowisko programistyczne i wykonawcze, które jest wstępnie skonfigurowane w Forest 2.0, aby uzyskać dostęp do 16 kubitów komputera na 128 kubitów.
Sprawdzaj na bieżąco informacje na temat Digital Annealer firmy Fujitsu , architektury zdolnej do wykonywania obliczeń około 10 000 razy szybciej niż konwencjonalny komputer. Jeśli w końcu zapewnią środowisko programistyczne, które jest kompatybilne krzyżowo z prawdziwymi komputerami kwantowymi, te dwa akapity pozostaną w tej odpowiedzi, w przeciwnym razie usunę je.
Chociaż ich chip krzemowy nie ma charakteru kwantowego, Fujitsu współpracuje z 1Qbit, aby opracować coś, co określa się mianem „ usługi chmurowej AI zainspirowanej kwantowo ”, niezależnie od tego, czy ich Digital Annealer kwacze jak kaczka (wygrzewa się jak D-Wave i używa zgodnego kodu) pozostaje do zobaczenia. Odwiedź tutaj, aby uzyskać dostęp do usługi technicznej Fujitsu Digital Annealer .
QWIRE ( chór ) University of Pennsylvania jest językiem obwodu kwantowego i narzędziem weryfikacji formalnej, ma stronę internetową GitHub .
Przegląd: Cirq, Cliffords.jl, dimod, dwave-system, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra i Aqua, Qiskit Tutorials oraz Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, reference-qvm, ScaffCC, Strawberry Fields, XACC, a wreszcie XACC VQE jest oferowany w artykule: „ Oprogramowanie open source w obliczeniach kwantowych ” (21 grudnia 2018 r.), Mark Fingerhuth, Tomáš Babej i Peter Wittek.
Od czasu do czasu wrócę do tej odpowiedzi, aby dokonywać aktualizacji bez nadmiernego obciążania .
źródło
Dostawcy sprzętu modelu bramy opracowali własne języki niskiego poziomu:
Mają one dostęp do wyższego poziomu sdk Pythona:
Rigetti pakuje również swój język w bibliotekę wyższego poziomu do wywoływania gotowych aplikacji o nazwie Grove .
Microsoft opracował Q # do działania z istniejącym symulatorem i ostatecznie ze sprzętem fizycznym.
Ponieważ powyższe języki są specyficzne dla dostawców, główną zaletą jest to, że możesz uruchamiać programy kwantowe na ich komputerach.
Poza konkretnymi językami dostawcy jest Scaffold, który jest rozwijany przez badaczy z Princeton. Ten język jest interesujący, ponieważ zawiera zestaw narzędzi do analizy programów w celu określenia kosztów, potencjału wydajności i potencjału skalowalności.
Edycja: Projekt Q to kolejna platforma umożliwiająca tworzenie programów wykorzystujących Python, które można uruchomić na dołączonym symulatorze.
Oak Ridge National Labs rozpoczął prace nad projektem o nazwie XACC, który ma na celu wyodrębnienie kodu specyficznego dla dostawcy, aby umożliwić użytkownikom dostęp do różnych platform sprzętowych bez powielania kodu w każdym języku danego dostawcy.
źródło
Lub nawet spójrz na Quipper , funkcjonalny język programowania Quantum. Z semantyką monadyczną, wbudowaną funkcją odwracalnego obliczania kwantowego, obsługą obwodów hierarchicznych i nie tylko! Używany także w praktyce - dla algorytmu obliczającego rozwiązanie równania Diraca przez LaFlamme.
źródło
Chciałbym dołączyć IBM Composer. Programowanie nie przypomina programowania, ponieważ nie otrzymujesz wszystkich błędów, błędów i funkcjonalności, ale wyraźnie konwertuje instrukcje dotyczące bramek do QASM i uruchamia je na prawdziwym symulatorze IBM lub prawdziwym komputerze kwantowym IBM (wybór to użytkownik).
źródło
Niestety lista na Quantiki jest dość stara i nie jest dobrze utrzymana. Nawet wymienienie wszystkich języków programowania kwantowego w jednej odpowiedzi na to pytanie nie jest zrównoważone, ponieważ krajobraz kwantowy stale się rozwija. Na przykład Google właśnie wypuścił Cirq , nową platformę programowania kwantowego dla komputerów Noisy Intermediate Scale Quantum (NISQ), która nie jest wymieniona w żadnej z powyższych odpowiedzi, ponieważ została ogłoszona zaledwie kilka dni temu.
Aby rozwiązać ten problem i jako odpowiedź na inne pytanie dotyczące QC StackExchange, zacząłem przygotowywać listę projektów oprogramowania open source na GitHub, która zawiera także kompleksowy przegląd aktywnie rozwijanych języków programowania ramowego i struktur. Lista jest aktywnie utrzymywana przez społeczność i stale dodajemy nowe projekty.
źródło