>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Unknown

Przewodnik po oprogramowaniu open-source do obliczeń kwantowych

bDialog

Gdy mowa o obliczeniach kwantowych, większość ludzi wyobraża sobie złożone konfiguracje kriogeniczne IBM lub ezoteryczne wzory z mechaniki kwantowej. To sprawia, że wydaje się, iż zwykły programista nie ma do nich dostępu. W rzeczywistości jest zupełnie inaczej: w tej chwili możesz otworzyć terminal, zainstalować kilka pakietów przez pip lub cargo i uruchomić swój pierwszy algorytm kwantowy na symulatorze.

Problem jest inny. W ciągu ostatnich pięciu lat w tej przestrzeni pojawiło się tak wiele oprogramowania, że łatwo się w nim utonąć. Istnieją frameworki od gigantów takich jak Google i IBM, niszowe biblioteki w C++, Julii, Rust, a nawet OCaml. Aby uporządkować ten chaos, Quantum Open Source Foundation (QOSF) stworzyło repozytorium awesome-quantum-software. Jest to szczegółowy, ustrukturyzowany katalog narzędzi open-source do programowania kwantowego.

Co zawiera katalog

Twórcy repozytorium nie wrzucili po prostu linków w jedną kupkę — uporządkowali je według obszarów zastosowań. Jeśli przyzwyczaiłeś się do pisania w Pythonie, znajdziesz tu dziesiątki gotowych bibliotek. Ale jeśli potrzebujesz maksymalnej szybkości symulacji, dostępne są silniki w C++ i Rust z obsługą CUDA.

Katalog zawiera około dwóch tuzinów kategorii. Oto główne obszary najbardziej istotne dla programistów:

1. Pełnostackowe frameworki kwantowe

To podstawowe SDK, od których wszyscy zaczynają. Zapewniają wysokopoziomowe API do tworzenia obwodów kwantowych, manipulacji kubitami i przesyłania zadań do prawdziwego sprzętu lub lokalnych symulatorów.

  • Qiskit od IBM. Prawdopodobnie najpopularniejsze narzędzie z ogromną społecznością wokół niego.
  • Cirq od Google. Dostosowane do algorytmów NISQ (algorytmów dla hałaśliwych procesorów kwantowych pośredniej skali obecnej generacji).
  • PennyLane od Xanadu. Świetne dla tych, którzy chcą łączyć obwody kwantowe z uczeniem maszynowym, ponieważ biblioteka obsługuje programowanie różniczkowe i integruje się z PyTorch i TensorFlow.
  • CUDA-Q od NVIDIA. Platforma do hybrydowych obliczeń kwantowo-klasycznych z przyspieszeniem GPU.

2. Symulatory obwodów kwantowych

Prawdziwy komputer kwantowy kosztuje miliony dolarów i jest dostępny przez kolejkę chmurową, więc 95% tworzenia i debugowania odbywa się na zwykłych PC. Lista zawiera symulatory dla każdego stosu technologicznego:

  • Python: Stim (bardzo szybki symulator obwodów stabilizatora), Dynamiqs (zbudowany na JAX z obsługą GPU).
  • C++: Qiskit Aer, qsim, Quantum++.
  • Rust: QCGPU, RustQIP, Quriust.
  • Dla przeglądarki: Quirk i Quantum JavaScript (Q.js), gdzie możesz budować obwody wizualnie przez przeciąganie i upuszczanie.

3. Kompilatory i optymalizatory kwantowe

Bramki kwantowe są hałaśliwe, a czas koherencji kubitów jest ograniczony do mikrosekund. Im krótszy obwód, tym mniej błędów. Kompilatory zajmują się tą optymalizacją:

  • TKET (i jego zaktualizowana wersja TKET2 w Rust). Optymalizuje obwody pod kątem topologii konkretnych układów scalonych.
  • PyZX. Biblioteka, która przepisuje obwody przy użyciu formalizmu rachunku ZX, znacząco redukując liczbę kosztownych operacji dwukubitowych.
  • Mitiq. Narzędzie do łagodzenia błędów kwantowych bez zmiany sprzętu.

4. Wyżarzanie kwantowe i optymalizacja

Odrębna gałąź obliczeń kwantowych skupiona na rozwiązywaniu problemów kombinatorycznych: znajdowanie najkrótszej ścieżki, problemy komiwojażera, optymalizacja portfela. Ta sekcja zawiera narzędzia do pracy z maszynami D-Wave i klasycznymi solverami problemów QUBO (takimi jak dimod i qubovert).

5. Kryptografia postkwantowa i bezpieczeństwo

Algorytm Shora teoretycznie mógłby złamać RSA i ECC, więc świat kryptograficzny szybko przechodzi na algorytmy postkwantowe. Repozytorium zawiera linki do liboqs, PQClean i forków OpenSSH i OpenSSL z obsługą algorytmów wymiany kluczy odpornych na ataki kwantowe.

Jak ta lista pomaga programistom

Jeśli pracujesz w backendzie, analizie danych lub tworzeniu aplikacji mobilnych, logiczne pytanie brzmi: dlaczego w ogóle miałbym otwierać to repozytorium?

Po pierwsze, to wygodny punkt wejścia. Zamiast czytać nieaktualne artykuły, możesz skorzystać z gotowych interaktywnych samouczków, takich jak Quantum Katas od Microsoftu, lub uruchomić emulator oparty na przeglądarce, jak Quirk. Natychmiast widzisz aktywnie rozwijane projekty.

Po drugie, istnieje sekcja Quantum fun z praktycznymi grami. Na przykład Quandoom (DOOM dostosowany do uruchomienia na symulatorze kwantowym) lub Entanglion (gra planszowa open-source wyjaśniająca zasady splątania kwantowego). To doskonały sposób na zrozumienie podstawowych koncepcji superpozycji i pomiaru kubitów bez przerabiania ciężkich podręczników algebry liniowej.

Po trzecie, autorzy repozytorium prowadzą sekcję Porzucone projekty. Projekty bez commitów przez ponad dwa lata trafiają tam. Pomaga to uniknąć marnowania czasu na martwe biblioteki i daje pomysły na wkład w open-source: niektóre starsze repozytoria mają solidną architekturę, ale potrzebują aktualizacji zależności.

Od czego zacząć

Jeśli chcesz praktycznie zająć się oprogramowaniem kwantowym, polecam następującą ścieżkę:

  1. Pobaw się Quirk w przeglądarce. W ciągu kilku minut zrozumiesz, jak bramki Hadamarda wprowadzają kubit w superpozycję i jak działa splątanie kwantowe.
  2. Zainstaluj Qiskit lub PennyLane przez pip, stwórz prosty obwód generowania liczb losowych (QRNG) i uruchom go na lokalnym symulatorze.
  3. Sprawdź program grantowy Unitary Fund (link znajduje się na samej górze README). Fundacja regularnie przyznaje granty w wysokości 4000 USD na rozwój oprogramowania kwantowego open-source. Jeśli potrafisz pisać wydajny kod w C++, Rust lub Pythonie, Twoje umiejętności z pewnością tam będą przydatne.

Repozytorium awesome-quantum-software warto dodać do zakładek każdemu, kto chce być na bieżąco z technologiami na styku fizyki i programowania. Przemysł kwantowy stopniowo przechodzi od czysto akademickiego do praktycznego rozwoju, a oprogramowanie open-source odgrywa kluczową rolę w tej zmianie.

Powiązane projekty