JP2022511293A - 量子回路の設計 - Google Patents

量子回路の設計 Download PDF

Info

Publication number
JP2022511293A
JP2022511293A JP2021512410A JP2021512410A JP2022511293A JP 2022511293 A JP2022511293 A JP 2022511293A JP 2021512410 A JP2021512410 A JP 2021512410A JP 2021512410 A JP2021512410 A JP 2021512410A JP 2022511293 A JP2022511293 A JP 2022511293A
Authority
JP
Japan
Prior art keywords
quantum
processor
visualization
computer
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021512410A
Other languages
English (en)
Other versions
JP7216807B2 (ja
Inventor
ペドノルト、エドウィン、ピーター、ドーソン
ウィスニエフ、ロバート
ソ、ヒョン、キュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022511293A publication Critical patent/JP2022511293A/ja
Application granted granted Critical
Publication of JP7216807B2 publication Critical patent/JP7216807B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/803Three-dimensional arrays or hypercubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/02Computing arrangements based on specific mathematical models using fuzzy logic
    • G06N7/023Learning or tuning the parameters of a fuzzy system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Architecture (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

量子プロセッサの可視化もしくは量子プロセッサとのインタラクションのための技術およびシステムが提供される。一例では、システムは、量子プログラミング・コンポーネントおよび可視化コンポーネントを含む。量子プログラミング・コンポーネントは、量子プロセッサに関連するキュービットの集合の物理トポロジを示す量子プロセッサのトポロジ・データを生成するための量子プログラミング・プロセスを管理する。可視化コンポーネントは、キュービットの集合の物理トポロジに対応するように設けられた平面スライス要素の集合を含むトポロジ・データの可視化データを生成する。平面スライス要素の集合は、量子プログラミング・プロセスに関連する時間ステップで行われる一つ以上の動作を示す。

Description

本発明は、一般に量子回路(例えば量子プロセッサ)に関し、特に量子回路の設計に関する。
量子コンピューティングは、トランジスタに基づくバイナリ・デジタル技術ではなく、量子物理学を用いて情報をエンコードする。例えば量子回路は、量子物理学の重ね合わせの原理および量子物理学のもつれの原理にしたがって動作する量子ビット(例えばキュービット)を用いうる。量子物理学の重ね合わせの原理により、各キュービットは「1」の値および「0」の値の両方を同時に表現することができる。量子物理状態のもつれの原理により、重ね合わせにおけるキュービットが相互に相関しうる。例えば、第一値の状態(例えば「1」の値または「0」の値)が、第二値の状態に依存しうる。このように、量子回路は、トランジスタに基づくバイナリ・デジタル技術ではなく、キュービットを用いて情報をエンコードしうる。しかし、量子回路の設計は、従来のバイナリ・デジタル・デバイスと比べて一般に困難であり、もしくは時間がかかり、またはその両方である。したがって、量子回路の設計を容易にするためにユーザ・インタフェースが用いられうる。一例では、Douglassら、米国特許出願公開第2018/0246848号が、「量子プロセッサのトポロジまたはハードウェア・グラフは、例えば問題の埋め込みの前に、例えば各チェーンが単一または論理キュービットとして動作するキュービットのチェーンを作成して量子プロセッサに論理グラフを与えることによって、修正可能である。ユーザ・インタフェース(UI、user interface)は、ユーザが、特定の問題または特定のタイプの問題を埋め込むのに適したトポロジを選択すること、所望のトポロジを定義するパラメータを供給すること、または、プロセッサベースのシステムが与えるべき適切なトポロジもしくは論理グラフを決定または選択する問題グラフもしくは問題定義を供給もしくは指定することを可能にする」と開示する。しかし、例えばDouglassらによって開示されたユーザ・インタフェースなどの従来のユーザ・インタフェースを使用して量子回路を設計することは困難であり、もしくは時間がかかり、またはその両方である。
米国特許出願公開第2018/0246848号
以下は、本発明の一つ以上の実施形態の基本的な理解を提供するための概要を提示する。この概要は、主要または重要な要素を識別すること、または特定の実施形態の範囲もしくは特許請求の範囲を線引きすることを意図するものではない。その唯一の目的は、後で提示されるより詳細な説明の前置きとして、構想を簡略化された形式で提示することである。本明細書に記載の一つ以上の実施形態では、量子プロセッサの可視化もしくは量子プロセッサとのインタラクションまたはその両方を促進するためのデバイス、システム、コンピュータに実装された方法、装置もしくはコンピュータ・プログラム製品またはそれらの組み合わせが記載される。
一実施形態によれば、システムは、量子プログラミング・コンポーネントと可視化コンポーネントとを含みうる。量子プログラミング・コンポーネントは、量子プロセッサに関連するキュービットの集合の物理トポロジを示す量子プロセッサのトポロジ・データを生成するための量子プログラミング・プロセスを管理しうる。可視化コンポーネントは、キュービットの集合の物理トポロジに対応するように設けられた平面スライス要素の集合を含むトポロジ・データの可視化データを生成しうる。平面スライス要素の集合は、量子プログラミング・プロセスに関連する時間ステップで行われる一つ以上の動作を示しうる。本システムは、従来の量子プロセッサ設計技術と比較して、様々な利点を提供しうる。ある実施形態では、本システムは、量子プロセッサの量子プログラミング・アルゴリズムにおいて改善された視覚的対称性もしくは改善されたパターンの検出またはその両方を提供しうる。一実施形態では、可視化コンポーネントは、平面スライス要素の集合に関連するノードの集合およびエッジの集合を提供しうる。ノードの集合は、キュービットの集合を表現しうる。エッジの集合は、キュービットの集合からのキュービットの間の接続の集合を表現しうる。別の実施形態では、可視化は第一可視化データであり得、可視化コンポーネントは、量子プログラミング・プロセスに関連するアセンブリ・コードのための第二可視化データを生成しうる。さらに別の実施形態では、可視化コンポーネントは、ユーザ・インタフェースを介して、平面スライス要素の集合に関連する第一可視化データを、量子プログラミング・プロセスに関連する第二可視化データと並列に表示しうる。ある実施形態では、インタラクション・コンポーネントが、ユーザ・インタフェースを介した可視化データと量子プログラミング・プロセスとの間のインタラクションを提供しうる。一実施形態では、インタラクション・コンポーネントは、可視化データの修正に基づいて量子プログラミング・プロセスを修正しうる。別の実施形態では、インタラクション・コンポーネントは、ユーザ・インタフェースに関連するスクロール・アクションに基づいて、可視化データまたは量子プログラミング・プロセスに関連するアセンブリ・コードを修正しうる。さらに別の実施形態では、インタラクション・コンポーネントは、量子プログラミング・プロセスに関連するアセンブリ・コードの修正に基づいて可視化データを修正しうる。ある実施形態では、可視化コンポーネントは、異なる量子プロセッサのための異なるトポロジを生成しうる。ある実施形態では、可視化コンポーネントは、クラウドベースの量子コンピューティング・プラットフォームを介して可視化データを生成しうる。ある実施形態では、可視化コンポーネントは、デジタル・ビデオ処理を介して可視化データをレンダリングしうる。ある実施形態では、可視化コンポーネントは、量子プロセッサに関連する設計プロセスのための処理量を減少させるために可視化データを生成しうる。
別の実施形態によれば、コンピュータに実装された方法が提供される。コンピュータに実装された方法は、プロセッサに動作可能に連結されたシステムによって、量子プロセッサに関連するキュービットの集合の物理トポロジを示す量子プロセッサのトポロジ・データを生成するための量子プログラミング・プロセスを管理するステップを含みうる。コンピュータに実装された方法は、システムによって、キュービットの集合の物理トポロジに対応するように設けられた平面スライス要素の集合を含むトポロジ・データの可視化データを生成するステップであって、平面スライス要素の集合は、量子プログラミング・プロセスに関連する時間ステップで行われる一つ以上の動作を示す、ステップも含みうる。さらに、コンピュータに実装された方法は、システムによって、ユーザ・インタフェースを介した可視化データと量子プログラミング・プロセスとの間のインタラクションを提供するステップを含みうる。コンピュータに実装された方法は、従来の量子プロセッサ設計技術と比較して、様々な利点を提供しうる。ある実施形態では、コンピュータに実装された方法は、量子プロセッサの量子プログラミング・アルゴリズムにおいて改善された視覚的対称性もしくは改善されたパターンの検出またはその両方を提供しうる。一実施形態では、コンピュータに実装された方法は、システムによって、インタラクションが既定の基準を満たすとの判断に応答して、可視化データを修正するステップも含みうる。別の実施形態では、コンピュータに実装された方法は、システムによって、インタラクションが既定の基準を満たすとの判断に応答して、量子プログラミング・プロセスを修正するステップも含みうる。さらに別の実施形態では、ユーザ・インタフェースを介してインタラクションを提供するステップは、可視化データの少なくとも一部と量子プログラミング・プロセスに関連するアセンブリ・コードとを同期させるステップを含みうる。さらに別の実施形態では、ユーザ・インタフェースを介してインタラクションを提供するステップは、量子プロセッサに関連する設計プロセスのための処理量を減少させるステップを含みうる。
さらに別の実施形態によれば、量子プロセッサとのインタラクションを促進するためのコンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含みうる。プログラム命令は、プロセッサによって実行可能であり、プロセッサに、プロセッサによって量子プロセッサに関連するキュービットの集合の物理トポロジを示す量子プロセッサのトポロジ・データを生成するための量子プログラミング・プロセスを管理させうる。プログラム命令は、プロセッサに、プロセッサによってキュービットの集合の物理トポロジに対応するように設けられた平面スライス要素の集合を含むトポロジ・データの可視化データを生成させることもでき、平面スライス要素の集合は、量子プログラミング・プロセスに関連する時間ステップで行われる一つ以上の動作を示す。さらに、プログラム命令は、プロセッサに、プロセッサによってユーザ・インタフェースを介した可視化データと量子プログラミング・プロセスに関連するアセンブリ・コードとの間のインタラクションを提供させうる。コンピュータ・プログラム製品は、従来の量子プロセッサ設計技術と比較して、様々な利点を提供しうる。ある実施形態では、コンピュータ・プログラム製品は、量子プロセッサの量子プログラミング・アルゴリズムにおいて改善された視覚的対称性もしくは改善されたパターンの検出またはその両方を提供しうる。一実施形態では、プログラム命令は、プロセッサに、プロセッサによって、インタラクションが既定の基準を満たすとの判断に応答して、可視化データを修正させることもできる。別の実施形態では、プログラム命令は、プロセッサに、プロセッサによって、インタラクションが既定の基準を満たすとの判断に応答して、量子プログラミング・プロセスに関連するアセンブリ・コードを修正させることもできる。
本明細書に記載の一つ以上の実施形態による、量子コンポーザ・コンポーネントを含む例示的な非限定的なシステムのブロック図を示す。 本明細書に記載の一つ以上の実施形態による、量子コンポーザ・コンポーネントを含む別の例示的な非限定的なシステムのブロック図を示す。 本明細書に記載の一つ以上の実施形態による、量子コンポーザ・コンポーネントおよび量子プロセッサ記述を含むさらに別の例示的な非限定的なシステムのブロック図を示す。 本明細書に記載の一つ以上の実施形態による、ディスプレイ・デバイスおよびサーバに関連する例示的な非限定的なシステムを示す。 本明細書に記載の一つ以上の実施形態による、例示的な非限定的なユーザ・インタフェースを示す。 本明細書に記載の一つ以上の実施形態による、別の例示的な非限定的なユーザ・インタフェースを示す。 本明細書に記載の一つ以上の実施形態による、量子プロセッサの可視化もしくは量子プロセッサとのインタラクションまたはその両方を促進するための例示的な非限定的なコンピュータに実装された方法の流れ図を示す。 本明細書に記載の一つ以上の実施形態が促進されうる例示的な非限定的な動作環境のブロック図を示す。 本発明の一つ以上の実施形態による、例示的な非限定的なクラウド・コンピューティング環境のブロック図を示す。 本発明の一つ以上の実施形態による、例示的な非限定的な抽象モデル層のブロック図を示す。
以下の詳細な説明は単なる例示であり、実施形態もしくは実施形態の応用もしくは使用またはその両方を制限することを意図したものではない。さらに、先行する背景技術もしくは発明の概要のセクションまたは発明を実施するための形態のセクションに提示されるいかなる明示または黙示の情報によって拘束される意図もない。
次に一つ以上の実施形態を図面を参照して説明するが、図面においては全体にわたって同様の要素を指すために同様の参照番号が使用される。以下の記載では、説明の目的で、一つ以上の実施形態のより完全な理解を提供するために、多数の具体的詳細が示される。しかし、様々なケースにおいて、一つ以上の実施形態がこれらの具体的詳細なしで実施されうることは明らかである。
本開示は、クラウド・コンピューティングの詳細な説明を含むが、本明細書に記載の教示の実施態様は、クラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の実施形態は、現在知られているかまたは後に開発される他の任意のタイプのコンピューティング環境と連動して実施されることができる。
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとのインタラクションで迅速にプロビジョニングおよびリリースされうる、構成可能なコンピューティング・リソース(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)の共有プールへの簡便なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウドモデルは、少なくとも五つの特徴、少なくとも三つのサービス・モデル、および少なくとも四つの展開モデルを含みうる。
特徴は以下の通りである。
オンデマンド・セルフ・サービス:クラウド・コンシューマは、サービスのプロバイダとの人的やり取りを要せずに必要に応じて自動的にサーバの時間およびネットワーク・ストレージなどのコンピューティング能力を一方的に設定しうる。
幅広いネットワーク・アクセス:能力はネットワーク上で利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による利用を促進する標準的機構を通じてアクセスされる。
リソースのプール:プロバイダのコンピューティング・リソースは、マルチテナント・モデルを使用して複数のコンシューマに提供されるようにプールされ、様々な物理的リソースおよび仮想リソースが需要に応じて動的に割り当ておよび再割り当てされる。コンシューマは通常、提供されたリソースの正確な場所についての制御力または知識を有しないが、より抽象的なレベル(例えば国、州、またはデータセンタ)で場所を特定しうるという点で、場所にとらわれない感覚が存在する。
スピーディな拡張性:能力は、スピーディに弾力的に、場合によっては自動的に提供されて即座にスケール・アウトし、スピーディに解放されて即座にスケール・インしうる。コンシューマにとって、提供のために利用可能な能力は多くの場合無限に見え、いつでも任意の量で購入されうる。
測定されるサービス:クラウド・システムは、サービスの種類(例えばストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適した何らかの抽象レベルで計測能力を活用することにより、リソースの利用を自動的に制御および最適化する。リソースの利用状況は、監視、制御、および報告されることができ、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供する。
サービス・モデルは以下の通りである。
サービスとしてのソフトウェア(SaaS、Software as a Service):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・クライアント・インタフェース(例えばウェブベースの電子メール)を通じて、様々なクライアント・デバイスからアクセス可能である。コンシューマは、限られたユーザ固有のアプリケーション構成設定を場合によっては除いて、ネットワーク、サーバ、オペレーティング・システム、ストレージまたは個々のアプリケーション能力をも含む基礎的クラウド・インフラストラクチャを管理または制御しない。
サービスとしてのプラットフォーム(PaaS、Platform as a Service):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成されるコンシューマが作成または入手したアプリケーションをクラウド・インフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎的クラウド・インフラストラクチャを管理または制御しないが、展開されたアプリケーションおよび場合によってはアプリケーション・ホスティング環境構成を制御できる。
サービスとしてのインフラストラクチャ(IaaS、Infrastructure as a Service):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースを提供することであり、コンシューマは、オペレーティング・システムおよびアプリケーションを含みうる任意のソフトウェアを展開して実行させることができる。コンシューマは、基礎的クラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御でき、場合によっては選抜されたネットワーキング・コンポーネント(例えばホスト・ファイアウォール)を限定的に制御できる。
展開モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、ある組織専用に運用される。クラウド・インフラストラクチャは、その組織または第三者によって管理されることができ、構内または構外に存在することができる。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織によって共有され、共有の懸念事項(例えばミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウド・インフラストラクチャは、これらの組織または第三者によって管理されることができ、構内または構外に存在することができる。
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大きな業界グループに利用可能にされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティであり続けるがデータおよびアプリケーションのポータビリティを可能にする標準化されたまたは専用の技術(例えばクラウド間の負荷平衡のためのクラウド・バースティング)によって一緒に結び付けられた二つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成物である。
クラウド・コンピューティング環境はサービス指向であり、状態非依存性、低結合度、モジュール性、およびセマンティックな相互運用性に重点を置く。クラウド・コンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
量子コンピューティングは、トランジスタに基づくバイナリ・デジタル技術ではなく、量子物理学を用いて情報をエンコードする。例えば量子回路は、量子物理学の重ね合わせの原理および量子物理学のもつれの原理にしたがって動作する量子ビット(例えばキュービット)を用いうる。量子物理学の重ね合わせの原理により、各キュービットは「1」の値および「0」の値の両方を同時に表現することができる。量子物理状態のもつれの原理により、重ね合わせにおけるキュービットが相互に相関しうる。例えば、第一値の状態(例えば「1」の値または「0」の値)が、第二値の状態に依存しうる。このように、量子プロセッサは、トランジスタに基づくバイナリ・デジタル技術ではなく、キュービットを用いて情報をエンコードしうる。しかし、量子プロセッサの設計は、従来のバイナリ・デジタル・デバイスと比べて一般に困難であり、もしくは時間がかかり、またはその両方である。したがって、量子プロセッサの設計プロセスもしくは量子プロセッサのシミュレーションまたはその両方が改善されうる。
従来の量子プロセッサ設計システムに関連するこれらの問題ならびに他の問題およびその両方に対処するために、本明細書に記載の実施形態は、量子プロセッサの可視化もしくは量子プロセッサとのインタラクションまたはその両方のためのシステム、コンピュータに実装された方法、およびコンピュータ・プログラム製品を含む。一態様では、ユーザが、異なる時間位相の量子プロセッサの一つ以上の量子アルゴリズムを、当該量子プロセッサのトポロジの少なくとも一部の可視化もしながらナビゲートすることを可能にするために、量子アルゴリズムの可視化が提供されうる。例えば、ユーザが、異なる時間位相の量子プロセッサの一つ以上の量子アルゴリズムを、当該量子プロセッサの異なるゲートも見ながらナビゲートすることを可能にするために、量子アルゴリズムの可視化が提供されうる。量子アルゴリズムの可視化は、例えば、クラウドベースの量子コンピューティング・プラットフォームに関連するグラフィカル・ユーザ・インタフェースを介して提供されうる。別の態様では、量子アルゴリズムの可視化は、量子プロセッサの従来の設計プロセスでは以前に得られなかった量子アルゴリズムもしくは量子プロセッサまたはその両方における見かけの視覚的対称性もしくはパターンまたはその両方も示しうる。加えてまたは代わりに、ユーザは、量子プロセッサの量子アルゴリズムの可視化もしくはアセンブリ・コードまたはその両方を同期してナビゲートしうる。一実施形態では、量子アルゴリズムの可視化は、量子アルゴリズムを作成もしくは編集するためまたはその両方のために操作されうる(例えば物理量子プロセッサごとの)トポロジカル表現でありうる。ある実施形態では、量子アルゴリズムの可視化は、量子プロセッサの異なる位相もしくは量子プロセッサに関連するアセンブリ・コードまたはその両方を見るためにスクロール(例えばスクロール・インタラクション)を介してナビゲートされうる。一態様では、量子アルゴリズムの可視化を介して量子プロセッサの特定のキュービットが選択されたことに応答して、量子プロセッサの選択されたキュービットおよび一つ以上の他のもつれたキュービットにフォーカスするかもしくはそれらを分離するかまたはその両方を行う二次可視化がユーザに提供されうる。ある実施形態では、量子アルゴリズムの可視化は、量子アルゴリズムを複数のビューで表示することもできるとともに、アセンブリ・コードおよび量子アルゴリズムの可視化のスクロールを一致させる同期されたスクロールを提供することができる。一例では、量子アルゴリズムの複数のビューでの表示が同時に提供されうる。別の例では、量子アルゴリズムの表示および量子プロセッサの可視化が同時に提供されうる。ある実施形態では、量子アルゴリズムの可視化の少なくとも一部が、デジタル・ビデオ処理を介して提供されうる。一実施形態では、量子プログラミング(例えば量子プログラミング・プロセス)に関連するグラフィカル・ユーザ・インタフェースが、量子プロセッサのキュービットの集合の物理トポロジを反映するように設けられたノードおよびエッジを有する平面スライス要素の集合を提供しうる。ノードはキュービットを表現することができ、エッジはキュービット間の接続を表現することができる。さらに平面スライス要素の集合は、量子プログラミング(例えば量子プログラミング・プロセス)に関連する時間ステップで行われる一つ以上の動作を示しうる。
このように、本明細書に開示される量子プロセッサの可視化もしくは量子プロセッサとのインタラクションまたはその両方は、従来の量子プロセッサ設計システムもしくは他の従来技術またはその両方に関連する前述の問題を克服するための様々な解決策を提供しうる。例えば、量子プロセッサを設計もしくはシミュレートするためまたはその両方の時間が短縮されうる。さらに、量子プロセッサを設計もしくはシミュレートするためまたはその両方に用いられる計算リソースの量が減少されうる。量子プロセッサの設計、量子プロセッサに関連する量子プログラミング、もしくは量子プロセッサのシミュレーションまたはそれらの組み合わせも最適化されうる。加えて、量子プロセッサ・システムの精度もしくは量子プロセッサ・システムの効率またはその両方が改善されうる。さらに、量子プロセッサの品質が改善されることができ、量子プロセッサの性能が改善されることができ、量子プロセッサの効率が改善されることができ、量子プロセッサのタイミング特性が改善されることができ、量子プロセッサの電力特性が改善されることができ、もしくは量子プロセッサの別の特性が改善されることができ、またはそれらの組み合わせでありうる。
図1は、本明細書に記載の一つ以上の実施形態による、量子プロセッサの可視化もしくは量子プロセッサとのインタラクションまたはその両方のための例示的な非限定的なシステム100のブロック図を示す。様々な実施形態において、システム100は、量子プロセッサ技術、量子プログラミング技術、量子プロセッサ・モデリング技術、量子プロセッサ・シミュレーション技術、量子コンピューティング設計技術、キュービット技術、量子回路技術、人工知能技術もしくは他の技術またはそれらの組み合わせなどであるがこれらに限定されない技術に関連する量子コンポーザ・システムでありうる。システム100は、ハードウェアもしくはソフトウェアまたはその両方を用いて、高度に技術的な性質であり、抽象的でなく、人が一連の精神的活動として行うことができない問題を解くことができる。さらに、ある実施形態では、行われるプロセスのいくつかは、量子プロセッサの設計もしくは量子プロセッサのシミュレーションまたはその両方に関係する既定のタスクを遂行するための一つ以上の特殊コンピュータ(例えば一つ以上の特殊処理ユニット、量子コンポーザ・コンポーネントを備えた特殊コンピュータなど)によって行われうる。システム100もしくはシステム100のコンポーネントまたはその両方は、上述の技術、コンピュータ・アーキテクチャなどの進歩を通じて生じる新しい問題を解くために用いられうる。システム100の一つ以上の実施形態は、量子プロセッサ・システム、量子プログラミング・システム、量子プロセッサ・モデリング・システム、量子プロセッサ・シミュレーション・システム、量子コンピューティング設計システム、キュービット・システム、量子回路システム、人工知能システムもしくは他のシステムまたはそれらの組み合わせに技術的改善を提供しうる。システム100の一つ以上の実施形態は、量子プロセッサの処理性能を改善すること、量子プロセッサの処理効率を改善すること、量子プロセッサの処理特性を改善すること、量子プロセッサのタイミング特性を改善すること、もしくは量子プロセッサの電力効率を改善すること、またはそれらの組み合わせによって、量子プロセッサ(例えば量子回路)に技術的改善を提供することもできる。
図1に示される実施形態では、システム100は、量子コンポーザ・コンポーネント102を含みうる。図1に示されるように、量子コンポーザ・コンポーネント102は、量子プログラミング・コンポーネント104および可視化コンポーネント106を含みうる。量子コンポーザ・コンポーネント102の態様は、機械(単数または複数)内に具現化される、例えば一つ以上の機械に関連する一つ以上のコンピュータ可読媒体(単数または複数)内に具現化される機械実行可能コンポーネント(単数または複数)を構成しうる。そのようなコンポーネント(単数または複数)は、一つ以上の機械、例えばコンピュータ(単数または複数)、コンピューティング・デバイス(単数または複数)、仮想機械(単数または複数)などによって実行されたときに、機械(単数または複数)に記載の動作を行わせうる。一態様では、量子コンポーザ・コンポーネント102は、コンピュータ実行可能コンポーネントおよび命令を記憶するメモリ108も含みうる。さらに、量子コンポーザ・コンポーネント102は、量子コンポーザ・コンポーネント102による命令(例えばコンピュータ実行可能コンポーネントおよび対応する命令)の実行を促進するプロセッサ110を含みうる。図示のように、量子プログラミング・コンポーネント104、可視化コンポーネント106、メモリ108もしくはプロセッサ110またはそれらの組み合わせは、一つ以上の実施形態において電気的もしくは通信可能にまたはその両方で互いに連結されうる。
量子コンポーザ・コンポーネント102(例えば量子コンポーザ・コンポーネント102の量子プログラミング・コンポーネント104)は、量子プロセッサ・データ112を受信しうる。量子プロセッサ・データ112は、例えば量子プロセッサの機械可読記述でありうる。量子プロセッサは、一連の量子ゲートに関連する一つ以上の量子計算のモデルでありうる。一例では、量子プロセッサ・データ112は、量子プロセッサを記述するテキスト形式言語(例えばQASMテキスト形式言語)を示すテキスト・データを含みうる。例えばテキスト・データは、例えば、一つ以上のキュービットに関連する量子プロセッサの一つ以上のキュービット・ゲートをテキストで記述しうる。一実施形態では、量子プロセッサ・データ112は、量子プロセッサに関連する一つ以上の位置にタグ付けする一つ以上のマーカ要素の情報を示すマーカ・データを加えて含みうる。例えば、マーカ・データは、一つ以上のキュービットに関連する量子プロセッサの一つ以上のキュービット・ゲートの位置にタグ付けする一つ以上のマーカ要素を含みうる。量子プロセッサは、量子物理学の原理に基づいて一連の演算を行う機械でありうる。例えば、量子プロセッサはキュービットを使用して情報をエンコードしうる。一態様では、量子プロセッサは、データに関連する命令スレッドの集合を実行しうる。
量子プログラミング・コンポーネント104は、量子プロセッサに関連する量子プログラミング・プロセスを管理しうる。量子プログラミング・プロセスは、量子プロセッサ上で実行されうる一連の命令(例えば一つ以上の量子プログラム)をアセンブルしうる。一態様では、量子プログラミング・コンポーネント104は、量子プロセッサのトポロジ・データを生成するための量子プログラミング・プロセスを管理しうる。トポロジ・データは、量子プロセッサに関連するキュービットの集合の物理トポロジを示しうる。一態様では、量子プログラミング・プロセスは、量子プロセッサ・データ112を管理しうる。例えば、量子プログラミング・プロセスは、量子プロセッサ・データ112に関連するアセンブリ・コードを管理しうる。アセンブリ・コードは、量子プロセッサを記述するテキスト形式言語(例えばQASMテキスト形式言語)を示すテキスト・データを含みうる。一例では、アセンブリ・コードは、量子プロセッサの一つ以上のキュービット・ゲートをテキストで記述しうる。ある実施形態では、量子プログラミング・プロセスは、量子プロセッサ・データ112の少なくとも一部を生成しうる。可視化コンポーネント106は、トポロジ・データの可視化データ114を生成しうる。可視化データ114は、例えば、量子プロセッサのキュービットの集合の物理トポロジに対応するように設けられた平面スライス要素の集合を含みうる。平面スライス要素の集合は、量子プログラミング・プロセスに関連する時間ステップで行われる一つ以上の動作を示しうる。加えてまたは代わりに、可視化データ114は、平面スライス要素の集合に関連するノードの集合もしくは平面スライス要素の集合に関連するエッジの集合またはその両方を含みうる。ノードの集合は、量子プロセッサのキュービットの集合を表現しうる。エッジの集合は、キュービットの集合からのキュービットの間の接続の集合を表現しうる。一態様では、トポロジ・データは、量子プロセッサのグラフィカル・データとして形式化されうる。グラフィカル・データは、量子プロセッサのグラフィカル表現を示しうる。一実施形態では、グラフィカル表現は、ハイパーグラフとして形式化されうる。例えば、グラフィカル・データは、量子プロセッサをハイパーグラフとしてグラフィカルに表現しうる。量子プロセッサのハイパーグラフは、ノードの集合およびエッジの集合を含みうる。ノードの集合は、ハイパーグラフの頂点の集合(例えば点の集合)でありうる。エッジの集合は、ノードの集合からの二つ以上のノードを接続しうる。一態様では、ハイパーグラフのノードは、量子プロセッサに関連するテンソルを表現しうる。例えば、量子プロセッサのゲートが、ハイパーグラフにおいてテンソルに関連するノードとして表現されうる。テンソルは、共通の体上の有限個のベクトル空間のテンソル積の要素でありうる。したがって、テンソルは量子プロセッサのゲートの多重線型写像でありうる。加えてまたは代わりに、可視化データ114は、量子プログラミング・プロセスに関連するアセンブリ・コードを含みうる。例えば、可視化データは、量子プロセッサのテキスト・データを含みうる。一実施形態では、可視化コンポーネント106は、ユーザ・インタフェースを介して可視化データ114を表示しうる。例えば、可視化コンポーネント106は、ディスプレイ・デバイスのグラフィカル・ユーザ・インタフェースを介して可視化データ114を表示しうる。ディスプレイ・デバイスは、例えばコンピューティング・デバイス、コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、モニタ・デバイス、スマート・デバイス、スマート・フォン、モバイル・デバイス、ハンドヘルド・デバイス、タブレット、ポータブル・コンピューティング・デバイス、またはディスプレイに関連する別のタイプのデバイスなどのユーザデバイスでありうる。
一実施形態では、可視化コンポーネント106は、ユーザ・インタフェースを介して、トポロジ・データに関連する第一可視化データを、量子プログラミング・プロセスのアセンブリ・コードに関連する第二可視化データと並列に表示しうる。例えば、可視化コンポーネント106は、ユーザ・インタフェースを介して、平面スライス要素の集合に関連する第一可視化データを、量子プログラミング・プロセスのアセンブリ・コードに関連する第二可視化データと並列に表示しうる。別の実施形態では、可視化コンポーネント106は、ユーザ・インタフェースを介して提供されるスクロール・アクションに基づいて可視化データ114を生成しうる。例えば、可視化コンポーネント106は、トポロジ・データに関連する第一可視化データおよび量子プログラミング・プロセスのアセンブリ・コードに関連する第二可視化データを一致させるようにスクロールを介して可視化を移動することによって可視化データ114を生成しうる。一態様では、可視化コンポーネント106は、異なる量子プロセッサのための異なるトポロジ・データもしくは異なるグラフィカル表現またはその両方を提供しうる。例えば、可視化コンポーネント106は、異なる量子プロセッサのための異なるトポロジもしくは異なるグラフィカル表現またはその両方を(例えばユーザ・インタフェースを介した表示のために)生成しうる。ある実施形態では、可視化コンポーネント106は、クラウドベースの量子コンピューティング・プラットフォームを介して可視化データ114を生成しうる。例えば、可視化コンポーネント106は、クラウドベースの量子コンピューティング・プラットフォーム上で実施されうる。さらに、可視化コンポーネント106は、クラウドベースの量子コンピューティング・プラットフォームと通信するディスプレイ・デバイスに可視化データ114を伝送しうる。ディスプレイ・デバイスは、ディスプレイ・デバイスのディスプレイに関連するユーザ・インタフェースを介して可視化データ114をレンダリングしうる。ある実施形態では、可視化コンポーネント106は、デジタル・ビデオ処理を介して可視化データ114を生成しうる。例えば、可視化データ114の少なくとも一部が、デジタル・ビデオ・スクリプトとして提供されうる。
ある実施形態では、可視化コンポーネント106は、人工知能の原理に関連する分類、相関関係、推論もしくは表現またはそれらの組み合わせに基づいて、可視化データ114を生成しうる。例えば、可視化コンポーネント106は、自動分類システムもしくは自動分類プロセスまたはその両方を用いて可視化データ114を生成しうる。一例では、可視化コンポーネント106は、確率的解析もしくは統計ベースの解析またはその両方を用いて(例えばユーティリティおよびコストを解析の要素に入れて)可視化データ114に関する学習もしくは推論の生成またはその両方を行いうる。一態様では、可視化コンポーネント106は、可視化データ114に関連する学習もしくは推論の生成またはその両方を容易にするために部分的に推論ベースのスキームを利用する、可視化コンポーネント106の態様をさらに強化しうる推論コンポーネント(図示せず)を含みうる。可視化コンポーネント106は、任意の適切な機械学習ベースの技術、統計ベースの技術もしくは確率論ベースの技術またはそれらの組み合わせを用いうる。例えば、可視化コンポーネント106は、エキスパート・システム、ファジィ論理、SVM、隠れマルコフ・モデル(HMM:Hidden Markov Models)、グリーディ検索アルゴリズム、ルールベースのシステム、ベイジアン・モデル(例えばベイジアン・ネットワーク)、ニューラル・ネットワーク、他の非線形訓練技術、データ融合、ユーティリティベースの分析システム、ベイジアン・モデルを用いたシステムなどを用いうる。別の態様では、可視化コンポーネント106は、可視化データ114の生成に関連する機械学習計算の集合を行いうる。例えば、可視化コンポーネント106は、可視化データ114を生成するために、クラスタリング機械学習計算の集合、ロジスティック回帰機械学習計算の集合、決定木機械学習計算の集合、ランダム・フォレスト機械学習計算の集合、回帰木機械学習計算の集合、最小二乗機械学習計算の集合、インスタンスベースの機械学習計算の集合、回帰機械学習計算の集合、サポート・ベクトル回帰機械学習計算の集合、k平均機械学習計算の集合、スペクトル・クラスタリング機械学習計算の集合、ルール学習機械学習計算の集合、ベイジアン機械学習計算の集合、ディープ・ボルツマン機械計算の集合、ディープ・ビリーフ・ネットワーク計算の集合、もしくは異なる機械学習計算の集合またはそれらの組み合わせを行いうる。
量子コンポーザ・コンポーネント102(例えば量子プログラミング・コンポーネント104もしくは可視化コンポーネント106またはその両方)は、人が行うことができない(例えば一人の人の頭脳の能力を超える)量子コンポーザ・プロセスもしくは可視化プロセスまたはその両方を行うことが認識されねばならない。例えば、ある期間で量子コンポーザ・コンポーネント102(例えば量子プログラミング・コンポーネント104もしくは可視化コンポーネント106またはその両方)によって処理されるデータの量、処理されるデータの速度、もしくは処理されるデータのデータ・タイプまたはそれらの組み合わせは、同じ期間に一人の人の頭脳で処理できる量、速度、データ・タイプと比べて大きく、速く、異なりうる。量子コンポーザ・コンポーネント102(例えば量子プログラミング・コンポーネント104もしくは可視化コンポーネント106またはその両方)はまた、上記の量子コンポーザ・プロセスもしくは可視化プロセスまたはその両方も行いながら、一つ以上の他の機能も行うために常時動作可能(例えば常時電源がオンである、常時実行されるなど)でありうる。さらに、量子コンポーザ・コンポーネント102(例えば量子プログラミング・コンポーネント104もしくは可視化コンポーネント106またはその両方)によって生成される可視化データ114は、ユーザによって手動で得ることが不可能な情報を含みうる。例えば、可視化データ114に含まれる情報のタイプもしくは可視化データ114に含まれる情報の多様性またはその両方は、ユーザによって手動で得られる情報よりも複雑でありうる。
加えて、システム100は、従来の量子プロセッサ設計技術と比較して、様々な利点を提供しうることが認識されねばならない。システム100は、従来の量子設計技術に関連する問題に対する様々な解決策も提供しうる。例えば、システム100を使用することにより、量子プロセッサを設計する時間が短縮されうる(例えば可視化コンポーネント106は、量子プロセッサに関連する設計プロセスのための処理量を減少させるために可視化データ114を生成しうるなど)。さらに、システム100を用いることにより、量子プロセッサを設計もしくはシミュレートするためまたはその両方に用いられる計算リソースの量が減少されうる。システム100を用いることによって、量子プロセッサの設計も最適化されうる。加えて、量子プロセッサ設計の精度もしくは量子プロセッサ設計の効率またはその両方が改善されうる。さらに、システム100を用いることにより、量子プロセッサの品質が改善されることができ、量子プロセッサの性能が改善されることができ、量子プロセッサの効率が改善されることができ、量子プロセッサのタイミング特性が改善されることができ、量子プロセッサの電力特性が改善されることができ、もしくは量子プロセッサの別の特性が改善されることができ、またはそれらの組み合わせでありうる。
図2は、本明細書に記載の一つ以上の実施形態による、例示的な非限定的なシステム200のブロック図を示す。本明細書に記載される他の実施形態で使用される同様の要素の繰り返しの説明は、簡潔のために省略される。
システム200は、量子コンポーザ・コンポーネント102を含む。図2に示される量子コンポーザ・コンポーネント102は、量子プログラミング・コンポーネント104、可視化コンポーネント106、インタラクション・コンポーネント202、メモリ108、もしくはプロセッサ110またはそれらの組み合わせを含みうる。インタラクション・コンポーネント202は、可視化データ114を表示するユーザ・インタフェースを介した可視化データ114とのインタラクションを促進しうる。一態様では、インタラクション・コンポーネント202は、ユーザ・インタフェースを介した可視化データ114と量子プロセッサ・データ112に関連する量子プログラミング・プロセスとの間のインタラクションを提供しうる。例えば、インタラクション・コンポーネント202は、ユーザ・インタフェースを介した可視化データ114と量子プロセッサ・データ112に関連する量子プログラミング・プロセスのアセンブリ・コードとの間のインタラクションを提供しうる。一実施形態では、インタラクション・コンポーネント202は、ユーザ・インタフェースを介した可視化データ114の修正に基づいて量子プログラミング・プロセスを修正しうる。例えば、インタラクション・コンポーネント202は、ユーザ・インタフェースを介した可視化データ114の修正に基づいて量子プログラミング・プロセスのアセンブリ・コードを修正しうる。別の実施形態では、インタラクション・コンポーネント202は、ユーザ・インタフェースを介した量子プログラミング・プロセスの修正に基づいて可視化データ114を修正しうる。例えば、インタラクション・コンポーネント202は、ユーザ・インタフェースを介した量子プログラミング・プロセスのアセンブリ・コードへの修正に基づいて可視化データ114を修正しうる。一態様では、インタラクション・コンポーネント202は、ユーザ・インタフェース上の可視化データ114を、量子プログラミング・プロセスのアセンブリ・コードと同期させうる。例えば、インタラクション・コンポーネント202は、ユーザ・インタフェース上に表示された可視化データ114の一部を、ユーザ・インタフェースを介した量子プログラミング・プロセスのアセンブリ・コードのスクロールに応答してスクロールしうる。別の例では、量子プログラミング・プロセスのアセンブリ・コードのスクロールが、ユーザ・インタフェースを介して提示される可視化データ114と一致しうる。別の態様では、インタラクション・コンポーネント202は、ユーザ・インタフェースに関連するスクロール・アクションに基づいて、可視化データ114もしくは量子プログラミング・プロセスに関連するアセンブリ・コードまたはその両方を修正しうる。さらに別の態様では、インタラクション・コンポーネント202は、量子プログラミング・プロセスのアセンブリ・コードの一つ以上の部分を作成もしくは編集するためまたはその両方のために可視化データ114を操作しうる。さらに別の態様では、インタラクション・コンポーネント202は、ユーザ・インタフェースを介して可視化データ114もしくは量子プログラミング・プロセスのアセンブリ・コードまたはその両方がナビゲートされることを可能にしうる。例えば、量子プロセッサの異なる位相を見るために、可視化データ114もしくは量子プログラミング・プロセスのアセンブリ・コードまたはその両方がスクロールされうる。
加えて、システム200は、従来の量子プロセッサ設計技術と比較して、様々な利点を提供しうることが認識されねばならない。システム200は、従来の量子設計技術に関連する問題に対する様々な解決策も提供しうる。例えば、システム200を用いることにより、量子プロセッサを設計する時間が短縮されうる。さらに、システム200を用いることにより、量子プロセッサを設計もしくはシミュレートするためまたはその両方に用いられる計算リソースの量が減少されうる。システム200を用いることによって、量子プロセッサの設計も最適化されうる。加えて、量子プロセッサ設計の精度もしくは量子プロセッサ設計の効率またはその両方が改善されうる。さらに、システム200を用いることにより、量子プロセッサの品質が改善されることができ、量子プロセッサの性能が改善されることができ、量子プロセッサの効率が改善されることができ、量子プロセッサのタイミング特性が改善されることができ、量子プロセッサの電力特性が改善されることができ、もしくは量子プロセッサの別の特性が改善されることができ、またはそれらの組み合わせでありうる。
図3は、本明細書に記載の一つ以上の実施形態による、例示的な非限定的なシステム300のブロック図を示す。本明細書に記載される他の実施形態で使用される同様の要素の繰り返しの説明は、簡潔のために省略される。
システム300は、量子コンポーザ・コンポーネント102および量子プロセッサ記述302を含む。図3に示される量子コンポーザ・コンポーネント102は、量子プログラミング・コンポーネント104、可視化コンポーネント106、インタラクション・コンポーネント202、メモリ108、もしくはプロセッサ110またはそれらの組み合わせを含みうる。量子プロセッサ記述302は、量子物理学の原理に基づいて一連の演算を行うプロセッサの記述でありうる。例えば、量子プロセッサ記述302は、量子プロセッサを記述するテキスト形式言語(例えばQASMテキスト形式言語)に関連しうる。一態様では、量子プロセッサ記述302に関連する量子プロセッサは、キュービットを使用して情報のエンコードもしくは処理またはその両方を行いうる。一実施形態では、量子プロセッサ記述302に関連する量子プロセッサは、キュービットに関連する命令スレッドの集合を実行するハードウェア量子プロセッサでありうる。別の実施形態では、量子プロセッサ記述302に関連する量子プロセッサは、キュービットを使用して情報のエンコードもしくは処理またはその両方を行いうるキュービット・デバイスもしくはキュービット・ユニット・セルまたはその両方でありうる。例えば、量子プロセッサ記述302に関連する量子プロセッサは、キュービットに関連する命令スレッドの集合を実行するキュービット・デバイスもしくはキュービット・ユニット・セルまたはその両方でありうる。一態様では、量子プロセッサ記述302は、一つ以上の量子要素を含みうる。一つ以上の量子要素は、例えば、量子プロセッサ記述302に関連する量子プロセッサのキュービット要素、量子プロセッサ記述302に関連する量子プロセッサのカプラ、量子プロセッサ記述302に関連する量子プロセッサの読み出し、量子プロセッサ記述302に関連する量子プロセッサのバス、もしくは量子プロセッサ記述302に関連する量子プロセッサの別の量子要素またはそれらの組み合わせを含みうる。ある実施形態では、量子プロセッサ記述302の少なくとも一部は、ユーザ・インタフェース(例えばディスプレイ・デバイスのユーザ・インタフェース)を介して決定もしくは提供され、またはその両方が行われうる。
システム300は、従来の量子プロセッサの設計技術と比較して、様々な利点を提供しうることも認識されねばならない。システム300は、従来の量子設計技術に関連する問題に対する様々な解決策も提供しうる。例えば、システム300を用いることにより、量子プロセッサを設計する時間が短縮されうる。さらに、システム300を用いることにより、量子プロセッサを設計もしくはシミュレートするためまたはその両方に用いられる計算リソースの量が減少されうる。システム300を用いることによって、量子プロセッサの設計も最適化されうる。加えて、量子プロセッサ設計の精度もしくは量子プロセッサ設計の効率またはその両方が改善されうる。さらに、システム300を用いることにより、量子プロセッサの品質が改善されることができ、量子プロセッサの性能が改善されることができ、量子プロセッサの効率が改善されることができ、量子プロセッサのタイミング特性が改善されることができ、量子プロセッサの電力特性が改善されることができ、もしくは量子プロセッサの別の特性が改善されることができ、またはそれらの組み合わせでありうる。
図4は、本明細書に記載の一つ以上の実施形態による、例示的な非限定的なシステム400のブロック図を示す。本明細書に記載される他の実施形態で使用される同様の要素の繰り返しの説明は、簡潔のために省略される。
システム400は、ディスプレイ・デバイス402およびサーバ404を含む。ディスプレイ・デバイス402は、ネットワーク406を介してサーバ404と通信しうる。さらに、ディスプレイ・デバイス402は、例えばコンピューティング・デバイス、コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、モニタ・デバイス、スマート・デバイス、スマート・フォン、モバイル・デバイス、ハンドヘルド・デバイス、タブレット、ポータブル・コンピューティング・デバイス、またはディスプレイに関連する別のタイプのデバイスなどのユーザデバイスでありうる。ネットワーク406は、通信ネットワーク、無線ネットワーク、有線ネットワーク、インターネット・プロトコル(IP:internet protocol)ネットワーク、ボイス・オーバーIPネットワーク、インターネット・テレフォニ・ネットワーク、移動体通信ネットワーク、もしくは別のタイプのネットワークまたはそれらの組み合わせでありうる。サーバ404は、量子コンポーザ・コンポーネント102を含みうる。量子コンポーザ・コンポーネント102は、例えば、量子プログラミング・コンポーネント104、可視化コンポーネント106、インタラクション・コンポーネント202、メモリ108、もしくはプロセッサ110またはそれらの組み合わせを含みうる。一実施形態では、サーバ404は、クラウドベースの量子コンピューティング・プラットフォームでありうる。一実施形態では、ディスプレイ・デバイス402は、ユーザ・インタフェース408を含みうる。例えば、ユーザ・インタフェース408は、グラフィカル・ユーザ・インタフェースでありうる。ユーザ・インタフェース408は、量子コンポーザ・コンポーネント102によって提供される可視化データ(例えば可視化データ114)を表示しうる。例えば、サーバ404上で実施される量子コンポーザ・コンポーネント102は、ネットワーク406を介して、可視化データ(例えば可視化データ114)をユーザ・インタフェース408上に表示するためにディスプレイ・デバイス402に伝送しうる。
システム400は、従来の量子プロセッサの設計技術と比較して、様々な利点を提供しうることも認識されねばならない。システム400は、従来の量子設計技術に関連する問題に対する様々な解決策も提供しうる。例えば、システム400を用いることにより、量子プロセッサを設計する時間が短縮されうる。さらに、システム400を用いることにより、量子プロセッサを設計もしくはシミュレートするためまたはその両方に用いられる計算リソースの量が減少されうる。システム400を用いることによって、量子プロセッサの設計も最適化されうる。加えて、量子プロセッサ設計の精度もしくは量子プロセッサ設計の効率またはその両方が改善されうる。さらに、システム400を用いることにより、量子プロセッサの品質が改善されることができ、量子プロセッサの性能が改善されることができ、量子プロセッサの効率が改善されることができ、量子プロセッサのタイミング特性が改善されることができ、量子プロセッサの電力特性が改善されることができ、もしくは量子プロセッサの別の特性が改善されることができ、またはそれらの組み合わせでありうる。
図5は、本明細書に記載の一つ以上の実施形態による、例示的な非限定的なユーザ・インタフェース500のブロック図を示す。本明細書に記載される他の実施形態で使用される同様の要素の繰り返しの説明は、簡潔のために省略される。
ユーザ・インタフェース500は、例えばディスプレイ・デバイス(例えばディスプレイ・デバイス402)のユーザ・インタフェース(例えばユーザ・インタフェース408)でありうる。例えば、ユーザ・インタフェース500は、コンピューティング・デバイス、コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、モニタ・デバイス、スマート・デバイス、スマート・フォン、モバイル・デバイス、ハンドヘルド・デバイス、タブレット、ポータブル・コンピューティング・デバイス、またはディスプレイに関連する別のタイプのデバイスのユーザ・インタフェースでありうる。一例では、ユーザ・インタフェース500は、グラフィカル・ユーザ・インタフェースでありうる。ユーザ・インタフェース500は、トポロジ・ビュー502、隣接ビュー504、およびアセンブリ・コード・ビュー506を含む。トポロジ・ビュー502もしくは隣接ビューまたはその両方は、量子コンポーザ・コンポーネント102によって生成される可視化データ(例えば可視化データ114)の少なくとも一部を提示しうる。トポロジ・ビュー502は、量子プロセッサの少なくとも一部のトポロジ・ビューを提示しうる。隣接ビュー504は、量子プロセッサの少なくとも一部の隣接ビューを提示しうる。トポロジ・ビュー502および隣接ビュー504は、量子プロセッサの対応する部分を提示しうる。一態様では、トポロジ・ビュー502は、量子プロセッサのトポロジ・データを提示しうる。例えば、トポロジ・ビュー502は、量子プロセッサに関連するキュービットの集合の物理トポロジを提示しうる。非限定的な例では、トポロジ・ビュー502は、キュービットQ17、キュービットQ24、キュービットQ25、キュービットQ26、およびキュービットQ32の斜視図の物理トポロジを提示しうる。別の例では、トポロジ・ビュー502は、キュービットQ17、キュービットQ24、キュービットQ25、キュービットQ26、およびキュービットQ32の平面図の物理トポロジを提示しうる。例えば、キュービットQ17は、量子プロセッサのグラフィカル表現における第一ノードとして表現されることができ、キュービットQ24は、量子プロセッサのグラフィカル表現における第二ノードとして表現されることができ、キュービットQ25は、量子プロセッサのグラフィカル表現における第三ノードとして表現されることができ、キュービットQ26は、量子プロセッサのグラフィカル表現における第四ノードとして表現されることができ、キュービットQ32は、量子プロセッサのグラフィカル表現における第五ノードとして表現されることができる。グラフィカル表現は、量子プロセッサの斜視図、量子プロセッサの平面図、量子プロセッサの等角図、または量子プロセッサの別の図として提示されうる。キュービットQ17、キュービットQ24、キュービットQ25、キュービットQ26、およびキュービットQ32は、エッジの集合にも関連しうる。例えば、キュービットQ25およびキュービットQ32は、エッジ508によって接続されうる。さらに、トポロジ・ビュー502は、量子プロセッサの特定のキュービット位相(例えば位相00)を表現しうる。一実施形態では、キュービットQ17、キュービットQ24、キュービットQ25、キュービットQ26、およびキュービットQ32は、量子プロセッサもしくはアセンブリ・コード・ビュー506に関連する量子プログラミング・プロセスまたはその両方に関連する時間ステップで行われる一つ以上の動作を示す平面スライス要素の集合でありうる。一例では、キュービットQ25は、アダマール・ゲート(例えば「H」ゲート)として形式化されうる。例えば、ユーザが、ユーザ・インタフェース500のトポロジ・ビュー502を介してキュービットQ25にアダマール・ゲートを適用しうる。ある実施形態では、ユーザが、トポロジ・ビュー502のキュービットQ25の上にカーソルを置いて、キュービットQ25のもつれに利用可能なキュービット・ゲートの集合の表示を開始しうる。ある実施形態では、トポロジ・ビュー502は、選択されたキュービットを表現するブロッホ球を提示しうる。ある実施形態では、ユーザが、トポロジ・ビュー502をスクロールダウンして、異なるキュービット位相(例えば位相02)のキュービットを選択しうる。
隣接ビュー504は、例えば、トポロジ・ビュー502に関連する量子プロセッサの全体のトポロジを提示しうる。例えば、隣接ビュー504はキュービットQ17、キュービットQ24、キュービットQ25、キュービットQ26、およびキュービットQ32の隣接ビューの物理トポロジを提示しうる。したがって、ユーザ・インタフェース500を用いるユーザは、例えばキュービットの集合間のインタラクティビティならびに時間の観点からキュービットの集合(例えばキュービットQ17、キュービットQ24、キュービットQ25、キュービットQ26、およびキュービットQ32)にフォーカスしうる。一態様では、隣接ビュー504は、量子プロセッサの異なるキュービット位相のキュービットを示しうる。例えば、隣接ビュー504は、キュービット位相P00のキュービットQ17、キュービットQ24、キュービットQ25、キュービットQ26、およびキュービットQ32を示しうる。一実施形態では、ユーザが、隣接ビュー504を介してトポロジ・ビュー502に示されるキュービットを選択しうる。例えば、ユーザが、隣接ビュー504のキュービットQ25を選択して、トポロジ・ビュー502に示されるキュービットQ25を修正しうる。ある実施形態では、ユーザが隣接ビュー504で異なるキュービット位相(例えばキュービット位相P02)を選択したことに応答して、トポロジ・ビュー502は、対応する異なるキュービット位相(例えばキュービット位相P02)のキュービット(例えばキュービットQ25)を選択し、スクロールダウンしうる。別の例では、ユーザが、隣接ビュー504を介して(例えば隣接ビュー504からキュービットをドラッグアウトすることによって)トポロジ・ビュー502に示されるキュービットを除去しうる。隣接ビュー504を介したトポロジ・ビュー502に示されるキュービットの除去に応答して、アセンブリ・コード・ビュー506もそれに応じて更新されうる。アセンブリ・コード・ビュー506は、トポロジ・ビュー502もしくは隣接ビュー504またはその両方に示される量子プロセッサに関連する量子プログラミング・プロセスのアセンブリ・コードを提示しうる。例えば、アセンブリ・コード・ビュー506は、トポロジ・ビュー502もしくは隣接ビュー504またはその両方に示されるキュービット(例えばキュービットQ17、キュービットQ24、キュービットQ25、キュービットQ26およびキュービットQ32)を記述するテキスト形式言語(例えばQASMテキスト形式言語)を示すテキスト・データ(例えばアセンブリ・コード)を含みうる。例えばアセンブリ・コード・ビュー506に示されるテキスト・データは、例えば、トポロジ・ビュー502もしくは隣接ビュー504またはその両方に示されるキュービットQ17、キュービットQ24、キュービットQ25、キュービットQ26、およびキュービットQ32をテキストで記述もしくは形式化し、またはその両方を行いうる。一実施形態では、トポロジ・ビュー502もしくは隣接ビュー504またはその両方は、アセンブリ・コード・ビュー506と並行してユーザ・インタフェース500上に提示されうる。別の実施形態では、アセンブリ・コード・ビュー506に示されるアセンブリ・コードもしくは量子プログラミング・プロセスまたはその両方は、トポロジ・ビュー502もしくは隣接ビュー504またはその両方の一つ以上の部分の修正に基づいて修正されうる。例えば、アセンブリ・コード・ビュー506に示されるアセンブリ・コードもしくは量子プログラミング・プロセスまたはその両方は、トポロジ・ビュー502もしくは隣接ビュー504またはその両方に示されるキュービット(例えばキュービットQ25など)の修正に基づいて修正されうる。加えてまたは代わりに、トポロジ・ビュー502もしくは隣接ビュー504またはその両方の一つ以上の部分が、アセンブリ・コード・ビュー506に示されるアセンブリ・コードもしくは量子プログラミング・プロセスまたはその両方の修正に基づいて修正されうる。例えば、トポロジ・ビュー502もしくは隣接ビュー504またはその両方に示されるキュービット(例えばキュービットQ25など)が、アセンブリ・コード・ビュー506に示される対応するアセンブリ・コードの修正に基づいて修正されうる。一実施形態では、トポロジ・ビュー502、隣接ビュー504、もしくはコード・ビュー506またはそれらの組み合わせのデータとのインタラクションにより、データ変更ごとにトポロジ・ビュー502、隣接ビュー504およびコード・ビュー506の更新が開始されうる。したがって、トポロジ・ビュー502、隣接ビュー504、もしくはコード・ビュー506またはそれらの組み合わせは、同時に更新されうる。
図6は、本明細書に記載の一つ以上の実施形態による、例示的な非限定的なユーザ・インタフェース500’のブロック図を示す。本明細書に記載される他の実施形態で使用される同様の要素の繰り返しの説明は、簡潔のために省略される。
ユーザ・インタフェース500’は、ユーザ・インタフェース500の代替的実施形態でありうる。ユーザ・インタフェース500’は、トポロジ・ビュー502、隣接ビュー504、アセンブリ・コード・ビュー506およびスクロール・ビュー602を含みうる。スクロール・ビュー602は、アセンブリ・コード・ビュー506をスクロールするために用いられうる。さらに、スクロール・ビュー602を介したスクロールに応答して、トポロジ・ビュー502もしくは隣接ビュー504またはその両方のビューが修正されうる。一態様では、スクロール・ビュー602は、アセンブリ・コード・ビュー506に示されるアセンブリ・コードの一部、もしくはトポロジ・ビュー502および隣接ビュー504に示される量子プロセッサの一部またはその両方を示すハイライトされたセクション604を含みうる。別の態様では、ユーザによってスクロール・ビュー602を介してスクロール・アクションが行われうる。スクロール・アクションに基づいて、トポロジ・ビュー502、隣接ビュー504、もしくはアセンブリ・コード・ビュー506またはそれらの組み合わせが更新されうる。スクロール・アクションは、アセンブリ・コード・ビューに関連するアセンブリ・テキストの移動、もしくはトポロジ・ビュー502もしくは隣接ビュー504もしくはその両方に関連する可視化の移動またはその組み合わせを提供するためにハイライトされたセクション604を移動するアクションでありうる。一実施形態では、スクロール・ビュー602に関連するスクロール・アクションは、トポロジ・ビュー502および隣接ビュー504に関連する量子プロセッサの異なる位相がナビゲートされることを可能にしうる。このようにして、トポロジ・ビュー502、隣接ビュー504、もしくはアセンブリ・コード・ビュー506またはそれらの組み合わせのスクロールが一致しうる。
図7は、本明細書に記載の一つ以上の実施形態による、量子プロセッサの可視化もしくは量子プロセッサとのインタラクションまたはその両方を促進するための例示的な非限定的なコンピュータに実装された方法700の流れ図を示す。702で、量子プロセッサに関連するキュービットの集合の物理トポロジを示す量子プロセッサのトポロジ・データを生成するための量子プログラミング・プロセスが、プロセッサに動作可能に連結されたシステムによって(例えば量子プログラミング・コンポーネント104によって)管理される。量子プログラミング・プロセスは、量子プロセッサ上で実行されうる一連の命令(例えば一つ以上の量子プログラム)をアセンブルしうる。一態様では、量子プログラミング・プロセスは、トポロジ・データを管理しうる。例えば、量子プログラミング・プロセスは、トポロジ・データに関連するアセンブリ・コードを管理しうる。アセンブリ・コードは、量子プロセッサを記述するテキスト形式言語(例えばQASMテキスト形式言語)を示すテキスト・データを含みうる。一例では、アセンブリ・コードは、量子プロセッサの一つ以上のキュービット・ゲートをテキストで記述しうる。
704で、システムによって(例えば可視化コンポーネント106によって)、キュービットの集合の物理トポロジに対応するように設けられた平面スライス要素の集合を含むトポロジ・データの可視化データが生成される。平面スライス要素の集合は、量子プログラミング・プロセスに関連する時間ステップで行われる一つ以上の動作を示す。一実施形態では、可視化データは、平面スライス要素の集合に関連するノードの集合、もしくは平面スライス要素の集合に関連するエッジの集合またはその両方を含みうる。ノードの集合は、量子プロセッサのキュービットの集合を表現しうる。エッジの集合は、キュービットの集合からのキュービットの間の接続の集合を表現しうる。一態様では、可視化データは、量子プロセッサのグラフィカル・データとしてフォーマットされうる。グラフィカル・データは、量子プロセッサのグラフィカル表現を示しうる。一実施形態では、グラフィカル表現は、ハイパーグラフとして形式化されうる。例えば、グラフィカル・データは、量子プロセッサをハイパーグラフとしてグラフィカルに表現しうる。量子プロセッサのハイパーグラフは、ノードの集合およびエッジの集合を含みうる。ノードの集合は、ハイパーグラフの頂点の集合(例えば点の集合)でありうる。エッジの集合は、ノードの集合からの二つ以上のノードを接続しうる。一態様では、ハイパーグラフのノードは、量子プロセッサに関連するテンソルを表現しうる。例えば、量子プロセッサのゲートが、ハイパーグラフにおいてテンソルに関連するノードとして表現されうる。テンソルは、共通の体上の有限個のベクトル空間のテンソル積の要素でありうる。したがって、テンソルは量子プロセッサのゲートの多重線型写像でありうる。
706で、システムによって(例えばインタラクション・コンポーネント202によって)、ユーザ・インタフェースを介した可視化データと量子プログラミング・プロセスとの間のインタラクションが提供される。例えば、可視化データは、量子プログラミング・プロセスのアセンブリ・コードと並行して表示されうる。さらに、ユーザは、ユーザ・インタフェースを介して可視化データもしくは量子プログラミング・プロセスのアセンブリ・コードまたはその両方とインタラクトしうる。ユーザ・インタフェースは、グラフィカル・ユーザ・インタフェースでありうる。さらに、ユーザ・インタフェースは、コンピューティング・デバイス、コンピュータ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、モニタ・デバイス、スマート・デバイス、スマート・フォン、モバイル・デバイス、ハンドヘルド・デバイス、タブレット、ポータブル・コンピューティング・デバイス、またはディスプレイに関連する別のタイプのデバイスなどのディスプレイ・デバイス上に実施されうる。一態様では、ユーザ・インタフェースを介して可視化データもしくは量子プログラミング・プロセスのアセンブリ・コードまたはその両方がナビゲートされうる。例えば、量子プロセッサの異なる位相を見るために、可視化データもしくは量子プログラミング・プロセスのアセンブリ・コードまたはその両方がスクロールされうる。一実施形態では、ユーザ・インタフェースを介して可視化データの少なくとも一部と量子プログラミング・プロセスに関連するアセンブリ・コードとが同期されうる。
708で、インタラクションが既定の基準を満たすか否かが判断される。例えば、インタラクションを介してスクロール・アクションが行われるか否かが判断されうる。行われない場合、コンピュータに実装された方法700は706に戻る。行われる場合、コンピュータに実装された方法700は710に進む。
710で、システムによって(例えばインタラクション・コンポーネント202によって)、可視化データもしくは量子プログラミング・プロセスまたはその両方が修正される。例えば、ユーザ・インタフェースを介した可視化データの修正に基づいて、量子プログラミング・プロセスのアセンブリ・コードが修正されうる。一例では、ユーザ・インタフェースを介した量子プログラミング・プロセスのアセンブリ・コードのスクロールに応答して、ユーザ・インタフェース上に表示された可視化データの一部のビューが修正されうる。別の例では、量子プログラミング・プロセスのアセンブリ・コードのスクロールが、ユーザ・インタフェースを介して提示される可視化データと一致しうる。別の態様では、量子プログラミング・プロセスのアセンブリ・コードの一つ以上の部分を作成もしくは編集するためまたはその両方のために可視化データが操作されうる。さらに別の態様では、可視化データの一部が、量子プログラミング・プロセスのアセンブリ・コードの対応する部分の修正に応答して修正されうる。ある実施形態では、ユーザ・インタフェースを介してインタラクションを提供するステップ、もしくは、可視化データもしくは量子プログラミング・プロセスもしくはその両方を修正するステップまたはその両方は、量子プロセッサに関連する設計プロセスのための処理量を減少させるステップを含みうる。
説明の簡単のため、コンピュータに実装された方法は、一連の行為として描写および説明される。本革新は、例示された行為もしくは行為の順序またはその両方によって限定されず、例えば、行為は様々な順序でもしくは同時にまたはその両方で、本明細書に提示および記載されない他の行為とともに生じうることが理解および認識されねばならない。さらに、本開示の主題によるコンピュータに実装された方法を実施するために、例示された全ての行為が必要とされないことがありうる。加えて、当業者は、コンピュータに実装された方法は、状態図またはイベントを介して一連の相互に関連する状態として代替的に表現されうることを理解および認識するであろう。加えて、以下および本明細書全体にわたって開示されるコンピュータに実装された方法は、そのようなコンピュータに実装された方法をコンピュータに移送および転送することを促進するために製造品に記憶されることができることがさらに認識されねばならない。本明細書で使用されるところの製造品という用語は、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータ・プログラムを包含することを意図する。
さらに、少なくとも可視化データを生成するステップ、可視化データを修正するステップ、ユーザ・インタフェースを介してインタラクションを提供するステップなどは、電気コンポーネントおよび機械コンポーネントならびに回路の組み合わせから確立されるため、人間は本明細書に開示される量子コンポーザ・コンポーネント102(例えば量子プログラミング・コンポーネント104、可視化コンポーネント106、もしくはインタラクション・コンポーネント202またはそれらの組み合わせ)によって行われる処理を再現または実行することはできない。例えば、人間は量子プロセッサの可視化データを生成することなどはできない。
開示された主題の図の様々な態様の文脈を提供するために、図8および以下の説明は、開示された主題の様々な態様が実施されうる適切な環境の概要を提供することを意図する。図8は、本明細書に記載の一つ以上の実施形態が促進されうる例示的な非限定的な動作環境のブロック図を示す。本明細書に記載の他の実施形態で使用される同様の要素の繰り返しの説明は、簡潔のために省略される。
図8を参照すると、本開示の様々な態様を実施するための適切な動作環境800は、コンピュータ812も含みうる。コンピュータ812は、処理ユニット814、システム・メモリ816、およびシステム・バス818も含みうる。システム・バス818は、システム・メモリ816を含むがこれに限定されないシステム・コンポーネントを処理ユニット814に連結する。処理ユニット814は、様々な利用可能なプロセッサのいずれかでありうる。デュアル・マイクロプロセッサおよび他のマルチプロセッサ・アーキテクチャも処理ユニット814として用いられうる。システム・バス818は、業界標準アーキテクチャ(ISA:Industrial Standard Architecture)、マイクロ・チャネル・アーキテクチャ(MCA:Micro‐Channel Architecture)、拡張ISA(EISA:Extended ISA)、インテリジェント・ドライブ・エレクトロニクス(IDE:Intelligent Drive Electronics)、VESAローカル・バス(VLB:VESA Local Bus)、周辺機器相互接続(PCI:Peripheral Component Interconnect)、カード・バス、ユニバーサル・シリアル・バス(USB:Universal Serial Bus)、アドバンスト・グラフィックス・ポート(AGP:Advanced Graphics Port)、Firewire(IEEE1394)、および小型コンピュータ・システム・インタフェース(SCSI:Small Computer Systems Interface)を含むがこれらに限定されない任意の種類の利用可能なバス・アーキテクチャを使用したメモリ・バスもしくはメモリ・コントローラ、周辺バスもしくは外部バス、もしくはローカル・バスまたはそれらの組み合わせを含むいくつかのタイプのバス構造のいずれかでありうる。
システム・メモリ816は、揮発性メモリ820および不揮発性メモリ822も含みうる。起動時などにコンピュータ812内の要素間で情報を転送するための基本ルーチンを含む基本入力/出力システム(BIOS:basic input/output system)は不揮発性メモリ822に記憶される。コンピュータ812は、取り外し可能/取り外し不能、揮発性/不揮発性コンピュータ記憶媒体も含みうる。図8は、例えばディスク・ストレージ824を示す。ディスク・ストレージ824は、磁気ディスク・ドライブ、フレキシブルディスク・ドライブ、テープ・ドライブ、Jazドライブ、Zipドライブ、LS‐100ドライブ、フラッシュ・メモリ・カード、またはメモリ・スティック(R)などのデバイスも含みうるがこれらに限定されない。ディスク・ストレージ824は、別個にまたは他の記憶媒体と組み合わせて記憶媒体も含みうる。ディスク・ストレージ824のシステム・バス818への接続を容易にするために、インタフェース826などの取り外し可能または取り外し不能インタフェースが通常使用される。図8は、ユーザと適切な動作環境800に記載された基本的なコンピュータ・リソースとの間の仲介として機能するソフトウェアも示す。そのようなソフトウェアは、例えばオペレーティング・システム828も含みうる。オペレーティング・システム828は、ディスク・ストレージ824に記憶されることができ、コンピュータ812のリソースを制御し割り当てるように機能する。
システム・アプリケーション830は、例えばシステム・メモリ816内またはディスク・ストレージ824上のいずれかに記憶されるプログラム・モジュール832およびプログラム・データ834を通じてオペレーティング・システム828によるリソースの管理を利用する。本開示は様々なオペレーティング・システムまたはオペレーティング・システムの組み合わせで実施されうることが認識されねばならない。ユーザは、入力デバイス836を通じてコンピュータ812にコマンドまたは情報を入力する。入力デバイス836は、マウス、トラックボール、スタイラス、タッチ・パッドなどのポインティング・デバイス、キーボード、マイクロフォン、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ、スキャナ、TVチューナ・カード、デジタル・カメラ、デジタル・ビデオ・カメラ、ウェブ・カメラなどを含むが、これらに限定されない。これらおよび他の入力デバイスは、インタフェース・ポート838を介してシステム・バス818を通じて処理ユニット814に接続する。インタフェース・ポート838は、例えばシリアル・ポート、パラレル・ポート、ゲーム・ポート、およびユニバーサル・シリアル・バス(USB)を含む。出力デバイス840は、入力デバイス836と同じタイプのポートのいくつかを使用する。したがって、例えばUSBポートを使用してコンピュータ812に入力を提供し、コンピュータ812から出力デバイス840に情報を出力しうる。出力アダプタ842は、他の出力デバイス840の中に、モニタ、スピーカ、およびプリンタのような特別なアダプタを必要とするいくつかの出力デバイス840があることを示すために提供される。出力アダプタ842は、限定ではなく例示として、出力デバイス840とシステム・バス818との間の接続手段を提供するビデオ・カードおよびサウンド・カードを含む。リモート・コンピュータ844などの他のデバイスもしくはデバイスのシステムまたはその両方は、入力および出力能力の両方を提供することに留意されたい。
コンピュータ812は、リモート・コンピュータ844などの一つ以上のリモート・コンピュータへの論理接続を使用するネットワーク環境で動作しうる。リモート・コンピュータ844は、コンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの機器、ピア・デバイスまたは他の一般的なネットワーク・ノードなどであり得、通常、コンピュータ812に関連して説明される要素の多くまたは全てを含むこともできる。簡潔のために、リモート・コンピュータ844とともにメモリ記憶デバイス846のみが示される。リモート・コンピュータ844は、ネットワーク・インタフェース848を通じてコンピュータ812に論理的に接続され、さらに、通信接続850を介して物理的に接続される。ネットワーク・インタフェース848は、ローカル・エリア・ネットワーク(LAN:local‐area networks)、ワイド・エリア・ネットワーク(WAN:wide‐area networks)、セルラ・ネットワークなどの有線もしくは無線またはその両方の通信ネットワークを包含する。LAN技術は、ファイバ分散データ・インタフェース(FDDI:Fiber Distributed Data Interface)、銅線分散データ・インタフェース(CDDI:Copper Distributed Data Interface)、イーサネット(R)、トークン・リングなどを含む。WAN技術は、ポイント・ツー・ポイント・リンク、サービス総合デジタル網(ISDN:Integrated Services Digital Networks)などの回線交換網およびそのバリエーション、パケット交換網、ならびにデジタル加入者線(DSL:Digital Subscriber Lines)を含むが、これらに限定されない。通信接続850は、ネットワーク・インタフェース848をシステム・バス818に接続するために用いられるハードウェア/ソフトウェアを指す。通信接続850は、図の明確のためにコンピュータ812の内部に示されるが、コンピュータ812の外部にあってもよい。ネットワーク・インタフェース848への接続のためのハードウェア/ソフトウェアは、例示の目的に限るが、通常の電話用モデム、ケーブル・モデムおよびDSLモデムを含むモデム、ISDNアダプタ、ならびにイーサネット(R)カードなどの内部および外部技術も含みうる。
次に図9を参照すると、例示的なクラウド・コンピューティング環境950が示される。図示のように、クラウド・コンピューティング環境950は、例えばパーソナル・デジタル・アシスタント(PDA:personal digital assistant)もしくは携帯電話954A、デスクトップ・コンピュータ954B、ラップトップ・コンピュータ954C、もしくは自動車コンピュータ・システム954Nまたはそれらの組み合わせなどのクラウド・コンシューマにより使用されるローカル・コンピューティング・デバイスが通信しうる一つ以上のクラウド・コンピューティング・ノード910を含む。ノード910は、互いに通信しうる。これらは、本明細書に上述したプライベート、コミュニティ、パブリックもしくはハイブリッド・クラウドまたはそれらの組み合わせなど、一つ以上のネットワークにおいて物理的または仮想的にグループ化されうる(図示せず)。これにより、クラウド・コンピューティング環境950は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを維持する必要がないサービスとしてインフラストラクチャ、プラットフォームもしくはソフトウェアまたはそれらの組み合わせを提供することが可能になる。図9に示されるコンピューティング・デバイスのタイプ954A~Nは、例示を意図したものにすぎず、コンピューティング・ノード910およびクラウド・コンピューティング環境950は、任意のタイプのネットワークもしくはネットワークアドレス可能な接続またはその両方により(例えばウェブ・ブラウザを使用して)任意のタイプのコンピュータ化デバイスと通信しうるものと理解される。
ここで図10を参照すると、クラウド・コンピューティング環境950(図9)によって提供される機能抽象層の集合が示される。図10に示されるコンポーネント、層、および機能は例示を意図したものにすぎず、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示されるように、以下の層および対応する機能が提供される。
ハードウェアおよびソフトウェア層1060は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メイン・フレーム1061、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベース・サーバ1062、サーバ1063、ブレード・サーバ1064、記憶デバイス1065、ならびにネットワークおよびネットワーキング・コンポーネント1066を含む。いくつかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア1067およびデータベース・ソフトウェア1068を含む。
仮想化層1070は、仮想サーバ1071、仮想ストレージ1072、仮想プライベート・ネットワークを含む仮想ネットワーク1073、仮想アプリケーションおよびオペレーティング・システム1074、ならびに仮想クライアント1075という仮想エンティティの例が提供されうる抽象層を提供する。
一例では、管理層1080は、以下に説明される機能を提供しうる。リソース・プロビジョニング1081は、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソースおよび他のリソースの動的調達を提供する。計測および価格設定1082は、クラウド・コンピューティング環境内でリソースが利用される際のコスト追跡、およびこれらのリソースの消費についての課金または請求を提供する。一例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含みうる。セキュリティは、クラウド・コンシューマおよびタスクの識別検証、ならびにデータおよびその他のリソースの保護を提供する。ユーザ・ポータル1083は、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス水準管理1084は、必要なサービス水準に達するようにクラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス水準合意(SLA:Service Level Agreement)の計画および履行1085は、SLAにしたがって将来の必要が見込まれるクラウド・コンピューティング・リソースの事前手配および調達を提供する。
作業負荷層1090は、クラウド・コンピューティング環境が利用されうる機能性の例を提供する。この層から提供されうる作業負荷および機能の非限定的な例は、マッピングおよびナビゲーション1091、ソフトウェア開発およびライフサイクル管理1092、仮想学級教育配信1093、データ分析処理1094、トランザクション処理1095、ならびに量子コンポーザ・プロセス・ソフトウェア1096を含む。
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、装置、もしくはコンピュータ・プログラム製品またはそれらの組み合わせでありうる。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(単数または複数)を含みうる。コンピュータ可読記憶媒体は、命令実行デバイスにより使用するための命令を保持および記憶しうる有形のデバイスでありうる。コンピュータ可読記憶媒体は、例えば電子記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁記憶デバイス、半導体記憶デバイス、または以上の任意の適切な組み合わせでありうるがこれらに限定されない。コンピュータ可読記憶媒体のさらなる具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM:random access memory)、リードオンリ・メモリ(ROM:read‐only memory)、消去可能プログラム可能リードオンリ・メモリ(EPROM:erasable programmable read‐only memoryすなわちフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク・リードオンリ・メモリ(CD‐ROM:compact disc read‐only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリスティック、フレキシブルディスク、パンチカードまたは命令が記録された溝内の隆起構造などの機械的にエンコードされたデバイス、および以上の任意の適切な組み合わせも含みうる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を通じて伝播する電磁波(例えば光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号などの一時的信号そのものと解釈されてはならない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピューティング/処理デバイスに、または、ネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組み合わせを介して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードされうる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバまたはその組み合わせを含みうる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受け取り、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体への記憶のためにコンピュータ可読プログラム命令を転送する。本発明の動作を実施するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction‐set‐architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、または、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは類似のプログラミング言語などの手続き型プログラミング言語を含む一つ以上のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードでありうる。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンド・アロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上で、および部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で、実行しうる。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されることができ、または(例えばインターネット・サービス・プロバイダを使用してインターネットを通じて)外部コンピュータに接続がなされうる。いくつかの実施形態において、例えばプログラム可能論理回路、フィールド・プログラム可能ゲート・アレイ(FPGA:field‐programmable gate array)、またはプログラム可能ロジック・アレイ(PLA:programmable logic array)を含む電子回路は、本発明の態様を行うためにコンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行しうる。
本発明の態様は、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書に説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されうることが理解されよう。これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令がフローチャートもしくはブロック図またはその両方の一つまたは複数のブロックに指定された機能/行為を実施するための手段を生み出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されて機械を生成しうる。これらのコンピュータ可読プログラム命令は、命令が記憶されたコンピュータ可読記憶媒体がフローチャートもしくはブロック図またはその両方の一つまたは複数のブロックに指定された機能/行為の態様を実施する命令を含む製造品を含むように、コンピュータ、プログラム可能データ処理装置もしくは他のデバイスまたはそれらの組み合わせに特定の様式で機能するように指示しうるコンピュータ可読記憶媒体に記憶されてもよい。コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイス上で実行する命令がフローチャートもしくはブロック図またはその両方の一つまたは複数のブロックに指定された機能/行為を実施するように、コンピュータ実施プロセスを生成するために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされてコンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作行為を行わせることもできる。
図面のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能性、および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能(単数または複数)を実施するための一つ以上の実行可能命令を含むモジュール、セグメント、または命令の部分を表しうる。いくつかの代替的実施態様では、ブロックに記された機能は、図面に記された順序とは異なる順序で生じうる。例えば、連続して示される二つのブロックは、実際には、関連する機能性に応じて実質的に同時に実行されてもよく、またはブロックは逆の順序で実行されうる場合もある。ブロック図もしくはフローチャートまたはその両方の各ブロック、およびブロック図もしくはフローチャートまたはその両方のブロックの組み合わせは、指定された機能または行為を行うかまたは専用ハードウェアおよびコンピュータ命令の組み合わせを遂行する専用ハードウェアベースのシステムによって実施されうることにも留意されたい。
本主題は、一つまたは複数のコンピュータ上で動作するコンピュータ・プログラム製品のコンピュータ実行可能命令の一般的な文脈で上述されているが、当業者は、本開示が他のプログラム・モジュールと組み合わせて実施されることもでき、または実施されることができることを認識するであろう。一般に、プログラム・モジュールは、特定のタスクを行う、もしくは特定の抽象データ型を実施する、またはその両方を行うルーチン、プログラム、コンポーネント、データ構造などを含む。さらに、当業者は、本発明のコンピュータに実装された方法が、シングル・プロセッサまたはマルチ・プロセッサ・コンピュータ・システム、ミニ・コンピューティング・デバイス、メインフレーム・コンピュータ、ならびにコンピュータ、携帯型コンピューティング・デバイス(例えばPDA、電話)、マイクロプロセッサベースのまたはプログラム可能なコンシューマまたは産業用電子機器などを含む他のコンピュータ・システム構成で実践されうることを認識するであろう。例示された態様は、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが行われる分散コンピューティング環境で実践されることもできる。しかし、本開示の全てではないとしてもいくつかの態様は、スタンド・アロンのコンピュータ上で実践されうる。分散コンピューティング環境では、プログラム・モジュールは、ローカルおよびリモート・メモリ記憶デバイスの両方に位置しうる。
本出願で使用されるところの「コンポーネント」、「システム」、「プラットフォーム」、「インタフェース」などの用語は、一つ以上の特定の機能を有するコンピュータに関係するエンティティまたは動作可能機械に関係するエンティティを指すことができ、もしくは含むことができ、またはその両方である。本明細書に開示されるエンティティは、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかでありうる。たとえば、コンポーネントは、プロセッサ上で動作するプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、もしくはコンピュータまたはそれらの組み合わせでありうるが、これらに限定されない。例として、サーバ上で動作するアプリケーションおよびそのサーバの両方が、コンポーネントでありうる。一つ以上のコンポーネントがプロセスもしくは実行スレッドまたはその両方内に存在することができ、コンポーネントは、一つのコンピュータ上にローカライズされ、もしくは二つ以上のコンピュータの間で分散され、またはその両方でありうる。別の例では、それぞれのコンポーネントは、様々なデータ構造が記憶された様々なコンピュータ可読媒体から実行しうる。コンポーネントは、一つ以上のデータ・パケットを有する信号などに従ってローカルもしくはリモート・プロセスまたはその両方を介して通信しうる(例えば信号を介してローカル・システム、分散システムで、もしくはインターネットなどの他のシステムとのネットワークを経由して、またはそれらの組み合わせで別のコンポーネントと相互作用するあるコンポーネントからのデータ)。別の例として、コンポーネントは、プロセッサによって実行されるソフトウェアまたはファームウェア・アプリケーションによって動作する、電気または電子回路によって動作する機械部品によって提供される特定の機能性を備えた装置でありうる。そのような場合には、プロセッサは装置の内部にあっても外部にあってもよく、ソフトウェアまたはファームウェア・アプリケーションの少なくとも一部を実行しうる。さらに別の例として、コンポーネントは、機械部品を用いずに電子コンポーネントを通じて特定の機能性を提供する装置であり得、ここで電子コンポーネントは、電子コンポーネントの機能性を少なくとも部分的に与えるソフトウェアまたはファームウェアを実行するプロセッサまたは他の手段を含みうる。一態様では、コンポーネントは、例えばクラウド・コンピューティング・システム内で仮想機械を介して電子コンポーネントをエミュレートしうる。
加えて、「または」という用語は、排他的な「または」ではなく包括的な「または」を意味することを意図する。すなわち、別段の指定がない限り、または文脈から明らかでない限り、「XはAまたはBを用いる」とは、自然な包括的順列のいずれかを意味することを意図する。すなわち、XがAを用いる、XがBを用いる、またはXがAおよびBの両方を用いる場合、「XがAまたはBを用いる」が、前述の例のいずれの下でも満たされる。さらに、本明細書および添付の図面で使用されるところの冠詞「一つの(a)」および「一つの(an)」は、別段の指定がない限り、または文脈から単数形を対象とすることが明らかでない限り、一般に「一つ以上」を意味するものと解釈されねばならない。本明細書で使用されるところの「例」という用語もしくは「例示的」という用語またはその両方は、例、実例、または例示として役立つことを意味するために利用される。誤解を避けるために、本明細書に開示される主題はそのような例によって限定されない。加えて、本明細書に「例」もしくは「例示的」またはその両方として記載された任意の態様または設計は、必ずしも他の態様または設計よりも好適または有利であると解釈されねばならないものではなく、当業者に知られる等価の例示的な構造および技術を排除することを意味するものでもない。
本明細書で用いられるところの「プロセッサ」という用語は、シングルコア・プロセッサ、ソフトウェア・マルチスレッド実行能力を備えたシングル・プロセッサ、マルチコア・プロセッサ、ソフトウェア・マルチスレッド実行能力を備えたマルチコア・プロセッサ、ハードウェア・マルチスレッド技術を備えたマルチコア・プロセッサ、並列プラットフォーム、および分散共有メモリを備えた並列プラットフォームを含むがこれらに限定されない、実質的に任意のコンピューティング処理ユニットまたはデバイスを指しうる。加えて、プロセッサは、本明細書に記載の機能を行うように設計される集積回路、特定用途向け集積回路(ASIC:application specific integrated circuit)、デジタル信号プロセッサ(DSP:digital signal processor)、フィールド・プログラム可能ゲート・アレイ(FPGA)、プログラム可能ロジック・コントローラ(PLC:programmable logic controller)、複合プログラム可能ロジック・デバイス(CPLD:complex programmable logic device)、ディスクリート・ゲートもしくはトランジスタ・ロジック、ディスクリート・ハードウェア・コンポーネント、またはこれらの任意の組み合わせを指しうる。さらに、プロセッサは、スペースの使用を最適化するためまたはユーザ機器の性能を向上させるために、分子および量子ドットベースのトランジスタ、スイッチおよびゲートなどであるがこれらに限定されないナノスケール・アーキテクチャを活用しうる。プロセッサは、コンピューティング処理ユニットの組み合わせとしても実施されうる。本開示において、「ストア」、「ストレージ」、「データ・ストア」、「データ・ストレージ」、「データベース」、およびコンポーネントの動作および機能性に関連する実質的に任意の他の情報記憶コンポーネントなどの用語は、「メモリ・コンポーネント」、「メモリ」に具現化されるエンティティ、またはメモリを含むコンポーネントを指すために利用される。本明細書に記載のメモリもしくはメモリ・コンポーネントまたはその両方は、揮発性メモリまたは不揮発性メモリのいずれでもよく、または揮発性および不揮発性メモリの両方を含みうることが認識されねばならない。限定ではなく例として、不揮発性メモリは、リードオンリ・メモリ(ROM)、プログラム可能ROM(PROM、programmable ROM)、電気的プログラム可能ROM(EPROM)、電気的消去可能ROM(EEPROM、electrically erasable ROM)、フラッシュ・メモリ、または不揮発性ランダム・アクセス・メモリ(RAM)(例えば強誘電体RAM(FeRAM:ferroelectric RAM))を含みうる。揮発性メモリは、例えば外部キャッシュ・メモリとして作用しうるRAMを含みうる。限定ではなく例示として、RAMは、シンクロナスRAM(SRAM:synchronous RAM)、ダイナミックRAM(DRAM:dynamic RAM)、シンクロナスDRAM(SDRAM:synchronous DRAM)、ダブル・データ・レートSDRAM(DDR SDRAM:double data rate SDRAM)、エンハンストSDRAM(ESDRAM:enhanced SDRAM)、同期リンクDRAM(SLDRAM:Synchlink DRAM)、ダイレクト・ラムバスRAM(DRRAM:direct Rambus RAM)、ダイレクト・ラムバス・ダイナミックRAM(DRDRAM:direct Rambus dynamic RAM)、およびラムバス・ダイナミックRAM(RDRAM:Rambus dynamic RAM)などの多数の形態で利用可能である。加えて、本明細書のシステムまたはコンピュータに実装された方法の開示されたメモリ・コンポーネントは、これらおよび任意の他の適切なタイプのメモリを含むことを意図し、含むことに限定されない。
以上に説明されているものは、システムおよびコンピュータに実装された方法の単なる例を含む。当然ながら、本開示を説明する目的でコンポーネントまたはコンピュータに実装された方法の考えられる全ての組み合わせを説明することは不可能であるが、通常の技術を有する当業者は、本開示の多数のさらなる組み合わせおよび並べ替えが可能であることを認識しうる。さらに、「含む」、「有する」、「所有する」などの用語が発明を実施するための形態、特許請求の範囲、付属書類および図面において使用される限りにおいて、そのような用語は、「備える」が特許請求の範囲において移行語として用いられるときに解釈されるところの「備える」という用語と同様に包括的であることを意図する。
様々な実施形態の説明が例示の目的で提示されているが、網羅的であることも、開示された実施形態に限定されることも意図していない。通常の技術を有する当業者には、説明された実施形態の範囲から逸脱することなく、多数の修正例およびバリエーションが明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の応用例または市場で見られる技術に対する技術的改善を最もよく説明するために、または通常の技術を有する他の当業者が本明細書に開示される実施形態を理解できるようにするために選択された。

Claims (20)

  1. コンピュータ実行可能コンポーネントを記憶するメモリと、
    前記メモリに記憶されたコンピュータ実行可能コンポーネントを実行するプロセッサであって、前記コンピュータ実行可能コンポーネントは、
    量子プロセッサに関連するキュービットの集合の物理トポロジを示す前記量子プロセッサのトポロジ・データを生成するための量子プログラミング・プロセスを管理する量子プログラミング・コンポーネントと、
    前記キュービットの集合の前記物理トポロジに対応するように設けられた平面スライス要素の集合を含む前記トポロジ・データの可視化データを生成する可視化コンポーネントであって、前記平面スライス要素の集合は、前記量子プログラミング・プロセスに関連する時間ステップで行われる一つ以上の動作を示す、可視化コンポーネントと
    を含む、プロセッサと
    を含む、システム。
  2. 前記可視化コンポーネントは、前記平面スライス要素の集合に関連するノードの集合およびエッジの集合を提供し、前記ノードの集合は、前記キュービットの集合を表現し、前記エッジの集合は、前記キュービットの集合からのキュービットの間の接続の集合を表現する、請求項1に記載のシステム。
  3. 前記可視化データは、第一可視化データであり、前記可視化コンポーネントは、前記量子プログラミング・プロセスに関連するアセンブリ・コードのための第二可視化データを生成する、請求項1に記載のシステム。
  4. 前記可視化コンポーネントは、ユーザ・インタフェースを介して、前記平面スライス要素の集合に関連する前記第一可視化データを、前記量子プログラミング・プロセスに関連する前記第二可視化データと並行して表示する、請求項3に記載のシステム。
  5. 前記コンピュータ実行可能コンポーネントは、
    ユーザ・インタフェースを介した前記可視化データと前記量子プログラミング・プロセスとの間のインタラクションを提供するインタラクション・コンポーネント
    をさらに含む、請求項1に記載のシステム。
  6. 前記インタラクション・コンポーネントは、前記可視化データの修正に基づいて前記量子プログラミング・プロセスを修正する、請求項5に記載のシステム。
  7. 前記インタラクション・コンポーネントは、前記ユーザ・インタフェースに関連するスクロール・アクションに基づいて、前記可視化データまたは前記量子プログラミング・プロセスに関連するアセンブリ・コードを修正する、請求項5に記載のシステム。
  8. 前記インタラクション・コンポーネントは、前記量子プログラミング・プロセスに関連するアセンブリ・コードの修正に基づいて前記可視化データを修正する、請求項5に記載のシステム。
  9. 前記可視化コンポーネントは、異なる量子プロセッサのための異なるトポロジを生成する、請求項1に記載のシステム。
  10. 前記可視化コンポーネントは、クラウドベースの量子コンピューティング・プラットフォームを介して前記可視化データを生成する、請求項1に記載のシステム。
  11. 前記可視化コンポーネントは、デジタル・ビデオ処理を介して前記可視化データをレンダリングする、請求項1に記載のシステム。
  12. 前記可視化コンポーネントは、前記量子プロセッサに関連する設計プロセスのための処理量を減少させるために前記可視化データを生成する、請求項1に記載のシステム。
  13. プロセッサに動作可能に連結されたシステムによって、量子プロセッサに関連するキュービットの集合の物理トポロジを示す前記量子プロセッサのトポロジ・データを生成するための量子プログラミング・プロセスを管理するステップと、
    前記システムによって、前記キュービットの集合の前記物理トポロジに対応するように設けられた平面スライス要素の集合を含む前記トポロジ・データの可視化データを生成するステップであり、前記平面スライス要素の集合は、前記量子プログラミング・プロセスに関連する時間ステップで行われる一つ以上の動作を示す、ステップと、
    前記システムによって、ユーザ・インタフェースを介した前記可視化データと前記量子プログラミング・プロセスとの間のインタラクションを提供するステップと
    を含む、コンピュータに実装された方法。
  14. 前記コンピュータに実装された方法は、
    前記システムによって、前記インタラクションが既定の基準を満たすとの判断に応答して、前記可視化データを修正するステップ
    をさらに含む、請求項13に記載のコンピュータに実装された方法。
  15. 前記コンピュータに実装された方法は、
    前記システムによって、前記インタラクションが既定の基準を満たすとの判断に応答して、前記量子プログラミング・プロセスを修正するステップ
    をさらに含む、請求項13に記載のコンピュータに実装された方法。
  16. 前記ユーザ・インタフェースを介して前記インタラクションを提供するステップは、前記可視化データの少なくとも一部と前記量子プログラミング・プロセスに関連するアセンブリ・コードとを同期させるステップを含む、請求項13に記載のコンピュータに実装された方法。
  17. 前記ユーザ・インタフェースを介して前記インタラクションを提供するステップは、前記量子プロセッサに関連する設計プロセスのための処理量を減少させるステップを含む、請求項13に記載のコンピュータに実装された方法。
  18. 量子プロセッサとのインタラクションを促進するためのコンピュータ・プログラム製品であって、コンピュータ・プログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含み、前記プログラム命令は、プロセッサに
    前記プロセッサによって、前記量子プロセッサに関連するキュービットの集合の物理トポロジを示す前記量子プロセッサのトポロジ・データを生成するための量子プログラミング・プロセスを管理させ、
    前記プロセッサによって、前記キュービットの集合の前記物理トポロジに対応するように設けられた平面スライス要素の集合を含む前記トポロジ・データの可視化データを生成させ、ここで前記平面スライス要素の集合は、前記量子プログラミング・プロセスに関連する時間ステップで行われる一つ以上の動作を示し、
    前記プロセッサによって、ユーザ・インタフェースを介した前記可視化データと前記量子プログラミング・プロセスに関連するアセンブリ・コードとの間のインタラクションを提供させる
    ために前記プロセッサによって実行可能である、
    コンピュータ・プログラム製品。
  19. 前記プログラム命令は、前記プロセッサに
    前記プロセッサによって、前記インタラクションが既定の基準を満たすとの判断に応答して、前記可視化データを修正させる
    ために前記プロセッサによってさらに実行可能である、請求項18に記載のコンピュータ・プログラム製品。
  20. 前記プログラム命令は、前記プロセッサに
    前記プロセッサによって、前記インタラクションが既定の基準を満たすとの判断に応答して、前記量子プログラミング・プロセスに関連する前記アセンブリ・コードを修正させる
    ために前記プロセッサによってさらに実行可能である、請求項17に記載のコンピュータ・プログラム製品。
JP2021512410A 2018-10-09 2019-09-18 量子回路の設計 Active JP7216807B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/155,489 2018-10-09
US16/155,489 US10592626B1 (en) 2018-10-09 2018-10-09 Visualizing or interacting with a quantum processor
PCT/EP2019/075056 WO2020074230A1 (en) 2018-10-09 2019-09-18 Quantum circuit design

Publications (2)

Publication Number Publication Date
JP2022511293A true JP2022511293A (ja) 2022-01-31
JP7216807B2 JP7216807B2 (ja) 2023-02-01

Family

ID=67998479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021512410A Active JP7216807B2 (ja) 2018-10-09 2019-09-18 量子回路の設計

Country Status (5)

Country Link
US (2) US10592626B1 (ja)
EP (1) EP3864583A1 (ja)
JP (1) JP7216807B2 (ja)
CN (1) CN112639794A (ja)
WO (1) WO2020074230A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220156623A1 (en) * 2020-11-16 2022-05-19 Joseph Robert Escamilla System and Method of Exchanging Information Through a Wireless Brain-Computer Interface

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592626B1 (en) * 2018-10-09 2020-03-17 International Business Machines Corporation Visualizing or interacting with a quantum processor
US10963125B2 (en) * 2019-03-18 2021-03-30 Microsoft Technology Licensing, Llc Visualization tool for interacting with a quantum computing program
US10959101B2 (en) * 2019-05-01 2021-03-23 Accenture Global Solutions Limited Cell resource allocation
US11100122B2 (en) * 2019-10-01 2021-08-24 Aetna Inc. Hierarchical data searching using tensor searching, fuzzy searching, and Bayesian networks
CN111709530A (zh) * 2020-04-23 2020-09-25 深圳华中科技大学研究院 一种量子机器学习的可视化展示方法
CN111930294B (zh) * 2020-07-22 2023-06-16 山东浪潮科学研究院有限公司 量子云平台系统量子拖拽方法
US11580286B2 (en) 2021-01-13 2023-02-14 International Business Machines Corporation Electronic generation of three-dimensional quantum circuit diagrams
CN113222164B (zh) * 2021-05-10 2023-06-20 中国科学技术大学 量子计算程序的生成方法及其表达形式
US20230186141A1 (en) * 2021-12-11 2023-06-15 International Business Machines Corporation Visual presentation of quantum-classical interface in a user experience

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008067664A1 (en) * 2006-12-05 2008-06-12 D-Wave Systems Inc. Systems, methods and apparatus for local programming of quantum processor elements
US20170344898A1 (en) * 2016-05-26 2017-11-30 1Qb Information Technologies Inc. Methods and systems for setting a system of super conducting qubits having a hamiltonian representative of a polynomial on a bounded integer domain
WO2017214331A1 (en) * 2016-06-07 2017-12-14 D-Wave Systems Inc. Systems and methods for quantum processor topology
US20180246848A1 (en) * 2015-02-10 2018-08-30 D-Wave Systems Inc. Systems, devices, articles, and methods for quantum processor architecture

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376547B2 (en) * 2004-02-12 2008-05-20 Microsoft Corporation Systems and methods that facilitate quantum computer simulation
WO2008083498A1 (en) 2007-01-12 2008-07-17 D-Wave Systems, Inc. Systems, devices and methods for interconnected processor topology
US9710758B2 (en) 2014-04-23 2017-07-18 D-Wave Systems Inc. Quantum processor with instance programmable qubit connectivity
GB201513774D0 (en) 2015-08-04 2015-09-16 Isis Innovation Quantum information processing system
WO2017078731A1 (en) * 2015-11-06 2017-05-11 Rigetti & Co., Inc. Analyzing quantum information processing circuits
US10789540B2 (en) 2016-04-18 2020-09-29 D-Wave Systems Inc. Systems and methods for embedding problems into an analog processor
US20190102496A1 (en) * 2017-09-29 2019-04-04 International Business Machines Corporation Interactive user interface for composing quantum circuits
US10592626B1 (en) * 2018-10-09 2020-03-17 International Business Machines Corporation Visualizing or interacting with a quantum processor
US11144334B2 (en) * 2018-12-20 2021-10-12 Red Hat, Inc. Quantum computer task manager

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008067664A1 (en) * 2006-12-05 2008-06-12 D-Wave Systems Inc. Systems, methods and apparatus for local programming of quantum processor elements
US20180246848A1 (en) * 2015-02-10 2018-08-30 D-Wave Systems Inc. Systems, devices, articles, and methods for quantum processor architecture
US20170344898A1 (en) * 2016-05-26 2017-11-30 1Qb Information Technologies Inc. Methods and systems for setting a system of super conducting qubits having a hamiltonian representative of a polynomial on a bounded integer domain
WO2017214331A1 (en) * 2016-06-07 2017-12-14 D-Wave Systems Inc. Systems and methods for quantum processor topology

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220156623A1 (en) * 2020-11-16 2022-05-19 Joseph Robert Escamilla System and Method of Exchanging Information Through a Wireless Brain-Computer Interface
US11954561B2 (en) * 2020-11-16 2024-04-09 Joseph Robert Escamilla System and method of exchanging information through a wireless brain-computer interface

Also Published As

Publication number Publication date
US10592626B1 (en) 2020-03-17
JP7216807B2 (ja) 2023-02-01
CN112639794A (zh) 2021-04-09
US20200110851A1 (en) 2020-04-09
US20200167515A1 (en) 2020-05-28
WO2020074230A1 (en) 2020-04-16
EP3864583A1 (en) 2021-08-18
US11106845B2 (en) 2021-08-31

Similar Documents

Publication Publication Date Title
JP2022511293A (ja) 量子回路の設計
US10572501B2 (en) Steering graph mining algorithms applied to complex networks
JP7308003B2 (ja) 非集中的な分散型深層学習
US10515119B2 (en) Sequential recommender system for virtualized network services
US20200104739A1 (en) Development and analysis of quantum computing programs
US20220004683A1 (en) System and method for creating domain specific languages for digital environment simulations
CN104937544B (zh) 用于计算任务结果的方法、计算机可读介质和计算机系统
Jackson et al. Architecting Cloud Computing Solutions: Build cloud strategies that align technology and economics while effectively managing risk
JP7398474B2 (ja) ディープ・フォレスト・モデルの開発および訓練
US11455337B2 (en) Preventing biased queries by using a dictionary of cause and effect terms
JP2021507356A (ja) ハイブリッド・クラウドの構成のためのオーケストレーション・エンジン・ブループリント・アスペクトのためのシステム、コンピュータ実行可能な方法、コンピュータ・プログラムおよび記録媒体
US11144879B2 (en) Exploration based cognitive career guidance system
JP2022065636A (ja) コンピュータ実装方法、コンピュータプログラム及びコンピュータシステム(デジタルツイン対応資産のパフォーマンス及びアップグレード管理)
JP2022539090A (ja) ニューラル・ネットワーク最適化における特徴エンジニアリング
US10430436B2 (en) Interactive visualization
JP7267281B2 (ja) ハイブリッド・クラウド構成のためのオーケストレーション・エンジン・ブループリント・アスペクトのためのシステム、コンピュータ実行可能な方法およびコンピュータ・プログラム
US20230306118A1 (en) Federated Generative Models for Website Assessment
US11481211B1 (en) Dynamically creating source code comments
US11360763B2 (en) Learning-based automation machine learning code annotation in computational notebooks
US11675828B2 (en) Visual representation coherence preservation
JP2023550445A (ja) データアナリティクスにおけるデータアクセスポリシの自動調整
CN115516435A (zh) 基于混合存储器的推理计算平台中数据结构的优化布置
JP2023543704A (ja) 機械学習を用いたシフトレフトトポロジ構築および情報拡張
US11295355B1 (en) User feedback visualization
US11636417B2 (en) Cognitive analysis for enterprise decision meta model

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210702

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220222

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220512

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230120

R150 Certificate of patent or registration of utility model

Ref document number: 7216807

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150