Integracja obliczeń kwantowych z aplikacjami klasycznymi

Azure Quantum
Azure Key Vault
Identyfikator Microsoft Entra

Przetwarzanie klasyczne jest coraz bardziej kwestionowane z dzisiejszymi najbardziej złożonymi problemami obliczeniowymi - 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 aranżacja obejmuje następujące działania:

  • Przygotowywanie danych wejściowych
  • Przesyłanie zadań obliczeń kwantowych do docelowego środowiska kwantowego
  • Monitorowanie wykonywania zadania
  • Przetwarzanie końcowe wyników 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 korzysta z usługi Azure Quantum jako aparatu obliczeniowego kwantowego, ale różnią się nieco w innych aspektach, jak opisano poniżej.

Ś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 będzie używane tylko przez jedną wyspecjalizowaną aplikację klasyczną.
  • Zaimplementowany algorytm jest hybrydowym kwantowo-klasycznym z natury, na przykład odmianowym kwantowym Eigensolvers (VQE) i kwantowymi przybliżonymi algorytmami optymalizacji (QAOA).

Architektura

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

Pobierz plik programu PowerPoint tej architektury.

Dataflow

  1. Zalogowany użytkownik wyzwala wykonywanie zadań kwantowych za pośrednictwem klasycznej aplikacji klienckiej.
  2. Aplikacja kliencka umieszcza dane wejściowe w usłudze Azure Storage.
  3. Aplikacja kliencka przesyła zadanie do obszaru roboczego usługi Azure Quantum, określając docelowy lub docelowy cel wykonania. Klient identyfikuje obszar roboczy za pośrednictwem danych przechowywanych w usłudze Key Vault i uwierzytelnia się w obszarze roboczym za pośrednictwem tożsamości zarządzanej.
  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 Request-Reply asynchroniczny oraz kroki zdefiniowane dla cyklu życia zadania Azure Quantum.

Składniki

  • azure Quantum udostępnia obszar roboczy , dostępny w witrynie Azure Portal, dla zasobów skojarzonych z uruchamianiem zadań kwantowych na różnych miejscach docelowych. Zadania są uruchamiane na symulatorach kwantowych lub sprzęcie kwantowym, w zależności od wybranego dostawcy.
  • identyfikator entra firmy Microsoft koordynuje uwierzytelnianie użytkowników i pomaga chronić dostęp do obszaru roboczego usługi Azure Quantum.
  • usługi Key Vault zabezpieczenia i utrzymuje kontrolę nad kluczami i innymi wpisami tajnymi, takimi jak nazwa obszaru roboczego usługi Azure Quantum.
  • usługi Azure Storage zapewnia magazyn danych wejściowych i wyników od dostawcy kwantowego.

Zagadnienia dotyczące

Te zagadnienia obejmują implementację filarów platformy Azure Well-Architected Framework, 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 Design review checklist for Reliability(Lista kontrolna 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 platformy Azure mają zastosowanie typowe zagadnienia dotyczące dostępności:

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

Bezpieczeństwo

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ącazabezpieczeń.

W przeciwieństwie do architektury luźno powiązanej alternatywnej, architektura przedstawiona tutaj opiera się na założeniu, że tylko jeden klient uzyskuje dostęp do obszaru roboczego usługi 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 programu PowerPoint tej architektury.

Dataflow

  1. Zalogowany użytkownik wyzwala wykonywanie zadań kwantowych za pośrednictwem klasycznej aplikacji.
  2. Aplikacja klasyczna wywołuje interfejs API zadania niestandardowego w celu przesłania zadania.
  3. Brama interfejsu API wyzwala funkcję platformy Azure przesyłania zadania, która przekazuje dane wejściowe zadania.
  4. Funkcja umieszcza dane wejściowe w usłudze Azure Storage.
  5. Funkcja przesyła zadanie do obszaru roboczego usługi Azure Quantum, określając docelowy lub docelowy cel wykonania. Funkcja identyfikuje obszar roboczy za pośrednictwem danych przechowywanych w usłudze Azure Key Vault i uwierzytelnia się w obszarze roboczym za pośrednictwem tożsamości zarządzanej.
  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. Brama interfejsu API monitoruje wykonywanie zadań przez sondowanie stanu zadania od dostawcy kwantowego.
  9. Po zakończeniu zadania wyniki obliczeń są przechowywane w usłudze Azure Storage. Aplikacja kliencka pobiera wyniki przy użyciu interfejsu API zaimplementowanego za pośrednictwem funkcji platformy Azure.

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

Składniki

  • azure Quantum udostępnia obszar roboczy , dostępny w witrynie Azure Portal, dla zasobów skojarzonych z uruchamianiem zadań kwantowych na różnych miejscach docelowych. Zadania są uruchamiane na symulatorach kwantowych lub sprzęcie kwantowym, w zależności od wybranego dostawcy.
  • identyfikator entra firmy Microsoft koordynuje uwierzytelnianie użytkowników i pomaga chronić dostęp do obszaru roboczego usługi Azure Quantum.
  • usługi API Management to brama interfejsu API, która centralnie uwidacznia punkty końcowe interfejsu API na potrzeby zarządzania zadaniami kwantowymi.
  • usługa Azure Functions służy do przekazywania żądań klientów do odpowiednich zasobów kwantowych.
  • usługi Azure Key Vault zabezpieczenia i utrzymuje kontrolę nad kluczami i innymi wpisami tajnymi, takimi jak nazwa obszaru roboczego usługi Azure Quantum.
  • usługi 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 platformy 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ć usługi Azure Functions w wielu regionach.
  • Użyj opcji nadmiarowości Key Vault.
  • W razie potrzeby rozważ użycie opcji replikacji w usłudze Storage.

Bezpieczeństwo

W przeciwieństwie do architektury ściśle powiązanej alternatywnej, architektura przedstawiona tutaj opiera się na założeniu, że wielu klientów uzyskuje dostęp do obszaru roboczego usługi 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 platformy Azure można zaimplementować za pomocą tożsamości zarządzanych skojarzonych z funkcjami. Tych tożsamości można używać do uwierzytelniania w obszarze roboczym usługi 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 Lista kontrolna 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 cele kwantowe platformy Azure (zwłaszcza sprzęt kwantowy) będą ograniczonym zasobem w najbliższej przyszłości. Dostęp do tych zasobów jest implementowany za pośrednictwem mechanizmu kolejkowania. Po przesłaniu zadania kwantowego do usługi Azure Quantum to zadanie jest dodawane do kolejki zadań. Zadanie zostanie wykonane po zakończeniu przetwarzania wcześniejszych wpisów kolejki przez obiekt docelowy. 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 usługi 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 dlaoptymalizacji 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 platformy Azure .

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

Doskonałość operacyjna

Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i działają 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 usługi Azure DevOps z niewielkimi zmianami w typowym projekcie. W poniższym projekcie przedstawiono 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 potok ciągłej integracji/ciągłego wdrażania z włączonym do niego potokiem usługi Azure Quantum.

Pobierz plik programu PowerPoint tej architektury.

Dataflow
  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. Potok sprawdza kod, kompiluje go i uruchamia testy jednostkowe i integracyjne.
  6. Pomyślna kompilacja i testy wyzwalają potok wydania. Potok najpierw aprowizuje środowisko platformy Azure przez wdrożenie szablonów usługi Azure Resource Manager przechowywanych w repozytorium (infrastruktura jako kod).
  7. Skompilowane klasyczne artefakty aplikacji są wdrażane na platformie Azure. Zadania kwantowe są przesyłane do obszaru roboczego kwantowego podczas 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 zapewnia nieograniczone, hostowane w chmurze prywatne repozytoria Git. Jest ona używana w tym miejscu do przechowywania kodu kwantowego i klasycznego oraz szablonów usługi Azure Resource Manager używanych do aprowizowania środowiska.
  • usługa Azure Pipelines umożliwia ciągłe kompilowanie, testowanie i wdrażanie w chmurze. W tym miejscu jest używana do implementowania ciągłej integracji/ciągłego wdrażania, w tym aprowizacji środowiska przed wdrożeniem kodu.

Alternatywnie możesz użyć repozytoriów GitHub i akcji Usługi GitHub 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 obszaru roboczego 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.
  • identyfikator entra firmy Microsoft koordynuje uwierzytelnianie użytkowników i chroni dostęp do obszaru roboczego usługi Azure Quantum.
  • usługi Azure Key Vault zabezpieczenia i utrzymuje kontrolę nad kluczami i innymi wpisami tajnymi, takimi jak nazwa obszaru roboczego kwantowego.
  • usługi 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 witryny Azure Portal.

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ółpracowników

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ć niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki