従来のコンピューティングは、私たちの最も強力なスーパーコンピュータの規模であっても、今日の最も複雑なコンピューティングの問題にますます挑戦されています。 量子コンピューターは、コンピューティング機能を大幅に拡張するという約束を果たしています。 量子物理学の特性を利用して計算を実行することで、特定の種類の問題に対して指数関数的な高速化を実現します。 たとえば、量子コンピューターは、最適化、シミュレーション、機械学習のシナリオでよく見られる多数の可能な組み合わせを計算する必要がある問題に非常に適しています。
ただし、量子コンピューティング コンポーネントの動作モデルは、従来のソフトウェアとは異なります。 通常、量子コンポーネントの実行を調整する 1 つ以上の古典的なコンピューティング コンポーネントがあります。 このオーケストレーションには、次のアクティビティが含まれます。
- 入力データの準備
- ターゲット量子環境に する量子コンピューティング
ジョブの送信 - ジョブ実行の監視
- ジョブ結果の後処理
このオーケストレーションは、次の 2 つの方法のいずれかで従来のアプリケーションと統合できます。
- 厳密なカップリングによる統合。 量子リソースのオーケストレーションのロジックは、従来のコンポーネントまたはコンポーネントに統合されます。
- 疎結合による統合。 量子リソースのオーケストレーションのロジックは、さまざまな従来のソフトウェア コンポーネントから呼び出すことができる API として公開されます。
この記事では、これらの各設計で量子アプリケーションを実装する方法について説明します。 各実装では、量子コンピューティング エンジンとして Azure Quantum を使用しますが、以下で詳しく説明するように、他の側面で若干異なります。
密結合アプローチ
潜在的なユース ケース
これらの場合は、密結合アプローチが推奨されます。
- 1 つのチームが量子コードと従来のコードの両方を所有しており、コードが統合されています。
- 量子コンポーネントは、従来のコンポーネントと同じライフサイクルを共有します。
- 量子コンポーネントの使用は、1 つのアプリケーションまたは少数の関連アプリケーションに限定されます。
- 量子ジョブは、1 つの特殊な古典的アプリケーションでのみ使用される特殊なソリューション (たとえば、分子シミュレーション) を表します。
- 実装されたアルゴリズムは、本質的にハイブリッド量子古典的です。たとえば、変動量子固有ソルバ (VQE) や量子近似最適化アルゴリズム (QAOA) などです。
建築
データフロー
- サインインしているユーザーは、従来のクライアント アプリケーションを使用して量子ジョブの実行をトリガーします。
- クライアント アプリケーションは、入力データを Azure Storage に格納します。
- クライアント アプリケーションは、実行ターゲットまたはターゲットを指定して、ジョブを Azure Quantum ワークスペースに送信します。 クライアントは、Key Vault に格納されているデータを使用してワークスペースを識別し、マネージド IDを使用してワークスペース
認証します。 - 量子プロバイダーは、ターゲット環境でジョブを実行します。
- クライアント アプリケーションは、ジョブの状態をポーリングしてジョブの実行を監視します。
- 量子ジョブが完了するとすぐに、クライアント アプリケーションは Storage からコンピューティング結果を取得します。
このワークフローでは、非同期 Request-Reply パターン と、Azure Quantum ジョブ ライフサイクルに定義されている手順を実装します。
コンポーネント
- Azure Quantum は、さまざまなターゲットでの量子ジョブの実行に関連する資産に対して、Azure portal からアクセスできる ワークスペースを提供します。 ジョブは、選択したプロバイダーに応じて、量子シミュレーターまたは量子ハードウェアで実行されます。
- Microsoft Entra ID は、ユーザー認証を調整し、Azure Quantum ワークスペースへのアクセスを保護するのに役立ちます。
- Key Vault キーとその他のシークレット (Azure Quantum ワークスペース名など) の制御を保護および維持します。
- Azure Storage は、量子プロバイダーからの入力データと結果のストレージを提供します。
考慮 事項
これらの考慮事項は、Azure Well-Architected Framework の柱を実装します。これは、ワークロードの品質を向上させるために使用できる一連の基本原則です。 詳細については、Microsoft Azure Well-Architected Frameworkの
確実
信頼性により、アプリケーションは顧客に対するコミットメントを確実に満たすことができます。 詳細については、「信頼性
量子コンピューティング機能の可用性は、量子コンピューティング プロバイダーの可用性とインストール ベースに大きく依存します。 コンピューティング 先によっては、従来のクライアント アプリケーションで長い遅延が発生したり、ターゲットが使用できなくなったりする場合があります。
周囲の Azure サービスには、通常の可用性に関する考慮事項が適用されます。
安全
セキュリティは、意図的な攻撃や貴重なデータとシステムの悪用に対する保証を提供します。 詳細については、「セキュリティ
疎結合の代替のアーキテクチャとは異なり、ここで示すアーキテクチャは、1 つのクライアントのみが Azure Quantum ワークスペースにアクセスするという前提に基づいています。 このシナリオでは、次の構成が行われます。
- クライアントは既知であるため、アプリケーションに関連付けられているマネージド ID
使用して認証を実装できます。 - クライアント自体に要求の調整と結果のキャッシュを実装できます。
一般に、必要に応じて、セキュリティ
疎結合アプローチ
潜在的なユース ケース
次のような場合は、疎結合アプローチをお勧めします。
- 他のチームに量子機能を一元的に提供する量子スペシャリストの専用チームがあり、量子コンポーネントは従来のクライアント コンポーネントとは別に開発されています。
- 量子ジョブは、複数の従来のアプリケーションで再利用できる汎用ソリューション (ジョブ スケジューリングなど) を表します。
建築
データフロー
- サインインしているユーザーは、従来のアプリケーションを使用して量子ジョブの実行をトリガーします。
- 従来のアプリケーションは、カスタム ジョブ API を呼び出してジョブを送信します。
- API ゲートウェイは、ジョブ入力データを渡すジョブ送信 Azure 関数をトリガーします。
- この関数は、入力データを Azure Storage に格納します。
- この関数は、実行ターゲットまたはターゲットを指定して、ジョブを Azure Quantum ワークスペースに送信します。 この関数は、Azure Key Vault に格納されているデータを使用してワークスペースを識別し、マネージド IDを使用してワークスペース
認証します。 - 量子プロバイダーは、ターゲット環境でジョブを実行します。
- クライアント アプリケーションは、API 呼び出しを介してジョブの状態をポーリングすることによってジョブの実行を監視します。
- API ゲートウェイは、量子プロバイダーからジョブの状態をポーリングすることによってジョブの実行を監視します。
- ジョブが完了すると、コンピューティング結果は Azure Storage に格納されます。 クライアント アプリケーションは、Azure 関数を使用して実装された API を使用して結果を取得します。
このワークフローでは、非同期 Request-Reply パターン と、Azure Quantum ジョブ ライフサイクルに定義されている手順を実装します。
コンポーネント
- Azure Quantum は、さまざまなターゲットでの量子ジョブの実行に関連する資産に対して、Azure portal からアクセスできる ワークスペースを提供します。 ジョブは、選択したプロバイダーに応じて、量子シミュレーターまたは量子ハードウェアで実行されます。
- Microsoft Entra ID は、ユーザー認証を調整し、Azure Quantum ワークスペースへのアクセスを保護するのに役立ちます。
- API Management は、量子ジョブ管理用の API エンドポイントを一元的に公開する API ゲートウェイです。
- Azure Functions は、クライアント要求を適切な量子リソースに転送するために使用されます。
- Azure Key Vault キーとその他のシークレット (Azure Quantum ワークスペース名など) の制御を保護および維持します。
- Azure Storage は、量子プロバイダーからの入力データと結果のストレージを提供します。
確実
量子コンピューティング機能の可用性は、量子コンピューティング プロバイダーの可用性とインストール ベースに大きく依存します。 コンピューティング 先によっては、従来のクライアント アプリケーションで長い遅延が発生したり、ターゲットが使用できなくなったりする場合があります。
周囲の Azure サービスには、通常の可用性に関する考慮事項が適用されます。
- 高可用性を実現するために、API Management を複数のゾーンまたはリージョンにデプロイできます。
- geo レプリケーションを使用する場合は、複数のリージョン Azure Functions をプロビジョニングできます。
- Key Vault 冗長性オプションを使用します。
- 必要に応じて、Storageのレプリケーション オプションの使用を検討してください。
安全
密結合の代替のアーキテクチャとは異なり、ここで示すアーキテクチャは、複数のクライアントが API を介して Azure Quantum ワークスペースにアクセスするという前提に基づいています。 このシナリオでは、次の構成が行われます。
- クライアントは API に対して認証する必要があります。 この認証は、
認証ポリシーを使用して実装できます。 - 関数に関連付けられているマネージド ID
介して、Azure 関数の認証を実装できます。 これらの ID を使用して、Azure Quantum ワークスペースに対する認証を行うことができます。 - 複数のクライアントが API にアクセスします。 API Management 要求調整 を使用して、量子バックエンドを保護し、量子リソースの使用を制限することで、要求の調整を実装できます。
- 要求パターンによっては、API Management キャッシュ ポリシーを使用して、量子コンピューティングの結果のキャッシュを実装できる場合があります。
一般に、必要に応じて、セキュリティ
パフォーマンス効率
パフォーマンス効率は、効率的な方法でユーザーの要求に合わせてワークロードをスケーリングする機能です。 詳細については、「パフォーマンス効率
アプリケーションのパフォーマンスは、基になる量子コンピューティング ターゲットの可用性とパフォーマンスによって異なります。 従来のコンポーネントのパフォーマンスとスケーラビリティの詳細については、スケーラビリティ の一般的な設計パターン
一般的な機能
次の機能は、密結合実装モデルと疎結合実装モデルの両方に共通です
選択肢
ここで示すアーキテクチャは、コンピューティング タスクに量子コンピューティング リソースを必要とするビジネス上の問題を対象としています。 一部のコンピューティングの課題では、ハイ パフォーマンス コンピューティング を実行したり、AI 機能を提供したりするために構築された既存のサービス 代替になる可能性があります。
考慮 事項
一部の Azure 量子ターゲット (特に量子ハードウェア) は、近い将来、限られたリソースになります。 これらのリソースへのアクセスは、キューメカニズムを介して実装されます。 量子ジョブを Azure Quantum に送信すると、このジョブはジョブ キューに追加されます。 ターゲットが以前のキュー エントリの処理を完了すると、ジョブが実行されます。 使用可能なターゲットを一覧表示
確実
通常、Azure Quantum のような量子ターゲット環境ではエラー修正が制限されるため (Azure Quantum の場合は量子プロセッサに制限されます)、量子マシンのタイムアウトなどの他のエラーが引き続き発生する可能性があるため、ジョブの実行を監視して、ジョブの状態をユーザーに通知することをお勧めします。 一時的なエラーが原因でジョブの実行が失敗した場合は、再試行パターンを実装します。 呼び出し元のクライアントを不必要にブロックしないように、非同期呼び出しを介してジョブを送信し、結果をポーリングします。
通常、量子コンピューティング リソースは限られているので、回復性の期待はこの要因を考慮する必要があります。 そのため、この記事で提供される提案は、回復性の追加の手段を提供する可能性があります。
コストの最適化
コストの最適化は、不要な費用を削減し、運用効率を向上させる方法を検討することです。 詳細については、「コストの最適化
このソリューションの全体的なコストは、量子ジョブを実行するために選択した量子コンピューティング ターゲットによって異なります。 クラシック コンポーネントの推定コストの計算は簡単です。 Azure 料金計算ツールを使用できます。
Azure Quantum サービスの場合は、Azure Marketplace オファリングを介して Quantum コンピューティング プロバイダーを使用できることを検討してください。 価格は、リソースの種類 (シミュレーターまたはハードウェア)、SKU、使用状況によって異なります。 詳細については、シナリオに必要なプロバイダーのリファレンス ページを参照してください。 これらのリファレンス ページは、Azure Quantum
オペレーショナル エクセレンス
オペレーショナル エクセレンスは、アプリケーションをデプロイし、運用環境で実行し続ける運用プロセスを対象としています。 詳細については、「オペレーショナル エクセレンス
従来の CI/CD パイプラインに量子ジョブを組み込むには、Azure DevOps を使用し、一般的な設計を少し変更します。 次の設計は、密結合アーキテクチャと疎結合アーキテクチャに適用できる DevOps パイプライン ワークフローを示しています。
建築
データフロー
- 開発者は、アプリケーション コンポーネントのソース コードを変更します。
- 変更はソース コード リポジトリにコミットされます。
- 量子コードを変更すると、量子ビルド パイプラインがトリガーされます。 ビルド パイプラインは、コードをチェックアウトし、コンパイルし、必要なリソースを見積もり、シミュレーターでアルゴリズムを実行します。
- コンパイル済みの量子アルゴリズムは、テストのために量子環境に送信されます。
- 変更によって、従来のコンポーネントのビルド パイプラインがトリガーされます。 パイプラインはコードをチェックアウトし、コンパイルし、単体テストと統合テストを実行します。
- コンパイルとテストが成功すると、リリース パイプラインがトリガーされます。 パイプラインはまず、リポジトリに格納されている Azure Resource Manager テンプレート (コードとしてのインフラストラクチャ) をデプロイすることで、Azure 環境をプロビジョニングします。
- コンパイルされた従来のアプリケーション成果物は、Azure にデプロイされます。 量子ジョブは、実行時に量子ワークスペースに送信されます。
- Application Insights は、ランタイムの動作、正常性、パフォーマンス、および使用状況の情報を監視します。
- バックログ項目は、監視結果に応じて必要に応じて更新されます。
- 開発者は、アプリケーションのフィードバックと最適化に Application Insights を使用します。
コンポーネント
このソリューションでは、次の DevOps ツールを使用します。
- Azure Repos は、クラウドでホストされる無制限のプライベート Git リポジトリを提供します。 ここでは、量子コードと従来のコードと、環境のプロビジョニングに使用される Azure Resource Manager テンプレートを格納するために使用します。
- Azure Pipelines を使用すると、クラウドを継続的に構築、テスト、デプロイできます。 ここでは、コードのデプロイ前に環境のプロビジョニングを含む CI/CD を実装するために使用されます。
代わりに、GitHub リポジトリと GitHub アクションを使用して CI/CD プロセスを実装することもできます。
このソリューションでは、次の他のコンポーネントを使用します。
- クライアント アプリケーションは、量子ジョブを調整します。
密結合 または疎結合 アプローチを使用して統合を実装できます。 - Azure Quantum は、量子コンピューティング アプリケーションの実行に関連付けられている資産の ワークスペース を提供します。 ジョブは、選択したプロバイダーに応じて、量子シミュレーターまたは量子ハードウェアで実行されます。
- Microsoft Entra ID は、ユーザー認証を調整し、Azure Quantum ワークスペースへのアクセスを保護します。
- Azure Key Vault キーとその他のシークレット (量子ワークスペース名など) の制御を保護し、維持します。
- azure Storage
は、量子ジョブの入力データと出力データを保持します。 - Application Insights は、アプリケーションを監視し、パフォーマンスの低下やエラーなどのアプリケーションの異常を検出し、テレメトリを Azure portal に送信します。
パフォーマンス効率
アプリケーションのパフォーマンスは、基になる量子コンピューティング ターゲットの可用性とパフォーマンスによって異なります。 従来のコンポーネントのパフォーマンスとスケーラビリティの詳細については、スケーラビリティ の一般的な設計パターン
貢献
この記事は Microsoft によって管理されています。 これはもともと次の共同作成者によって書かれました。
プリンシパルの作成者:
- ホルガー サートル |Microsoft テクノロジ センターのシニア テクニカル アーキテクト
非公開の LinkedIn プロファイルを表示するには、LinkedIn にサインインします。
次の手順
- フルスタックのオープン クラウド量子コンピューティング エコシステムである Microsoft Quantum の概要については、Microsoft Quantum の
を参照し、 Quantum コンピューティングの基礎 ラーニング パスを完成させます。 - Azure Quantum サービスの詳細については、Azure Quantum
に関するページを参照してください。 - Azure Quantum ジョブ管理の一般的な情報については、「Azure Quantum ジョブの操作」を参照してください。
- 量子ハードウェアでアルゴリズムを実行する方法の詳細については、「モジュール Azure Quantumを使用して量子ハードウェアでアルゴリズムを実行する」を参照してください。
関連リソース
- オペレーショナル エクセレンスの原則
- 非同期 Request-Reply パターン の
- 疎結合量子コンピューティング の