Integracja obliczeń kwantowych z aplikacjami klasycznymi

Azure Quantum
Azure Key Vault
Tożsamość Microsoft Entra

Przetwarzanie klasyczne napotyka coraz większe wyzwania w postaci dzisiejszych najbardziej złożonych problemów obliczeniowych - nawet w skali naszych najpotężniejszych superkomputerów. Komputery kwantowe mają obietnicę znacznego rozszerzenia naszych możliwości obliczeniowych. Wykorzystując właściwości fizyki kwantowej do wykonywania obliczeń, zapewniają przyspieszenie wykładnicze dla niektórych typów problemów. Na przykład komputery kwantowe działają wyjątkowo dobrze z problemami, które wymagają obliczenia dużej liczby możliwych kombinacji często występujących w scenariuszach optymalizacji, symulacji lub uczenia maszynowego.

Jednak składniki obliczeń kwantowych mają inny model operacyjny niż klasyczne oprogramowanie. Zazwyczaj istnieje co najmniej jeden klasyczny składnik obliczeniowy, który organizuje wykonywanie składników kwantowych. Ta orkiestracja obejmuje następujące działania:

  • Przygotowywanie danych wejściowych
  • Przesyłanie zadań obliczeniowych kwantowych do docelowego środowiska kwantowego
  • Monitorowanie wykonywania zadania
  • Przetwarzanie wyników po zakończeniu zadania

Tę aranżację można zintegrować z aplikacjami klasycznymi na jeden z dwóch sposobów:

  • Integracja za pomocą ścisłego sprzężenia. Logika orkiestracji zasobów kwantowych jest zintegrowana z klasycznym składnikiem lub składnikami.
  • Integracja za pośrednictwem luźnego sprzężenia. Logika aranżacji zasobów kwantowych jest uwidoczniona jako interfejs API, który może być wywoływany przez różne klasyczne składniki oprogramowania.

W tym artykule opisano sposób implementowania aplikacji kwantowych w każdym z tych projektów. Każda implementacja używa Azure Quantum jako aparatu obliczeniowego kwantowego, ale różnią się nieco w innych aspektach, jak opisano w poniższych sekcjach.

Ściśle powiązane podejście

Potencjalne przypadki użycia

Ściśle powiązane podejście jest preferowane w następujących przypadkach:

  • Jeden zespół jest właścicielem zarówno kodu kwantowego, jak i kodu klasycznego, a kod jest zintegrowany.
  • Składniki kwantowe mają ten sam cykl życia co składniki klasyczne.
  • Użycie składników kwantowych jest ograniczone do pojedynczej aplikacji lub małego zestawu powiązanych aplikacji.
  • Zadanie kwantowe reprezentuje wyspecjalizowane rozwiązanie (na przykład symulację molekularną), które jest używane tylko przez jedną wyspecjalizowaną aplikację klasyczną.
  • Zaimplementowany algorytm jest z natury hybrydowy, kwantowo-klasyczny, takie jak algorytmy wariacyjne dla wartości własnych (VQE) i kwantowe przybliżone algorytmy optymalizacji (QAOA).

Architektura

diagram architektury przedstawiający aplikację hybrydową zawierającą ściśle powiązane zadanie obliczeń kwantowych.

Pobierz plik PowerPoint tej architektury.

Przepływ danych

  1. Zalogowany użytkownik wyzwala wykonywanie zadań kwantowych za pośrednictwem klasycznej aplikacji klienckiej.
  2. Aplikacja kliencka umieszcza dane wejściowe w Azure Storage.
  3. Aplikacja kliencka przesyła zadanie do obszaru roboczego Azure Quantum, określając docelowy cel lub cele wykonania. Klient identyfikuje obszar roboczy za pomocą danych przechowywanych w Key Vault i uwierzytelnia się w obszarze roboczym za pomocą zarządzanej tożsamości.
  4. Dostawca kwantowy uruchamia zadanie w środowisku docelowym.
  5. Aplikacja kliencka monitoruje wykonywanie zadań przez sondowanie stanu zadania.
  6. Po zakończeniu zadania kwantowego aplikacja kliencka pobiera wynik obliczeniowy z usługi Storage.

Ten przepływ pracy implementuje wzorzec Asynchronous Request-Reply oraz kroki zdefiniowane dla cyklu życia zadania Azure Quantum.

Składniki

  • Azure Quantum udostępnia workspace dostępny z portalu Azure dla zasobów skojarzonych z uruchamianiem zadań kwantowych na różnych obiektach docelowych. Zadania są uruchamiane na symulatorach kwantowych lub sprzęcie kwantowym, w zależności od wybranego dostawcy.
  • Microsoft Entra ID koordynuje uwierzytelnianie użytkowników i pomaga chronić dostęp do obszaru roboczego Azure Quantum.
  • Key Vault zabezpiecza i utrzymuje kontrolę nad kluczami i innymi wpisami tajnymi, takimi jak nazwa obszaru roboczego Azure Quantum.
  • Azure Storage zapewnia magazyn danych wejściowych i wyników od dostawcy kwantowego.

Zagadnienia dotyczące

Te zagadnienia implementują filary struktury Azure Well-Architected, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Niezawodność

Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca niezawodności.

Dostępność funkcji obliczeń kwantowych zależy od dostępności i instalacji bazy dostawcy obliczeń kwantowych. W zależności od docelowego obiektu obliczeniowego klasyczna aplikacja kliencka może doświadczać długich opóźnień lub niedostępności obiektu docelowego.

W przypadku otaczających usług Azure mają zastosowanie typowe zagadnienia dotyczące dostępności:

  • Użyj opcji redundancji Key Vault.
  • W razie potrzeby rozważ użycie opcji replikacji w usłudze Storage.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca zabezpieczeń.

W przeciwieństwie do architektury luźno powiązanej alternatywy, architektura przedstawiona tutaj opiera się na założeniu, że tylko jeden klient uzyskuje dostęp do obszaru roboczego Azure Quantum. Ten scenariusz prowadzi do następujących konfiguracji:

  • Ponieważ klient jest znany, można zaimplementować uwierzytelnianie za pośrednictwem tożsamości zarządzanej, skojarzonej z aplikacją.
  • Możesz zaimplementować ograniczanie żądań i buforowanie wyników w samym kliencie.

Ogólnie rzecz biorąc, należy rozważyć zastosowanie typowych wzorców projektowych dla zabezpieczeń, jeśli jest to konieczne.

Luźno powiązane podejście

Potencjalne przypadki użycia

Luźno powiązane podejście jest preferowane w następujących przypadkach:

  • Masz dedykowany zespół specjalistów kwantowych, którzy centralnie zapewniają funkcje kwantowe innym zespołom, a składniki kwantowe są opracowywane niezależnie od wszystkich klasycznych składników klienta.
  • Zadanie kwantowe reprezentuje ogólne rozwiązanie (na przykład planowanie zadań), które może być ponownie używane przez wiele klasycznych aplikacji.

Architektura

diagram architektury przedstawiający aplikację hybrydową zawierającą luźno powiązane zadanie obliczeń kwantowych.

Pobierz plik PowerPoint tej architektury.

Przepływ danych

  1. Zalogowany użytkownik wyzwala wykonywanie zadań kwantowych za pośrednictwem klasycznej aplikacji.
  2. Klasyczna aplikacja wywołuje niestandardowy interfejs API dla złożenia zadania.
  3. Brama API wyzwala funkcję przesyłania zadań w Azure, która przekazuje dane wejściowe zadania.
  4. Funkcja umieszcza dane wejściowe w Azure Storage.
  5. Funkcja przesyła zadanie do obszaru roboczego Azure Quantum, określając docelowy cel lub cele wykonania. Funkcja identyfikuje obszar roboczy za pośrednictwem danych przechowywanych w Azure Key Vault i uwierzytelnia się w obszarze roboczym za pośrednictwem zarządzanej tożsamości.
  6. Dostawca kwantowy uruchamia zadanie w środowisku docelowym.
  7. Aplikacja kliencka monitoruje wykonywanie zadań przez sondowanie stanu zadania za pośrednictwem wywołań interfejsu API.
  8. API gateway monitoruje wykonywanie zadań poprzez sprawdzanie stanu zadania u dostawcy kwantowego.
  9. Po zakończeniu zadania wyniki obliczeń są przechowywane w Azure Storage. Aplikacja kliencka pobiera wyniki przy użyciu interfejsu API zaimplementowanego za pośrednictwem funkcji Azure.

Ten przepływ pracy implementuje wzorzec Asynchronous Request-Reply oraz kroki zdefiniowane dla cyklu życia zadania Azure Quantum.

Składniki

  • Azure Quantum udostępnia workspace dostępny z portalu Azure dla zasobów skojarzonych z uruchamianiem zadań kwantowych na różnych obiektach docelowych. Zadania są uruchamiane na symulatorach kwantowych lub sprzęcie kwantowym, w zależności od wybranego dostawcy.
  • Microsoft Entra ID koordynuje uwierzytelnianie użytkowników i pomaga chronić dostęp do obszaru roboczego Azure Quantum.
  • API Management to brama API, która centralnie udostępnia punkty końcowe API do zarządzania zadaniami kwantowymi.
  • Azure Functions służy do przekazywania żądań klientów do odpowiednich zasobów kwantowych.
  • Azure Key Vault zabezpiecza i utrzymuje kontrolę nad kluczami i innymi wpisami tajnymi, takimi jak nazwa obszaru roboczego Azure Quantum.
  • Azure Storage zapewnia magazyn danych wejściowych i wyników od dostawcy kwantowego.

Niezawodność

Dostępność funkcji obliczeń kwantowych jest bardzo zależna od dostępności i instalowania bazy dostawcy obliczeń kwantowych. W zależności od docelowego obiektu obliczeniowego klasyczna aplikacja kliencka może doświadczać długich opóźnień lub niedostępności obiektu docelowego.

W przypadku otaczających usług Azure mają zastosowanie typowe zagadnienia dotyczące dostępności:

  • W celu zapewnienia wysokiej dostępności można wdrożyć usługi API Management w wielu strefach lub regionach.
  • Jeśli używasz replikacji geograficznej, możesz aprowizować Azure Functions w wielu regionach.
  • Użyj opcji nadmiarowości Key Vault.
  • W razie potrzeby rozważ użycie opcji replikacji w usłudze Storage.

Zabezpieczenia

W przeciwieństwie do architektury ściśle powiązanej alternatywy architektura przedstawiona tutaj opiera się na założeniu, że wielu klientów uzyskuje dostęp do obszaru roboczego Azure Quantum za pośrednictwem interfejsu API. Ten scenariusz prowadzi do następujących konfiguracji:

  • Klienci muszą uwierzytelniać się w interfejsie API. To uwierzytelnianie można zaimplementować przy użyciu zasad uwierzytelniania .
  • Uwierzytelnianie funkcji Azure można zaimplementować za pomocą zarządzanych tożsamości skojarzonych z funkcjami. Tych tożsamości można użyć do uwierzytelniania w obszarze roboczym Azure Quantum.
  • Wielu klientów uzyskuje dostęp do interfejsu API. Ograniczanie żądań można zaimplementować przy użyciu ograniczania żądań usługi API Management w celu ochrony zaplecza kwantowego i ograniczenia użycia zasobów kwantowych.
  • W zależności od wzorca żądania może być możliwe zaimplementowanie buforowania wyników obliczeń kwantowych przy użyciu zasad buforowania usługi API Management.

Ogólnie rzecz biorąc, należy rozważyć zastosowanie typowych wzorców projektowych dla zabezpieczeń, jeśli jest to konieczne.

Wydajność

Wydajność to możliwość skalowania obciążenia w celu spełnienia wymagań, które są na nim nakładane przez użytkowników w wydajny sposób. Aby uzyskać więcej informacji, zobacz listę kontrolną przeglądu projektu pod kątem wydajności.

Wydajność aplikacji zależy od dostępności i wydajności bazowych celów obliczeniowych kwantowych. Aby uzyskać informacje na temat wydajności i skalowalności klasycznych składników, zapoznaj się z typowymi wzorcami projektowymi dotyczącymi skalowalności oraz listą kontrolną wydajności wydajności.

Typowe funkcje

Następujące funkcje są wspólne zarówno dla ściśle powiązanych i luźno powiązanych modeli implementacji

Alternatywy

Przedstawione tutaj architektury dotyczą problemów biznesowych, które wymagają zasobów obliczeniowych kwantowych na potrzeby zadań obliczeniowych. W przypadku niektórych wyzwań obliczeniowych istniejące usługi utworzone w celu wykonywania obliczeń o wysokiej wydajności lub zapewnienia funkcji sztucznej inteligencji mogą być alternatywą.

Zagadnienia dotyczące

Niektóre z kwantowych celów Azure (zwłaszcza sprzętu kwantowego) są ograniczonym zasobem w przewidywalnej przyszłości. Dostęp do tych zasobów jest implementowany za pośrednictwem mechanizmu kolejkowania. Po przesłaniu zadania kwantowego do Azure Quantum to zadanie jest dodawane do kolejki zadań. Zadanie jest uruchamiane po zakończeniu przetwarzania wcześniejszych wpisów kolejki. Oczekiwany czas oczekiwania można uzyskać, wyświetlając listę dostępnych obiektów docelowych. Aby obliczyć pełny czas odpowiedzi, należy dodać czas oczekiwania na dostępny zasób do czasu wykonania zadania.

Niezawodność

Ponieważ środowiska docelowe kwantowe, takie jak Azure Quantum zwykle zapewniają ograniczoną korektę błędów (ograniczoną do procesora kwantowego w przypadku Azure Quantum), inne błędy, takie jak limit czasu maszyny kwantowej, mogą nadal występować, dlatego zaleca się monitorowanie wykonywania zadań, aby umożliwić użytkownikowi informowanie o stanie zadania. Gdy wykonywanie zadania kończy się niepowodzeniem z powodu błędu przejściowego, zaimplementuj wzorzec ponawiania . Prześlij zadania za pomocą wywołań asynchronicznych z sondowaniem wyniku, aby uniknąć niepotrzebnego blokowania klienta wywołującego.

Ponieważ zasoby obliczeń kwantowych są zwykle ograniczone, oczekiwania dotyczące odporności powinny uwzględniać ten czynnik. W związku z tym sugestie oferowane w tym artykule mogą stanowić dodatkowe środki odporności.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca optymalizacji kosztów.

Całkowity koszt tego rozwiązania zależy od docelowego obliczenia kwantowego wybranego do uruchomienia zadania kwantowego. Obliczanie szacowanych kosztów dla składników klasycznych jest proste. Możesz użyć kalkulatora cen Azure.

W przypadku usługi Azure Quantum należy wziąć pod uwagę, że dostawcy obliczeń kwantowych mogą być używani za pośrednictwem oferty Microsoft Marketplace. Ceny zależą od typu zasobu (symulatora lub sprzętu), jednostki SKU i użycia. Aby uzyskać więcej informacji, zobacz stronę referencyjną dostawcy potrzebną dla danego scenariusza. Te strony referencyjne są wymienione w sekcji Dostawcy komputerów kwantowych na platformie Azure Quantum.

Doskonałość operacyjna

Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i utrzymują jej działanie w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca doskonałości operacyjnej.

Włączenie zadań kwantowych do klasycznych potoków ciągłej integracji/ciągłego wdrażania można wykonać przy użyciu Azure DevOps z drobnymi zmianami w typowym projekcie. Poniższy projekt ilustruje przepływ pracy potoku DevOps, który można zastosować do ściśle powiązanych i luźno powiązanych architektur.

Architektura

Diagram architektury przedstawiający klasyczny pipeline CI/CD z wykorzystaniem Azure Quantum.

Pobierz plik PowerPoint tej architektury.

Przepływ danych
  1. Deweloper zmienia kod źródłowy składników aplikacji.
  2. Zmiany są zatwierdzane w repozytorium kodu źródłowego.
  3. Zmiany kodu kwantowego wyzwalają potok kompilacji kwantowej. Potok kompilacji sprawdza kod, kompiluje go, szacuje wymagane zasoby i uruchamia algorytm w symulatorze.
  4. Skompilowany algorytm kwantowy jest przesyłany do środowiska kwantowego na potrzeby testowania.
  5. Zmiany wyzwalają potok kompilacji dla klasycznych składników. Pipeline sprawdza kod, kompiluje go oraz uruchamia testy jednostkowe i integracyjne.
  6. Pomyślna kompilacja i testy wyzwalają potok wydania. Potok najpierw aprowizuje środowisko Azure przez wdrożenie szablonów Azure Resource Manager przechowywanych w repozytorium (infrastruktura jako kod).
  7. Skompilowane klasyczne artefakty aplikacji są wdrażane w Azure. Zadania kwantowe są przekazywane do obszaru roboczego kwantowego w trakcie wykonywania.
  8. Usługa Application Insights monitoruje zachowanie środowiska uruchomieniowego, kondycję, wydajność i informacje o użyciu.
  9. Elementy listy prac są aktualizowane zgodnie z potrzebami, w zależności od wyników monitorowania.
  10. Deweloper używa usługi Application Insights do przesyłania opinii i optymalizacji aplikacji.
Składniki

To rozwiązanie korzysta z następujących narzędzi DevOps:

  • Azure Repos udostępnia nieograniczone prywatne repozytoria Git hostowane w chmurze. Jest on używany w tym miejscu do przechowywania kodu kwantowego i klasycznego oraz szablonów Azure Resource Manager używanych do aprowizacji środowiska.
  • Azure Pipelines umożliwia ciągłe kompilowanie, testowanie i wdrażanie w chmurze. W tym miejscu używa się jej do implementacji ciągłej integracji/ciągłego wdrażania, w tym przygotowania środowiska przed wdrożeniem kodu.

Alternatywnie można użyć repozytoriów GitHub i akcji na GitHubie w celu zaimplementowania procesów ciągłej integracji/ciągłego wdrażania.

Rozwiązanie korzysta z następujących innych składników:

  • Aplikacja kliencka organizuje zadanie kwantowe. Integrację można zaimplementować przy użyciu ściśle powiązanego lub luźno powiązanego podejścia.
  • Azure Quantum udostępnia workspace dla zasobów skojarzonych z uruchomionymi aplikacjami do obliczeń kwantowych. Zadania są uruchamiane na symulatorach kwantowych lub sprzęcie kwantowym, w zależności od wybranego dostawcy.
  • Microsoft Entra ID koordynuje uwierzytelnianie użytkowników i chroni dostęp do obszaru roboczego Azure Quantum.
  • Azure Key Vault zabezpiecza i utrzymuje kontrolę nad kluczami i innymi wpisami tajnymi, takimi jak nazwa obszaru roboczego kwantowego.
  • Azure Storage przechowuje dane wejściowe i wyjściowe zadania kwantowego.
  • Application Insights monitoruje aplikację, wykrywa anomalie aplikacji, takie jak niska wydajność i błędy, i wysyła dane telemetryczne do portalu Azure.

Wydajność

Wydajność aplikacji zależy od dostępności i wydajności bazowych celów obliczeniowych kwantowych. Aby uzyskać informacje na temat wydajności i skalowalności klasycznych składników, zapoznaj się z typowymi wzorcami projektowymi dotyczącymi skalowalności oraz listą kontrolną wydajności wydajności.

Współpracownicy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następującego współautora.

Główny autor:

  • Holger Sirtl | Starszy architekt techniczny w Centrum technologii firmy Microsoft

Aby wyświetlić profile niepublicznych LinkedIn, zaloguj się do LinkedIn.

Następne kroki