(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-04
(54)【発明の名称】相互接続されたマルチコア量子クラスタを操作するためのシステム及び方法
(51)【国際特許分類】
G06N 10/20 20220101AFI20240828BHJP
G06F 9/38 20180101ALI20240828BHJP
【FI】
G06N10/20
G06F9/38 310Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024513958
(86)(22)【出願日】2022-08-30
(85)【翻訳文提出日】2024-04-26
(86)【国際出願番号】 IB2022058111
(87)【国際公開番号】W WO2023031785
(87)【国際公開日】2023-03-09
(81)【指定国・地域】
(71)【出願人】
【識別番号】524076453
【氏名又は名称】イオンキュー クアンタム カナダ インコーポレイテッド
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100205659
【氏名又は名称】齋藤 拓也
(74)【代理人】
【識別番号】100126000
【氏名又は名称】岩池 満
(74)【代理人】
【識別番号】100185269
【氏名又は名称】小菅 一弘
(72)【発明者】
【氏名】タム エドウィン
(72)【発明者】
【氏名】カイト イリア
(72)【発明者】
【氏名】ブロダッチ アハロン
【テーマコード(参考)】
5B013
【Fターム(参考)】
5B013AA12
(57)【要約】
もつれベースの相互接続を有するマルチコア量子コンピュータにおいてコード実行を高速化する方法は、(a)スライディング先読み距離で連続的に先読みし、必要なリンクに遭遇すると、その生成のための要求をキューに入れるステップと、(b)利用不可能なリンクのために命令を実行できない場合、この命令をスキップし、利用不可能なリンクが利用可能になったことを検出すると、その命令を実行に向けて再スケジューリングするステップと、(c)ステップ(b)が、さらなる実行の進行を可能にするには不十分である場合、現在実行に向けてスケジューリングされている命令の少なくとも一部の各々について、その利用不可能なリンクをそれぞれの間接リンクによって置換することを試みることによってさらなる進行を達成することを試みるステップであって、間接リンクが利用可能なリンクを直列に接続することによって作成される、ステップとを含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
マルチコア量子コンピュータ上で実行される量子コード(以下では「コード」)の実行時間を最小化するためのプロセッサ実装方法であって、コアが、もつれベースの使い捨てリンクによってリンクされ、その生成時間の持続時間がランダムに変化し、前記コードが、コア-ローカル命令及び複数のコアを含む命令を含み、したがってコア間リンクを必要とし、前記方法が、以下のステップ:
(1a)現在の実行時間から所定のスライディング先読み時間距離で、前記コードを連続的に先読みし、リンクの必要性に遭遇すると、その生成の要求をキューに入れるステップと、
(1b)現在実行に向けてスケジューリングされている命令が、利用不可能な1つ又は複数のリンクのために実行できない場合、この実行不可能な命令をスキップし、前記利用不可能な1つ又は複数のリンクが利用可能になったことを検出すると、前記スキップされた命令を実行に向けて再スケジューリングするステップと、
(1c)上記ステップ(1b)がさらなるコード実行の進行を可能にするには不十分である場合、現在実行に向けてスケジューリングされている命令の少なくとも一部の各々について、その利用不可能な1つ又は複数のリンクをそれぞれの間接リンクによって置換することを試みることによって、さらなるコード実行の進行を達成することを試みるステップであって、間接リンクが、2つ以上の利用可能なリンクを直列に接続することによって作成され、このようにして実行可能になった各命令について、その置換された各リンクについて保留中の生成要求をキューから外し、その1つ又は複数の利用不可能なリンクの置換に関与する各リンクについて生成要求をキューに入れる、ステップと
を含む、プロセッサ実装方法。
【請求項2】
現在実行に向けてスケジューリングされている命令の前記利用不可能な1つ又は複数のリンクを置換するために、2つ以上のリンクの組み合わせ(以下では「組み合わせ」)が利用可能である場合、以下のステップ:
(2a)後の時間に命令を実行するために必要となるリンクに、より低い重みを与える所定の重み付け関数を利用しながら、組み合わせに含まれる全てのリンクの加重和として計算される必要係数を各組み合わせに割り当てるステップ、及び
(2b)最小必要係数を有する組み合わせを選択するステップ
によってその好ましい組み合わせを選択する、請求項1に記載の方法。
【請求項3】
同じ最小必要係数を有する複数の組み合わせの場合、より少ないリンクを有する組み合わせの1つを選択する、請求項2に記載の方法。
【請求項4】
前記所定の重み付け関数が、現在の実行時間からその先読み時間距離までの時間間隔をカバーし、それによって、前記時間間隔の終了時のその値が、前記現在の実行時間でのその値の0~25%の範囲内になるようにする、請求項2に記載の方法。
【請求項5】
前記所定の重み付け関数が、指数関数、線形関数及びレイズドコサインからなる関数の群から選択される、請求項2に記載の方法。
【請求項6】
以下の手順ステップ:
(6a)前記複数の現在実行に向けてスケジューリングされている命令の各々に関連する最小必要係数を計算するステップ、
(6b)最も小さい最小必要係数を有する命令を選択するステップ、及び
(6c)残りの現在実行に向けてスケジューリングされている命令で手順を再開するステップ
によって複数の現在実行に向けてスケジューリングされている命令の利用不可能なリンクを置換することを試みる、請求項2に記載の方法。
【請求項7】
複数の現在実行に向けてスケジューリングされている命令の前記利用不可能なリンクを、それらの当初スケジューリングされた実行時間に応じた順序で置換することを試みる、請求項1に記載の方法。
【請求項8】
コード実行の進行の際に、最小数の実行可能な命令を有することを条件とする、請求項1に記載の方法。
【請求項9】
開始ステップ1aの後に、前記先読み時間距離よりも長いか、又はそれに等しい所定の遅延でコード実行を開始して実行される、請求項1に記載の方法。
【請求項10】
前記リンクの少なくとも一部が、アインシュタイン=ポドルスキー=ローゼン(EPR)ペアに基づく、請求項1に記載の方法。
【請求項11】
2つ以上の利用可能なリンクを直列に接続することが、その融合に基づく、請求項1に記載の方法。
【請求項12】
前記先読み時間距離が、[1/λ,10/λ]の範囲で予め決定され、λは、生成要求キューが空でない場合のリンク生成の平均速度である、請求項1に記載の方法。
【請求項13】
請求項1に記載の方法を実装する、処理デバイス。
【請求項14】
請求項1に記載の方法に従って制御される、マルチコア量子コンピュータ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、量子コンピュータに関し、より詳細には、マルチコア量子システム上で量子コンピューティングを効率的に実行するための方法に関する。
【背景技術】
【0002】
モジュール型量子コンピューティングアーキテクチャは、量子コンピュータをスケーリングするための方法として、学術文献及び特許文献において提案されている。科学文献の概要については、例えば、非特許文献1を参照されたい。光相互接続によって接続されたイオントラップ量子コンピュータのネットワークに関する記述は、例えば、非特許文献2によって提供されている。特許文献1は、そのアーキテクチャに関するさらなる詳細を開示している。これらのモジュール型量子コンピュータは、もつれ(エンタングルメント)を使用して量子情報を交換する必要がある量子処理ユニット(QPU)から構成されている。QPU間のもつれは、量子相互接続を使用して生成され、使用されるとすぐに破壊される。例えば、特許文献2を参照されたい。したがって、もつれは生成されるとすぐに使用することができ、また将来の使用のためにメモリに保存することもできる。このため、もつれ生成のスケジューリング及びもつれの割り当ての管理が必要となる。
【0003】
一般に、もつれリソースの生成スケジューリング及び割り当ては、計算の前に行うことができる。しかしながら、もつれの生成は非決定性プロセスである。もつれを生成する時間を前もって決定することはできない。その結果、前もってもつれの生成のスケジューリング及び割り当てをすると、プロセッサがアイドリング状態になり、割り当てられたもつれリソースが利用可能になるのを待機する時間が発生する可能性がある。その結果、プログラムの実行時間が大幅に長くなる可能性がある。
【0004】
したがって、大規模量子コンピューティングシステムにおけるボトルネックを軽減し、それによって全体的な実行時間を短縮するために、もつれリソースを効率的に管理するための方法を当該技術分野に提供することが望まれている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許第9858531号明細書
【特許文献2】米国特許出願第20210105135号明細書
【非特許文献】
【0006】
【非特許文献1】Awschalom,David,et al.”Development of quantum interconnects(quics)for next-generation information technologies”PRX Quantum 2.1(2021):017002
【非特許文献2】Monroe,C.,et al.”Large-scale modular quantum-computer architecture with atomic memory and photonic interconnects” Physical Review A 89.2(2014):022317
【発明の概要】
【0007】
本発明の一実施形態によれば、マルチコア量子コンピュータ上で実行される量子コード(本明細書以下では「コード」)の実行時間を最小化するためのプロセッサ実装方法が開示される。コアは、もつれベースの使い捨てリンクによってリンクされ、その生成時間の持続時間はランダムに変化する。コードは、コアローカル命令及び複数のコアを含む命令を含み、したがってもつれベースのコア間リンクが必要となる。開示される方法は以下の3つのステップを含む:
(a)現在の実行時間から所定のスライディング先読み時間距離で、コードを連続的に先読みし、リンクの必要性に遭遇すると、その生成の要求をキューに入れるステップ、
(b)現在実行に向けてスケジューリングされている命令が、利用不可能な1つ又は複数のリンクのために実行できない場合(これは典型的にはそれらの生成のランダムな持続時間による)、この実行不可能な命令をスキップし、利用不可能な1つ又は複数のリンクが利用可能になったことを検出すると、スキップされた命令を実行に向けて再スケジューリングするステップ、及び
(c)上記ステップ(b)がさらなるコード実行の進行を可能にするには不十分である場合、現在実行に向けてスケジューリングされている命令の少なくとも一部の各々について、その利用不可能な1つ又は複数のリンクをそれぞれの間接リンクによって置換することを試みることによって、さらなるコード実行の進行を達成することを試みるステップであって、間接リンクが、2つ以上の利用可能なリンクを直列に接続することによって作成される、ステップ。このようにして実行可能になった各命令について、その置換された各リンクについて保留中の生成要求をキューから外し、その1つ又は複数の利用不可能なリンクの置換に関与する各リンクについて生成要求をキューに入れる。保留中のリンク生成要求をキューから外すインセンティブは、量子コンピュータのリンク生成サブシステムにおける冗長な作業負荷及び過剰密度を減らすことである。置換するリンクの生成要求をキューから外すインセンティブは、将来の実行に向けてスケジューリングされた命令に必要となるリンクが利用できなくなることを回避することである。
【0008】
一実施形態では、現在実行に向けてスケジューリングされている命令の利用不可能な1つ又は複数のリンクを置換するために、2つ以上の組み合わせが利用可能である場合、好ましいリンクの組み合わせを選択するために、以下の2つのステップからなる手順が実行される:
(a)後の時間に命令を実行するために必要となるリンクに、より低い重みを与える所定の重み付け関数を利用しながら、組み合わせに含まれる全てのリンクの加重和として計算される必要係数を各組み合わせに割り当てるステップ、及び
(b)最小必要係数を有する組み合わせ、又は同じ最小必要係数を有するいくつかの組み合わせの場合、より少ないリンクを有する組み合わせを選択するステップ。この最小必要係数の基準は、将来スケジューリングされている命令への潜在的な影響を最小にすることを確実にするために使用される。
【0009】
上記の重み付け関数は、典型的には、現在の実行時間から上記のその先読み時間距離までの時間間隔をカバーし、それによって、間隔の終了時の関数の値が、現在の実行時間でのその値の0~25%の範囲内になるようにする。重み付け関数の例は、指数関数、線形関数及びレイズドコサインである。
【0010】
一実施形態では、複数の現在実行に向けてスケジューリングされている命令の利用不可能なリンクを置換することを試みる場合、以下の3つのステップからなる手順が実行される:
(a)上記の2つのステップからなる手順に従って、複数の命令の各々に関連する最小必要係数を、この命令が利用可能なリンクを競合する唯一の命令であるかのように計算するステップ、
(b)最も小さい最小必要係数を有する命令を選択するステップ、及び
(c)残りの現在実行に向けてスケジューリングされている命令で手順を再開するステップ。
【0011】
一実施形態では、複数の現在実行に向けてスケジューリングされている命令が利用不可能なリンクを含む場合、それらの命令は、利用不可能なリンクを1つずつ置換することを試みる前に、それらの実行のためのスケジューリングの当初時間に応じて順序付けされる。このようにして、利用可能なリンクの不足のために既に遅延しているそれらの命令は、それらの遅延に関連する置換において優先される。
【0012】
いくつかのシステムの実施形態では、コード実行の進行は、最小数の実行可能な命令を有することを条件とする。この条件は、実際には、利用不可能なリンクの間接リンクの置換を探す試みを必要とする。
【0013】
開示される方法の典型的な実施形態では、コード実行の開始は、上記のステップ(a)の先読み開始時間に対して遅延される。この遅延のインセンティブは、リンクが実際に必要とされる前にリンクの生成を十分に開始することである。実行遅延は、典型的に、先読み時間距離と等しいか、又はそれよりもいくらか長い。
【0014】
開示される方法が実装される典型的なシステムの実施形態では、リンクの少なくとも一部は、アインシュタイン=ポドルスキー=ローゼン(EPR)ペアに基づく。これらの実施形態では、2つ以上の利用可能なリンクを直列に接続することは、それらを融合することに基づく。これらの実施形態におけるリンク生成プロセスは、ほぼポアソンランダムプロセスに従って作動する。先読み時間距離は、典型的には、[1/λ,10/λ]の範囲で予め決定され、ここで、λは、生成要求キューが空でない場合のリンク生成の平均速度である。
【0015】
上記に開示される方法を実装する処理デバイスがさらに開示される。
【0016】
上記に開示される方法に従って制御されるマルチコア量子コンピュータが、なおさらに開示される。
【図面の簡単な説明】
【0017】
本発明は、図面と共にその実施形態の以下の詳細な説明から、より完全に理解されるであろう。
【0018】
【
図1】本発明の実施形態に係る、マルチコア量子コンピューティングシステムを概略的に示すブロック図である。
【
図2】本発明の実施形態に係る、マルチコア量子コンピューティングシステム上で実行される量子コードの実行時間を最小化するための方法を概略的に示すフローチャートである。
【発明を実施するための形態】
【0019】
本発明の実施形態は、マルチコア量子コンピュータの計算効率を向上させるために、量子命令(本明細書以下では「命令」)を最適に実行する量子コンピューティング制御方法及びシステムを提供する。本明細書以下では、量子コンピュータコアは、量子処理ユニット(QPU)としても表記される。達成される効率は、より高速かつより信頼性の高い量子コンピューティングに貢献する。以下の説明では、基礎となる量子技術は、トラップイオンであると仮定する。しかしながら、本明細書で提案される技術及び概念は、QPUの相互接続技術と同様に、基礎となる量子技術に依存しない。
【0020】
図1を参照すると、本発明の実施形態によるマルチコア量子計算システム100のブロック図が示されている。システム100は、量子コンピュータ108及び量子コンピュータコントローラ112の2つの主要なサブシステムを備える。これらの2つのサブシステムは、それぞれ、EM、読み出し及びアドレス指定入力出力(I/O)バス116及び120を介して相互に通信する。I/Oバス120の上の破線は、システム100の下位物理(phy)層と上位ソフトウェア(SW)層との間の境界を示す。システム100は、I/Oポート122を介して外界と通信する。
図1に示すブロック図は、開示された技術の特定の特徴を理解するために不可欠なシステム100の特定の要素に焦点を当てている。この理解に必要のない従来の要素及び接続性は、簡略化のために
図1から省略されているが、当業者には明らかであろう。例えば、本発明に特に関連するI/Oポート及びブロック124で画定された一部のソフトウェア機能以外に、コントローラ112内のハードウェア及びソフトウェアコンポーネントは示されていない。以下は、前述のブロックの機能説明であり、ブロック124内の全てのソフトウェアブロックは、簡潔さのために「ブロック」と表記される。
【0021】
コントローラ112は、ソフトウェアI/Oポート122を介して、コンパイルされた量子回路命令の形態の量子コード(本明細書以下では「コード」)を受け入れる。コードは、典型的には、量子コンピュータ108の1クロックサイクルにつき1つの命令ブロックの割合で、後の処理のために命令ブロックとして配置される。各命令ブロックは、単一又は複数の命令を含むことができる。本明細書以下で
図2を参照して詳細に説明するように、命令ブロックはブロック128で先読みされ、ブロック132で処理される。ブロック132はコードを解析し、実際の実行のために命令ブロックをスケジューリングする。ブロック132は、コード先読みのためにスケジューリング情報をブロック128に転送する。ブロック132はまた、以下に説明するように、アインシュタイン=ポドルスキー=ローゼンペア(EPR)の生成のために要求をキューに入れ、キューから外す決定を得る。これらのEPRは、複数のコアを含む命令を実行するために必要なコア間リンク(本明細書以下では「リンク」)を構成する。いくつかの実施形態では、連結されたグリーンバーガー=ホーン=ツァイリンガー状態のようなリンクを生成するためにEPR以外の手段が利用されてもよい。ブロック136は、これらの要求及び結果として生じるEPRリザーバの管理を行う。ブロック132は、量子回路コードフォーマットをI/Oバス120によって読み取り可能な波形フォーマットに適合させるブロック140に、スケジューリングされた量子命令を転送する。この波形フォーマットは、I/Oバス120において電磁(EM)パルスを誘導するための電気パルスを含み、これは量子コンピュータ108の量子活動を刺激するのに役立つ。様々な実施形態では、EMパルスのタイプは、光、RF、及び/又はマイクロ波であり得るが、他の量子に適したEMタイプも同様に利用されてもよい。ブロック140の第二のソースはブロック136であり、これは、EPR生成の要求、及び本明細書以下で説明するキューから外す要求のために以前に要求されたEPRの生成をキャンセルする要求をそこに転送する。ソフトウェアインターフェース140はまた、後にEMパルスを量子コンピュータ108の適切なキュービットに向けるために、アドレス指定データを電気パルスに関連付ける。
【0022】
コントローラ112の説明は、これまで下流(ソフトウェアから物理)方向の動作に関連していた。逆方向では、量子コンピュータ108は、対応するソースアドレスに関連付けられた電気読み出しパルスを、I/Oバス116及び120を介して、量子読み出しソフトウェアインターフェース144に転送する。インターフェース144は、ブロック148において量子計算結果の解釈を可能にするために、この上流の情報をソフトウェアで読み取り可能なフォーマットに変換する。次いでブロック148は、解釈された結果を、I/Oポート122を介して外界に転送し、またコード実行制御に影響を与えるためにブロック132にも転送する。ブロック144はまた、首尾よく生成されたEPRに関連する読み出し結果を、EPRリザーバ管理のため、及び新たに利用可能になったEPRについてブロック132に報告するためにブロック136に転送する。いくつかの実施形態では、コントローラ112はまた、I/Oポート122を介して、それによって処理された量子に関連するログデータを後の分析のために出力して、将来のコンパイル効率を向上させるようにする。
【0023】
ここで量子コンピュータ108を参照すると、それは、I/Oバス116を介して、QPUアレイ152に含まれる様々なコアにアドレス指定されたEMパルスを受信する。その結果、QPUは量子命令に従ってコア-ローカル論理演算を実行し、また相互接続156を介してコア間論理演算を実行する。測定サブシステム160は、それによって実行された論理演算の結果をアレイ152から読み出し、読み出した結果を、対応するソースアドレスと共に、I/Oバス116を介してコントローラ112に転送する。同様に、EPR生成サブシステム164は、相互接続156を介して、成功したEPR生成結果、及び間接EPRの成功した生成を読み出し、読み出した結果を、それらの対応するソースアドレスと共に、I/Oバス116を介してコントローラ112に転送する。上記において、間接EPRは、融合技術を使用して複数のEPRを直列に接続することによって達成されるコア間リンケージである。いくつかの実施形態では、他のタイプのリンク接続技術を使用してもよい。
【0024】
図1に示すブロック図は、ハードウェア及びソフトウェアのアーキテクチャの例を示し、これは純粋に概念を明確にするために選択した。代替の実施形態では、任意の他の適切なアーキテクチャを使用することもできる。一実施形態では、コントローラ112は、上記の機能を実行するためのソフトウェアを実行する汎用プロセッサを備える。しかしながら、ASIC及びFPGAなどの任意の他の適切な制御手段を代替的又は付加的に使用することもできる。
【0025】
図2を参照すると、上記のシステム100のようなマルチコア量子コンピュータシステム上で実行される量子コードの実行時間を最小化するための方法に対応するプロセスを概略的に示すフローチャート200が示されている。コアは、もつれベースの使い捨てリンクによって接続され、その生成時間の持続時間はランダムに変化する。典型的な実施形態では、リンクはEPRとして実装され、その生成時間は指数関数的に分布し、1/λの平均生成時間である。リンクはコア間命令、すなわち異なるコアのキュービットに関与する命令を実行するために必要とされる。
【0026】
フローチャート200は、量子コンピュータ108において命令ブロックが実行される速度を決定するクロックを開始する開始ステップ204から始まる。先読みステップ208において、ブロック128は、現在のクロックサイクルから所定のスライディング先読み時間距離で先読みし、命令においてEPRの必要性に遭遇すると、ブロック128は、その生成の要求を、ブロック132を介してブロック136に転送する。様々な実施形態では、先読み時間距離は、[1/λ,10/λ]の範囲で予め決定されてもよく、典型的な値は5/λである。ブロック136は、EPR生成要求をキューで管理する。要求されたEPRがEPR生成サブシステム164において生成されたことがブロック144によって通知されると、ブロック136は、このEPRをその要求キューから、それが管理するEPRリザーバに転送する。ステップ244以外のプロセス200のさらなる論理ステップは全て、ブロック132において実行される。その後に続く決定ステップ212及び待機ステップ216は、実際には、コード実行開始サイクルを所定の遅延時間だけ遅延させるクロックサイクルカウンタを構成し、その間に、ステップ208に従って将来必要とされるEPRを事前に生成することができる。典型的な実施形態では、この遅延は、上記の先読み時間距離に等しいが、いくつかの実施形態では、これは先読み時間距離よりも長くてもよい。
【0027】
決定ステップ220において、ブロック132は、最後のコード命令が現在の命令ブロックに含まれているかどうかをチェックする。チェック結果が肯定的であれば、プロセスはステップ224でその終了に達し、そうでなければ、プロセスはステップ228に進み、ブロック132は、ブロック136に問い合わせることによって、現在実行に向けてスケジューリングされている命令ブロック内の1つ又は複数の必要なEPRが利用不可能かどうかをチェックする。明らかに、これは、現在の命令ブロック内にコア間命令を有する場合にのみ起こり得る。EPRが利用不可能でない場合、ステップ232において、現在の命令ブロックが量子コンピュータ108によって実行される。ここで、新しいクロックサイクルが開始されると、プロセスはステップ208に戻り、プロセスは上記のようにループを続ける。現在の命令ブロック内の1つ又は複数の命令において1つ又は複数の必要なEPRが利用不可能である場合、プロセスはステップ228から決定ステップ236に進む。ステップ236によれば、現在の命令ブロックが、必要とされるEPRを欠いていないという意味で、所定の最小数の実行可能な命令を依然として含んでいる場合(これは、コア-ローカル命令については明らかである)、プロセスは、スキップステップ237を経てステップ232に進み、これまで説明したように、場合によってはステップ228及びまた場合によってはステップ236を経てループを続けることができる。ステップ232を通る各遷移は、実際にはコード実行の進行に対応する。いくつかの実施形態では、上記の最小数の実行可能な命令は、単一の命令と同じほど少なくてもよい。いくつかの実施形態では、ステップ228又はステップ236のいずれかからステップ232への遷移は、そのスケジューリング機能の一部としてブロック132によって駆動される、以前に後でスケジューリングされた命令の進行した実行を含み得る。ブロック132は、ブロック136を介して、ステップ237に示されるようにスキップされた実行不可能な命令に関連する利用不可能なEPRを常に追跡する。以前にスキップされた命令の利用不可能なEPRの全てが利用可能になったことを検出すると、ブロック132は、この命令を実行に向けて再スケジューリングする。
【0028】
上述したように、コード実行の進行に必要なリンクが利用できないために、コード実行がステップ236からステップ232に進行することができない場合、プロセス200は生成ステップ238に進み、この生成ステップ238では、実行のためにそれらをスケジューリングするようにブロック132が実行不可能な命令を実行可能な命令にすることを試みる。これは、利用不可能なEPRを間接EPRと置換することを試みることによって行われ、間接EPRは、サブシステム164を参照して上記で説明したように生成することができる。ブロック132は、ブロック136を介してEPRリザーバに問い合わせることによって、このための候補である利用可能なEPRを認識する。ステップ238に続く決定ステップ240において、ブロック132は、ステップ238に続いて実行可能になった実行命令をスケジューリングする。これらの命令に対して、プロセスは、キューに入れる及びキューから外すステップ244を経て実行ステップ232に進む。ステップ244において、ブロック132は、サブシステム164からの冗長な作業負荷及び過剰密度を減らすように、置換された各リンクについて、保留中、すなわち既にキューに入れられた生成要求をキューから外すことを行う。ブロック132はまた、将来スケジューリングされる命令に必要となるリンクが利用不可能になることを回避するように、ステップ244において、ステップ238において利用不可能なリンクの置換に関与する各リンクの生成要求をキューに入れることを行う。ステップ238において実行可能になることができなかった命令について、プロセス200は、適切な直接の利用不可能なEPRが利用可能になるのを同時に待機しながら、間接リンクによってそれらを実行可能にする試みを繰り返すためにステップ238に戻る。
【0029】
本発明の実施形態においてブロック132によって利用され得る、利用不可能なEPRの置換に関連する様々なオプションがある。命令の利用不可能な1つ又は複数のEPRを置換するために2つ以上のEPRの組み合わせが利用可能である場合、その好ましい組み合わせの選択は、一実施形態では、以下の例示的な2つのステップからなる手順によって実行される:
(a)後の時間に命令を実行するために必要となるEPRに、より低い重みを与える所定の重み付け関数を利用しながら、各組み合わせに、その組み合わせに含まれる全てのEPRの加重和として計算される必要係数を割り当てるステップ、及び
(b)最小必要係数を有する組み合わせを選択するステップ。
【0030】
複数の組み合わせが同じ最小必要係数を有する場合、少ないEPRを有する組み合わせの1つを選択する。
【0031】
典型的な実施形態では、重み付け関数は、現在の実行時間からその先読み時間距離までの時間間隔をカバーし、それによって、間隔終了時のその値が現在の実行時間でのその値の0~25%の範囲になるようにする。重み付け関数の例は、指数関数、線形関数及びレイズドコサインである。
【0032】
ブロック132はまた、ステップ238において、複数の命令、典型的には、現在実行に向けてスケジューリングされている命令の利用不可能なEPRを同時に置換することを試みることができる。これは以下の例示的な3つのステップからなる手順によって行うことができる:
(a)上記の2つのステップからなる手順に従って、この命令が利用可能なリンクを競合する唯一の命令であるかのように、各命令に関連する最小必要係数を計算するステップ、
(b)最も小さい最小必要係数を有する命令を選択するステップ、及び
(c)残りの命令で手順を再開するステップ。
【0033】
一実施形態では、複数の命令の利用不可能なEPRの置換は、それらの当初スケジューリングされた実行時間に応じた順序で実行される。
【0034】
フローチャート200は例示的なフローチャートであり、純粋に概念的な明確さのために選択された。代替実施形態では、開示された方法を説明するために、任意の他の適切なフローチャートを使用することもできる。開示された技術を理解するために必須ではない方法ステップは、簡略化のために
図2から省略した。
【0035】
したがって、上述した実施形態は例示として引用されており、本発明は、本明細書上記で特に示し、説明したものに限定されないことは理解されるであろう。むしろ、本発明の範囲は、本明細書上記の様々な特徴の組み合わせ及び部分的組み合わせの両方、ならびに前述の説明を読んで当業者が想起し、先行技術に開示されていないこれらの変形及び変更を含む。
【手続補正書】
【提出日】2024-05-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
マルチコア量子コンピュータシステム上で実行される量子コードの実行時間を最小化するための方法であって、
マルチコア量子コンピュータ上で実行される量子コードを、現在のクロックサイクルから所定の先読み時間距離で分析するステップであって、前記マルチコア量子コンピュータ上の複数のコアは、ランダムに生成された持続時間を有するもつれベースの使い捨てリンクによってリンクされる、ステップと、
前記量子コードの前記分析に基づいて、命令ブロックにおいてリンクの必要性に遭遇した場合に、先読み命令ブロックにおいてリンク生成の要求をキューに入れるステップと、
コード実行を進行するために、現在の命令ブロックの命令が実行可能かどうかを決定するステップと、
コード実行に必要な1つ又は複数の利用不可能なリンクのために、前記現在の命令ブロック内の前記命令が実行不可能であるという決定に基づいて、前記現在の命令ブロック内の前記実行不可能な命令をスキップし、前記1つ又は複数の利用不可能なリンクが利用可能になるまで、スキップされた前記実行不可能な命令を再スケジューリングするステップと、
前記コード実行の進行に必要な1つ又は複数のリンクが利用不可能なために、前記現在の命令ブロック内の前記命令を実行できないという決定に基づいて、間接リンクを生成することによって実行不可能な命令を置換して、現在実行に向けてスケジューリングされている命令の少なくとも一部のそれぞれについて、前記1つ又は複数の利用不可能なリンクを、2つ以上の利用可能なリンクを直列に接続するそれぞれの生成された間接リンクで置換するステップと、
を含む、方法。
【請求項2】
各実行可能命令について、前記方法が、
置換された各リンクに対する保留中の生成要求をキューから外すステップと、
それぞれの1つ又は複数の利用不可能なリンクを置換するために生成された各間接リンクに対する生成要求をキューに入れるステップと、
前記マルチコア量子コンピュータシステムによって、前記現在の命令ブロックを実行して、コード実行を進行するステップと、
をさらに含む、請求項1に記載の方法。
【請求項3】
2つ以上のリンクの組み合わせが、現在実行に向けてスケジューリングされた命令の前記1つ又は複数の利用不可能なリンクを置換するために利用可能である場合、
リンクの各組み合わせに含まれる前記1つ又は複数のリンクの重み付き合計として計算される必要係数を、前記コード実行の後の時刻における実行に必要なリンクがより低い重みを有するように割り当てるステップと、
最小必要係数を有するリンクの組み合わせを選択するステップと、
をさらに含む、請求項1に記載の方法。
【請求項4】
複数のリンクの組み合わせが同じ最小必要係数を共有する場合に、前記複数のリンクの組み合わせの中から最小数のリンクを有する組み合わせを選択するステップをさらに含む、請求項3に記載の方法。
【請求項5】
複数の命令の前記1つ又は複数の利用不可能なリンクを同時に置換するステップを、
各命令に関連する最小必要係数を決定するステップと、
最も小さい最小必要係数を有する命令を選択するステップと、
現在実行に向けてスケジューリングされているの残りの命令で手順を再開するステップと、
によって行うことをさらに含む、請求項3に記載の方法。
【請求項6】
現在実行に向けてスケジューリングされている複数の命令に利用不可能なリンクが含まれている場合に、それぞれの利用不可能なリンクの置換を試みる前に、それぞれの当初スケジューリングされていた実行時間に従って前記命令を順序付けるステップをさらに含む、請求項1に記載の方法。
【請求項7】
前記先読み時間距離に対して所定の遅延だけコード実行の開始を遅延させるステップをさらに含む、請求項1に記載の方法。
【請求項8】
現在の命令ブロックが最後のコード命令を含むかどうかを決定するステップと、
前記現在の命令ブロックが最後のコード命令を含まないという決定に基づいて、前記現在実行に向けてスケジューリングされている命令ブロック内の1つ又は複数の必要なアインシュタイン=ポドルスキー=ローゼン(EPR)ペアが利用不可能であるかどうかを決定するステップと、
前記現在実行に向けてスケジューリングされている命令ブロック内の1つ又は複数の必要なEPRペアが利用不可能であるという決定に基づいて、前記現在の命令ブロックを実行して、コード実行を進行するステップと、
をさらに含む、請求項7記載の方法。
【請求項9】
前記リンクの少なくとも一部がEPRペアに基づいており、前記利用可能なリンクを融合することによって2つ以上の利用可能なリンクを直列に接続するステップをさらに含む、請求項1に記載の方法。
【請求項10】
前記先読み時間距離は、1/λと10/λとの間の範囲で予め決定され、λは、生成要求キューが空でない場合のリンク生成の平均速度である、請求項1に記載の方法。
【請求項11】
前記先読み時間距離は、5/λであり、λは、生成要求キューが空でない場合のリンク生成の平均速度である、請求項1に記載の方法。
【請求項12】
実行可能な命令の最小数を有することに基づいて、コード実行の進行を条件付けるステップをさらに含む、請求項1に記載の方法。
【請求項13】
マルチコア量子コンピューティングシステムであって、
量子コンピュータコントローラであって、
マルチコア量子コンピュータ上で実行される量子コードを、現在のクロックサイクルから所定の先読み時間距離で分析するステップであって、前記マルチコア量子コンピュータ上のコアは、ランダムに生成された持続時間を有するもつれベースの使い捨てリンクによってリンクされる、ステップと、
前記量子コードの前記分析に基づいて、命令ブロックにおいてリンクの必要性に遭遇した場合に、先読み命令ブロックにおいてリンク生成の要求をキューに入れるステップと、
コード実行を進行するために、現在の命令ブロックの命令が実行可能かどうかを決定するステップと、
コード実行に必要な1つ又は複数の利用不可能なリンクのために、前記現在の命令ブロック内の前記命令が実行不可能であるという決定に基づいて、前記現在の命令ブロック内の前記実行不可能な命令をスキップし、前記1つ又は複数の利用不可能なリンクが利用可能になるまで、スキップされた前記実行不可能な命令を再スケジューリングするステップと、
を行うように構成された量子コンピュータコントローラと、
量子プロセッシングユニット(QPU)アレイを備え、前記QPUアレイに含まれる様々なコアにアドレス指定された電磁(EM)パルス、先読み及びアドレス指定入力/出力バスを介して前記量子コンピュータコントローラと通信するように結合された量子コンピュータであって、
命令ブロックにおいてリンクの必要性に遭遇した場合に、先読み命令ブロックに含まれるリンク生成の要求をキューに入れるステップと、
前記コード実行の進行に必要な1つ又は複数のリンクが利用不可能なために、前記現在の命令ブロック内の前記命令を実行できないという決定に基づいて、間接リンクを生成することによって実行不可能な命令を置換して、現在実行に向けてスケジューリングされている命令の少なくとも一部のそれぞれについて、前記1つ又は複数の利用不可能なリンクを、2つ以上の利用可能なリンクを直列に接続するそれぞれの生成された間接リンクで置換するステップと、
を行うように構成された量子コンピュータと、
を備える、マルチコア量子コンピューティングシステム。
【請求項14】
前記量子コンピュータコントローラは、
置換された各リンクに対する保留中の生成要求をキューから外すステップと、
それぞれの1つ又は複数の利用不可能なリンクを置換するために生成された各間接リンクに対する生成要求をキューに入れるステップと、
前記マルチコア量子コンピューティングシステムを制御して、前記現在の命令ブロックを実行し、コード実行を進行するステップと、
をさらに行うように構成される、請求項13に記載のマルチコア量子コンピューティングシステム。
【請求項15】
2つ以上のリンクの組み合わせが、現在実行に向けてスケジューリングされた命令の前記1つ又は複数の利用不可能なリンクを置換するために利用可能である場合、前記量子コンピュータコントローラは、
リンクの各組み合わせに含まれる前記1つ又は複数のリンクの重み付き合計として計算される必要係数を、前記コード実行の後の時刻における実行に必要なリンクがより低い重みを有するように割り当てるステップと、
最小必要係数を有するリンクの組み合わせを選択するステップと、
をさらに行うように構成される、請求項13に記載のマルチコア量子コンピューティングシステム。
【請求項16】
前記量子コンピュータコントローラは、現在実行に向けてスケジューリングされている複数の命令に利用不可能なリンクが含まれている場合に、それぞれの利用不可能なリンクの置換を試みる前に、それぞれの当初スケジューリングされていた実行時間に従って前記命令を順序付けるステップをさらに行うように構成される、請求項13に記載のマルチコア量子コンピューティングシステム。
【請求項17】
前記先読み時間距離は、1/λと10/λとの間の範囲で予め決定され、λは、生成要求キューが空でない場合のリンク生成の平均速度である、請求項13に記載のマルチコア量子コンピューティングシステム。
【請求項18】
コード実行の進行は、実行可能な命令の最小数を有することを条件とする、請求項13に記載のマルチコア量子コンピューティングシステム。
【請求項19】
実行可能命令を記憶した非一時的コンピュータ可読媒体であって、実行時に、デジタルコンピューティングプロセッサに、
マルチコア量子コンピュータ上で実行される量子コードを、現在のクロックサイクルから所定の先読み時間距離で分析するステップであって、前記マルチコア量子コンピュータ上の複数のコアは、ランダムに生成された持続時間を有するもつれベースの使い捨てリンクによってリンクされる、ステップと、
前記量子コードの前記分析に基づいて、命令ブロックにおいてリンクの必要性に遭遇した場合に、先読み命令ブロックにおいてリンク生成の要求をキューに入れるステップと、
コード実行を進行するために、現在の命令ブロックの命令が実行可能かどうかを決定するステップと、
コード実行に必要な1つ又は複数の利用不可能なリンクのために、前記現在の命令ブロック内の前記命令が実行不可能であるという決定に基づいて、前記現在の命令ブロック内の前記実行不可能な命令をスキップし、前記1つ又は複数の利用不可能なリンクが利用可能になるまで、スキップされた前記実行不可能な命令を再スケジューリングするステップと、
前記コード実行の進行に必要な1つ又は複数のリンクが利用不可能なために、前記現在の命令ブロック内の前記命令を実行できないという決定に基づいて、間接リンクを生成することによって実行不可能な命令を置換して、現在実行に向けてスケジューリングされている命令の少なくとも一部のそれぞれについて、前記1つ又は複数の利用不可能なリンクを、2つ以上の利用可能なリンクを直列に接続するそれぞれの生成された間接リンクで置換するステップと、
を含む機能を実行させる、非一時的コンピュータ可読媒体。
【請求項20】
前記先読み時間距離は、1/λと10/λとの間の範囲で予め決定され、λは、生成要求キューが空でない場合のリンク生成の平均速度である、請求項19に記載の非一時的コンピュータ可読媒体。
【国際調査報告】