Co to są Q# i platforma Azure Quantum Development Kit?

Platforma Azure Quantum Development Kit (nowoczesny zestaw QDK) jest zestawem SDK wymaganym do interfejsu z usługą Azure Quantum. Za pomocą programu Quantum Development Kitmożna tworzyć programy kwantowe uruchamiane na sprzęcie kwantowym w usłudze Azure Quantum.

Uwaga

Zestaw Microsoft Quantum Development Kit (klasyczny zestaw QDK) nie będzie już obsługiwany po 30 czerwca 2024 r. Jeśli jesteś istniejącym deweloperem zestawu QDK, zalecamy przejście na nową platformę Azure Quantum Development Kit (modern QDK), aby kontynuować opracowywanie rozwiązań kwantowych. Aby uzyskać więcej informacji, zobacz Migrowanie Q# kodu do nowoczesnego zestawu QDK.

Nowoczesny zestaw QDK jest jedynym zestawem programistycznym gotowym do Fault-Tolerant Quantum Computing (FTQC). Nowoczesne zestawy QDK umożliwiają:

  • Debugowanie kodu: Oferuje debuger obliczeń kwantowych, który może przechodzić przez klasyczny i kwantowy kod. W połączeniu z rozrzedzony symulator w pamięci zapewnia szybką symulację nawet tysięcy kubitów logicznych.

  • Wybierz platformę: Nowoczesny zestaw QDK działa w przeglądarce internetowej bez konieczności instalacji i z rozszerzeniem programu VS Code na komputerze PC, Mac lub Linux.

  • Szybsze pisanie kodu: Wyróżnianie składni i inteligentne uzupełnianie kodu za pomocą funkcji IntelliSense i pisanie całych bloków kodu wspomaganych przez copilot.

  • Uruchom polecenie na wybranym sprzęcie: Zestaw QDK bezproblemowo integruje się z usługą Azure Quantum, aby uruchamiać algorytmy na wielu komputerach kwantowych i symulatorach.

  • Projektowanie dla FTQC: W połączeniu z najnowocześniejszym narzędziem do szacowania zasobów kwantowych w usłudze Azure Quantum udostępnia język przeznaczony specjalnie do obliczeń kwantowych. Q#Dzięki temu możesz myśleć o architekturach kubitów, abstrakcjując sprzęt i umożliwiając mieszanie klasycznych i kwantowych obliczeń wykonywanych przez maszynę targetkwantową.

Porada

Jeśli chcesz przyspieszyć swoją podróż do obliczeń kwantowych, zapoznaj się z kodem w usłudze Azure Quantum, unikatową funkcją witryny internetowej Azure Quantum. W tym miejscu możesz uruchamiać wbudowane Q# przykłady lub własne Q# programy, generować nowy Q# kod na podstawie monitów, otwierać i uruchamiać kod w programie VS Code dla sieci Web jednym kliknięciem i zadawać Copilot wszelkie pytania dotyczące obliczeń kwantowych.

Język programowania kwantowego Q#

Nowoczesny zestaw QDK zawiera język Q#programowania kwantowego , wysokiego poziomu język programowania open source , który umożliwia skoncentrowanie pracy na poziomie algorytmu w celu tworzenia programów kwantowych.

Q# to język programowania typu open source wysokiego poziomu do opracowywania i uruchamiania algorytmów kwantowych. Jest ona częścią Quantum Development Kit zestawu QDK i jest przeznaczona do niezależnego od sprzętu, skalowania do pełnego zakresu aplikacji kwantowych i optymalizacji wykonywania.

Jako język Q# programowania rysuje znane elementy z języków Python, C# i F# oraz obsługuje podstawowy model proceduralny do pisania programów z pętlami, instrukcjami if/then i typowymi typami danych. Wprowadzono również nowe struktury danych i operacje specyficzne dla obliczeń kwantowych, takie jak powtarzanie do sukcesu, co umożliwia integrację obliczeń kwantowych i klasycznych. Na przykład sterowanie przepływem klasycznego programu może opierać się na wyniku pomiaru kwantowego.

Podczas pisania algorytmów język programowania kwantowego powinien spełniać następujące wymagania dotyczące języka, kompilatora i środowiska uruchomieniowego:

  • Abstrakcyjne kubity. Algorytmy kwantowe używają kubitów, które nie są powiązane z określonym sprzętem lub układem. Kompilator i środowisko uruchomieniowe obsługują mapowanie z kubitów programu do kubitów fizycznych.
  • Obliczenia kwantowe i klasyczne. Możliwość wykonywania obliczeń klasycznych i kwantowych jest niezbędna w uniwersalnym komputerze kwantowym.
  • Przestrzegaj praw fizyki. Algorytmy kwantowe są zgodne z regułami fizyki kwantowej. Na przykład nie mogą bezpośrednio kopiować ani uzyskiwać dostępu do stanu kubitu.

Aby uzyskać więcej informacji, zobacz podręcznik użytkownika języka programowania kwantowegoQ#.

Wprowadzenie do platformy Azure Quantum Development Kit

Istnieje więcej niż jeden sposób rozpoczęcia pracy z programowaniem kwantowym. Możesz wybrać opcję, która najlepiej odpowiada Twoim potrzebom.

Porada

Użytkownicy po raz pierwszy automatycznie otrzymują bezpłatne środki na korzystanie z usługi Azure Quantumw wysokości 500 USD dla każdego uczestniczącego dostawcy sprzętu kwantowego. Jeśli zużyliśmy wszystkie środki i potrzebujesz więcej, możesz zastosować się do programu Środków na korzystanie z usługi Azure Quantum.

Witryna internetowa usługi Azure Quantum

Witryna internetowa usługi Azure Quantum to najprostszy sposób na rozpoczęcie pracy z programowaniem kwantowym. Za pomocą edytora kodu online w witrynie internetowej usługi Azure Quantum możesz uruchomić Q# kod w przeglądarce bez konieczności konfigurowania i poprosić Copilot o pomoc. Jednym kliknięciem w edytorze kodu online możesz otworzyć kod w programie VS Code w Internecie i kontynuować pracę we wstępnie skonfigurowanym środowisku kwantowym bezpłatnie.

Uwaga

Witryna internetowa usługi Azure Quantum jest bezpłatna i nie wymaga konta platformy Azure.

Przykłady w witrynie Azure Quantum Portal

Jeśli chcesz zacząć ćwiczyć i pisać Q# programy bez instalowania dodatkowego oprogramowania, możesz użyć hostowanych notesów Jupyter Notebook dostępnych w obszarze roboczym usługi Azure Quantum w Azure Portal. Przykładowa galeria zawiera kolekcję przykładów notesów z adnotacjami — wybierz przykład, który chcesz eksplorować i uruchomić na symulatorach opartych na chmurze lub rzeczywistych komputerach kwantowych.

Uwaga

Aby korzystać z hostowanych notesów Jupyter Notebook, potrzebne jest konto platformy Azure. Jeśli nie masz konta platformy Azure, możesz bezpłatnie utworzyć konto.

Lokalne środowisko projektowe

Jeśli wolisz lokalne środowisko programistyczne, możesz zainstalować nowoczesne rozszerzenie QDK dla Visual Studio Code. Nowoczesne rozszerzenie QDK udostępnia w pełni funkcjonalne środowisko programistyczne dla Q#systemu , w tym wyróżnianie składni, opinie dotyczące kodowania w czasie rzeczywistym i debugowanie.

Aby rozpocząć pracę z nowoczesnym rozszerzeniem QDK, zobacz następujący samouczek.

Porada

Nowoczesny zestaw QDK zawiera zestaw wbudowanych Q# przykładów, których można użyć, aby dowiedzieć się więcej na temat Q# obliczeń kwantowych i. Aby wyświetlić przykłady, otwórz nowy Q# plik i wpisz sample, a następnie wybierz przykład, który chcesz wyświetlić z listy opcji.

Przepływ pracy tworzenia aplikacji kwantowych

Na poniższym diagramie przedstawiono etapy, przez które program kwantowy przechodzi od pomysłu do ukończenia implementacji w usłudze Azure Quantum oraz narzędzia oferowane dla każdego etapu.

Diagram przedstawiający przepływ pracy programowania kwantowego.

Wybierz środowisko projektowe

Uruchamianie programów kwantowych w preferowanym środowisku programistycznym. Możesz użyć edytora kodu online w witrynie internetowej usługi Azure Quantum, hostowanych notesów Jupyter Notebook dostępnych w obszarze roboczym usługi Azure Quantum w Azure Portal lub własnego lokalnego środowiska projektowego.

Pisanie programu kwantowego

Zestaw QDK oferuje obsługę Q#języka , ale także dla języków Qiskit i Cirq na potrzeby obliczeń kwantowych.

Aby rozpocząć pracę, możesz skorzystać z Q# samouczków i zapoznać się z pojęciami kwantowymi, takimi jak superpozycja, splątanie, algorytm kwantowy Grovera i inne zjawiska kwantowe.

Integracja z językiem Python

Zestaw QDK umożliwia integrację Q# programów z językiem Python. Do wywoływania Q# operacji można użyć programu w języku Python.

Szacowanie zasobów

Przed uruchomieniem na sprzęcie kwantowym należy ustalić, czy program może działać na istniejącym sprzęcie i ile zasobów będzie zużywać.

Narzędzie do szacowania zasobów usługi Azure Quantum pozwala ocenić decyzje dotyczące architektury, porównać technologie kubitu i określić zasoby potrzebne do wykonania danego algorytmu kwantowego. Możesz wybrać spośród wstępnie zdefiniowanych protokołów odpornych na błędy i określić założenia podstawowego modelu fizycznego kubitu.

Aby uzyskać więcej informacji, zobacz Uruchamianie pierwszego oszacowania zasobów.

Uwaga

Narzędzie do szacowania zasobów usługi Azure Quantum jest bezpłatne i nie wymaga konta platformy Azure.

Uruchamianie programu w symulatorze

Podczas kompilowania i uruchamiania programu kwantowego zestaw QDK tworzy wystąpienie symulatora kwantowego i przekazuje Q# do niego kod. Symulator używa kodu Q# do tworzenia kubitów (symulacji cząstek kwantowych) i stosuje przekształcenia w celu zmodyfikowania ich stanu. Wyniki operacji kwantowych w symulatorze są następnie zwracane do programu. Odizolowanie kodu Q# w symulatorze gwarantuje, że algorytmy są zgodne z prawami fizyki kwantowej i mogą działać poprawnie na komputerach kwantowych.

Przesyłanie zadań do usługi Azure Quantum

Programy (znane również jako zadania) można przesyłać Q# do usługi Azure Quantum za pośrednictwem preferowanego środowiska projektowego, zarówno lokalnie, jak i online. Aby uzyskać więcej informacji, zobacz jak przesyłać Q# zadania. Można również uruchamiać i przesyłać obwody kwantowe napisane w językach Qiskit i Cirq.

Usługa Azure Quantum oferuje obecnie najbardziej atrakcyjny i zróżnicowany sprzęt kwantowy dostępny od liderów branży. Zobacz Quantum computing providers (Dostawcy obliczeń kwantowych ), aby uzyskać bieżącą listę obsługiwanych dostawców sprzętu.

Uwaga

Oparty na chmurze emulator targetfirmy Quantinuum H-Series jest dostępny bez konta platformy Azure. Aby przesłać zadanie do pozostałych dostawców usługi Azure Quantum, potrzebujesz konta platformy Azure i obszaru roboczego kwantowego. Jeśli nie masz obszaru roboczego kwantowego, zobacz Tworzenie obszaru roboczego usługi Azure Quantum.

Na poniższym diagramie przedstawiono podstawowy przepływ pracy po przesłaniu zadania:

Diagram przedstawiający przepływ pracy po przesłaniu zadania do usługi Azure Quantum.

Jeśli chcesz dowiedzieć się więcej, artykuł Quantum Katas zawiera dobre wprowadzenie do pojęć związanych z obliczeniami kwantowymi , takich jak typowe operacje kwantowe i sposób manipulowania kubitami.