Czy są emulatory dla komputerów kwantowych?

64

Czy jest jakiś sposób emulacji komputera kwantowego na moim normalnym komputerze, aby móc testować i wypróbować kwantowe języki programowania (takie jak Q # )? Mam na myśli coś, co naprawdę mogę przetestować moją hipotezę i uzyskać najbardziej dokładne wyniki.

Aktualizacja: Tak naprawdę nie szukam symulacji komputera kwantowego, ale nie jestem pewien, czy można go skutecznie emulować na zwykłym komputerze nieopartym na kwantach.

Michel Gokan
źródło

Odpowiedzi:

39

Tak, jest to możliwe (ale powolne). Istnieje kilka istniejących emulatorów (to tylko częściowa lista):

  • QDD: A Quantum Computer Emulation Library

    QDD to biblioteka C ++, która zapewnia względnie intuicyjny zestaw kwantowych konstrukcji obliczeniowych w kontekście środowiska programistycznego C ++. QDD jest wyjątkowy, ponieważ jego emulacja obliczeń kwantowych oparta jest na reprezentacji stanu kwantowego przez binarny diagram decyzyjny (BDD).

  • jQuantum

    jQuantum to program symulujący komputer kwantowy. Za jego pomocą możesz projektować obwody kwantowe i pozwolić im działać. Zilustrowano aktualny stan rejestru kwantowego.

  • QCE

    QCE to narzędzie programowe, które emuluje różne konstrukcje sprzętowe komputerów kwantowych. QCE symuluje fizyczne procesy rządzące działaniem sprzętowego procesora kwantowego, ściśle zgodnie z prawami mechaniki kwantowej. QCE zapewnia również środowisko do debugowania i wykonywania algorytmów kwantowych w realistycznych warunkach eksperymentalnych.

(Ponadto Q # działa tylko z QDK MS , dzięki @Pavel)

Wada tych wszystkich jest prosta: nadal działają na obwodach binarnych (nie kwantowych). Według mojej najlepszej wiedzy nie ma łatwo dostępnego komputera kwantowego do uruchamiania tych rzeczy. A ponieważ do wyrażenia pojedynczego kubita potrzeba wielu bitów binarnych, ilość mocy obliczeniowej potrzebnej do symulacji programu kwantowego bardzo szybko rośnie.

Zacytuję artykuł na ten temat ( J. Allcock, 2010 ):

Nasza ocena pokazuje, że nasze implementacje są bardzo dokładne, ale jednocześnie używamy znacznej ilości dodatkowej pamięci, aby to osiągnąć. Zmniejszenie naszych celów dokładności pozwoliłoby nam zmniejszyć rozmiar reprezentacji, a zatem emulować więcej kubitów przy tej samej ilości pamięci.

str. 89, sekcja 5.1

Gdy nasze wdrożenia stają się coraz bardziej dokładne, stają się również wolniejsze.

TL; DR: jest to możliwe, i istnieją pewne emulatory, ale żaden nie jest bardzo wydajny dla dużych ilości kubitów.

Riker
źródło
Zauważ, że żaden z tych emulatorów nie może (obecnie) być używany przez Q #, który działa tylko z QDK Microsoftu.
Pavel
3
Oprócz tego, co powiedziałeś: Istnieją programowe sposoby uruchamiania kodu w IBM Quantum Experience, który zapewnia prawdziwe komputery kwantowe - nie kod Q #, ale zamiast tego QASM. QISKit to sposób, aby przejść tutaj. github.com/QISKit
blalasaadri
To, co powiedziałeś, ma sens, ponieważ symulacja jest uruchamiana na jednym komputerze. Ale czy można osiągnąć tę samą prędkość, jeśli użyto wielu komputerów?
Kalendarz iOS patchthecode.com
26

Tak, można symulować komputer kwantowy na normalnym - ale najprawdopodobniej musisz poświęcić wydajność.

2nn


Zasoby

Możesz być zainteresowany Q #, jak zauważyły ​​inne odpowiedzi. Kilka innych emulatorów:

  • Plac zabaw komputerowych

    Quantum Computing Playground to oparty na przeglądarce eksperyment WebGL Chrome. Posiada akcelerowany przez GPU komputer kwantowy z prostym interfejsem IDE oraz własny język skryptowy z funkcjami debugowania i wizualizacji stanu kwantowego 3D. Quantum Computing Playground może efektywnie symulować rejestry kwantowe do 22 kubitów, uruchamiać algorytmy Grovera i Shora, a także ma wiele bram kwantowych wbudowanych w sam język skryptowy.

  • Symulator QX

    QX Simulator to uniwersalny komputerowy symulator kwantowy opracowany w firmie QuTech przez Nadera Khammassiego. QX pozwala projektantom algorytmów kwantowych symulować działanie ich obwodów kwantowych na komputerze kwantowym. Symulator definiuje język asemblera kwantowego niskiego poziomu, a mianowicie kod kwantowy, który pozwala użytkownikom opisywać swoje obwody w prostym tekstowym pliku kodu źródłowego. Plik kodu źródłowego jest następnie wykorzystywany jako dane wejściowe symulatora, który wykonuje jego zawartość.

  • Quantum ++

    Quantum ++ to nowoczesna biblioteka obliczeń kwantowych ogólnego przeznaczenia C ++ 11, złożona wyłącznie z plików nagłówkowych szablonów. Quantum ++ jest napisany w standardowym C ++ 11 i ma bardzo małe zależności zewnętrzne, przy użyciu tylko biblioteki szablonów tylko algebry liniowej Eigen 3 i, jeśli jest dostępna, biblioteki wieloprzetwarzania OpenMP.

  • Kwantowy język komputerowy

    Pomimo wielu powszechnych pojęć z klasyczną informatyką, obliczenia kwantowe są nadal powszechnie uważane za specjalną dyscyplinę w szerokim zakresie fizyki teoretycznej. [...] QCL (język obliczeń kwantowych) stara się wypełnić tę lukę: QCL to niezależny od architektury język programowania wysokiego poziomu dla komputerów kwantowych, o składni wywodzącej się z klasycznych języków proceduralnych, takich jak C lub Pascal. Pozwala to na pełną implementację i symulację algorytmów kwantowych (w tym komponentów klasycznych) w jednym spójnym formalizmie.

  • Bardziej odpowiednie emulatory można znaleźć na stronie Quantiki

Pan Xcoder
źródło
21

Tak, można symulować obliczenia kwantowe na klasycznym komputerze. Ale koszt symulacji rośnie wykładniczo wraz z liczbą kubitów i / lub głębokością obwodu i / lub liczbą operacji.

Do szybkiego testowania pomysłów mój symulator Quirk jest świetny. Jest to symulator obwodu kwantowego typu „ przeciągnij i upuść”, działający w przeglądarce internetowej. Dostęp do wersji na żywo można uzyskać na stronie algassert.com/quirk .

Oto zrzut ekranu z przykładowego obwodu Quirka Grovera, który jest wyposażony w wyświetlacze stanu pośredniego w celu śledzenia prawdopodobieństwa stanu „ukrytego”:

Zrzut ekranu z Quirkiem

Craig Gidney
źródło
16

Jeśli szczególnie patrzysz na Q #, to jest bardzo łatwy w użyciu z emulatorem - w rzeczywistości nie można mieć Q #, ale nie mieć emulatora, są one połączone w pakiet.

Aby rozpocząć, najpierw musisz pobrać .NET Core ze strony Microsoft .

Gdy pobierasz Quantum Development Kit dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*"firmy Microsoft za pośrednictwem strony internetowej firmy Microsoft, pobiera ona zarówno język, jak i własny emulator Microsoft.

Utworzenie nowego projektu Q # ( dotnet new console -lang Q#) automatycznie skonfiguruje go do korzystania z emulatora, więc po wpisaniu Q Q i uruchomieniu projektu „po prostu działa”.

Pavel
źródło
3

Tak. Jeśli sam go zbudujesz, znajdź komputer innej firmy o takich samych parametrach jak BullSequana M9600 lub wymyśl 100 000 € + i kup system od Atos.

Zwróć uwagę na podobieństwo między serią BullSequana M9600 a Atos QLM . Atis QLM vs. M9600

To samo pudełko (i prawdopodobnie wewnętrzne komponenty) z innym oprogramowaniem (ale chciałeś użyć własnego, Q #). Atos twierdzi: „Najskuteczniejszy symulator kwantowy na świecie”. Nie jestem tego pewien, ale specyfikacje dla wersji 30 kubitów są osiągalne, tylko dwa procesory Intel i 1 TB pamięci.

Broszura Atos QLM .PDF .

Czy jest jakiś sposób na emulację komputera kwantowego na moim normalnym komputerze, aby móc testować i wypróbować kwantowe języki programowania (takie jak Q #)?

Jeśli użyjesz tylko 256 GB pamięci i 1-24 TB Swap Drive, będzie on wolny, ale będzie działał.

Mam na myśli coś, na czym naprawdę mogę przetestować moją hipotezę i uzyskać najbardziej dokładne wyniki .

Cytat z broszury:

„Kwantowa maszyna edukacyjna Atos oblicza dokładne wykonanie programu kwantowego z dwucyfrową precyzją. Symuluje prawa fizyki , które stanowią sedno obliczeń kwantowych. Jest to bardzo różne od istniejących procesorów kwantowych, które cierpią na kwant hałas, kwantowe dekoherencje i uprzedzenia produkcyjne, a także wąskie gardła wydajności. Symulacja na maszynie kwantowej Atos umożliwia programistom skupienie się na swoich aplikacjach i algorytmach bez konieczności oczekiwania na dostępność maszyn kwantowych ”.

Twierdzą, że mają wysoką dokładność, ponieważ jest to symulator, który nie jest narażony na hałas - ani nie będzie tak szybki ani tak drogi. Teoretycznie możesz dodać do komputera trochę pamięci, napędów i oprogramowania ...

Obrabować
źródło
3

Myślę, że ładny „przegląd” na ten temat można znaleźć na stronie: Quantiki

Mają listę kwantowych symulatorów komputerowych w kilku językach, niektóre z tych symulatorów były już tutaj cytowane. Prowadzą jednak listę, którą aktualizują, aby poinformować (lub spróbować poinformować) o stanie projektu. Istnieje kilka „bibliotek”, takich jak:

Haskell

qchas (qchas: biblioteka do implementacji algorytmów kwantowych) - biblioteka przydatna do implementacji algorytmów kwantowych. Zawiera definicje bram kwantowych, kubitów.

Pyton

qubiter : Projekt Qubiter ma na celu zapewnienie pełnego zestawu narzędzi, napisanych głównie w języku Python, do projektowania i symulacji układów kwantowych na klasycznych komputerach.

JavaScript

jsqis : jsqis, w swej istocie, to kwantowy symulator komputerowy napisany w JavaScript. Umożliwia inicjalizację rejestrów kwantowych i manipulowanie nimi za pomocą bramek kwantowych.

Gustavo Banegas
źródło