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.


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.


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


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


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”.


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 ...


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.