東芝 SQBM+ プロバイダー

Note

現在、東芝 SQBM+ プロバイダーは、米国、英国、カナダ、日本の Azure 課金アカウントをお持ちのお客様が利用できます。

対象サーバー

東芝 SQBM+ の Azure Quantum 上のクラウド (SQBM+) プロバイダーで、次のターゲットが利用可能になります。

イジング ソルバー

このソルバーを使用すると、大規模な組み合わせ最適化問題に対するほぼ最適なソリューションを高速で迅速に取得できます。 非線形ハミルトニアン系の断熱分岐をシミュレートすることで、組み合わせ最適化問題を解決できるイシング モデル マシンに基づいています。

シミュレーテッド分岐マシン (SBM) の詳細については、Goto、Tatsumura および Dixon による『Science Advances』の論文 (5(4), DOI:10.1126/sciadv.aav2372) を参照してください。

  • ジョブの種類: Quantum-Inspired Optimization Problem
  • データ形式: microsoft.qio.v2
  • ターゲット ID: toshiba.sbm.ising
  • Python ソルバー クラス名: SimulatedBifurcationMachine

注意

ソルバーでは、共有リソースを使用して、すべてのユーザーによって発行されたジョブが実行されます。 ジョブが実行されるまでに遅延が発生する可能性があります。

SQBM+ 計算構造の概要

SQBM+ 計算サービスに対する計算要求は、ステップ、実行、ループ (昇順) の 3 つの計算単位で構成されます。

計算要求を示した図。要求の内部にループがあり、ループの内部に実行があり、実行の内部にステップがある。

最小単位はステップです。 ステップのグループが実行を構成します。 実行のグループがループを構成します。 ループのグループが計算要求を構成します。

重要

計算パラメーターを使用して、計算要求ごとにステップとループの数を指定できます。

  • "ステップ" の計算パラメーターによって、実行のステップ数が指定されます。
  • ループ内の "実行" の数は、ソルバーごとに事前に定義され、160 で固定されます。
  • "ループ" 計算パラメーターによって、要求のループ数が指定されます。

詳細については、「入力パラメーター」セクションを参照してください。

SQBM+ 計算サービスは、実行ごとに乱数を使用する変数の組み合わせの初期値により、実行のグループを並列に実行しますが、各実行ではほぼ最適なソリューションが生成されます。

つまり、SQBM+ 計算サービス内では、計算要求によって number of loops in a request $\times$number of runs in a loop の最適なソリューションが合計で生成されます。

既定の動作では、SQBM+ 計算サービスは、これらのソリューションで最も優れたものをユーザーに返しますが、指定した数のソリューションを評価値の昇順で返すこともできます。 ステップとループの数は、計算要求の精度と速度に影響します。

自動チューニング機能は、より良い設定を見つけるのに役立ちます。 パラメーターの設定の詳細については、「入力パラメーター」を参照してください。

入力パラメーター

パラメーター名 Type Default 必須 説明
steps INT 0 オプション 計算要求のステップ数を指定します。 値 0 (ゼロ) は自動ステップを意味し、SQBM+ 計算サービスでステップ数が動的に決定されます。 最大数は 100,000,000 です。
loops INT 1 オプション SQBM+ 計算のループ数を指定します。 SQBM+ 計算サービスは、指定された回数だけループを繰り返しながら、より優れたソリューションを探します。 0 (ゼロ) を指定すると、タイムアウトが発生するまで計算が繰り返されます。 最大数は 10,000,000 です。
timeout float 10 オプション 最大計算時間 (タイムアウト) を秒単位で指定します。 $steps \times loops$ の計算が完了する前に計算時間が上限に達すると、計算はその時点で終了します。 この場合、実行結果は、それまでに得られた最適なソリューションになります。 パラメーター ループに 0 を指定した場合、パラメーター タイムアウトで指定された時間が経過するまでループが繰り返されます。 最大値は 3600 で、最小値は 0.001 です。
target double - 省略可能 計算要求の終了条件を指定します。 評価値がこの値に達すると、計算は停止します。 パラメーター ループに 0 を指定した場合、目的関数がパラメーター ターゲットで指定された値に達するか、タイムアウトが発生するまでループが繰り返されます。
maxout INT 1 オプション 出力するソリューション数の上限を指定します。 maxout で指定された制限に達するまで、SQBM+ 計算サービスは、取得したソリューションを目的関数の値の昇順で出力します。 最大数は 1,000 です。
dt float 1 オプション ステップごとの時間を指定します。 値の範囲は 0.0 より大きく、1.0 以下です。
C float 0 オプション SQBM+ の理論上の基礎である Goto、Tatsumura、Dixon の論文 (2019 年、p.2) の定数 ξ0 に対応します。 定数を 0 以上の単精度浮動小数点数として指定します。 値が 0 の場合、値 C が自動的に決定されます。
algo string 2.0 オプション SQBM+ 計算アルゴリズムの種類を指定します。 "1.5" (bSB アルゴリズム) または "2.0" (dSB アルゴリズム) のいずれか (詳細については、以下の注を参照してください)。 問題の種類によっては、"1.5" と "2.0" のアルゴリズムでパフォーマンスが異なる場合があります。 両方を試して、よりパフォーマンスが向上する方法を決定してください。
auto [bool] false オプション パラメーターの自動チューニング フラグを指定します。 値が "true" の場合、SQBM+ 計算サービスはパラメーターの値を自動的に検索して最適なソリューションを取得します。 この場合、auto 以外のパラメーターは次のように扱われます。 algodt は無視され、自動的にチューニングされます。 loopsmaxout は無視されます。 timeout は、合計計算時間 (秒) として指定できます。 その他のパラメーターは定義済みとして扱われます。

注意

Azure Quantum の SQBM+ プロバイダーを介して使用できるアルゴリズムは 2 つあります。

algo パラメーターで使用するアルゴリズムを選択する場合は、"1.5" が bSB アルゴリズムに対応し、"2.0" が dSB に対応します。

詳細については、東芝 SQBM+ のファースト ステップ サンプルを参照してください。

最大問題サイズ

  • スピンの最大数: 100,000
  • 問題マトリックス内のゼロ以外の値要素の最大数: 100,000,000

完了条件

SQBM+ 計算サービスは、次のいずれかの条件が満たされると完了します。

  • ループの数が loops に達する (loops が 0 でない場合)。
  • 計算時間が timeout に達する。
  • 値が target 以下に達する (target が指定されている場合)。

出力パラメーター

パラメーター名 Type 説明
runs 番号 実行された実行の合計数。中断された実行は含まれません。
message String 完了条件などに関するメッセージ。
3 つのメッセージ文字列 (完了、タイムアウト、到達) のいずれかが使用されます。次のように指定されています。
  • "完了": 指定した数のステップとループの計算が完了しました。
  • "タイムアウト": 計算時間がタイムアウトに達したため、計算を停止しました。
  • "到達": パラメーター ターゲットで指定された値に達したため、計算を停止しました。
    time 番号 前処理と後処理を含まない秒単位の計算時間。 auto が "true" の場合、値は最適なソリューションが得られるときのみの計算時間になります。
    dt 番号 パラメーターの自動チューニングによって選択された dt パラメーターの値。 このプロパティは、auto が "true" の場合にのみ出力に含まれます。
    algo String パラメーターの自動チューニングによって選択された algo パラメーターの値。 このプロパティは、auto が "true" の場合にのみ出力に含まれます。
    total_time 番号 検索時間を含む計算時間 (秒)。 このプロパティは、auto が "true" の場合にのみ出力に含まれます。

    価格

    東芝の SQBM+ の課金プランを確認するには、「Azure Quantum の価格」を参照してください。

    制限とクォータ

    東芝 SQBM+ クォータは、1 か月あたりのサブスクリプション内のコンピューティング時間数に基づいて追跡されます。 コンピューティング時間数は異なるプランに対して個別に追跡されますが、それ以外の場合は "サブスクリプション x リージョン" レベルで共有されます。 ジョブのコンカレンシーはワークスペース レベルで制限されます。

    クォータは課金プランの選択に基づいており、サポート チケットを使用して増やすことができます。 詳細については、「Azure Quantum quotas」(Azure Quantum クォータ) を参照してください。

    課金プラン Quota
    学習と開発 最大 1 件の同時実行ジョブ*
    1 か月あたり 1 時間のコンピューティング
    大規模パフォーマンス 最大 3 件の同時実行ジョブ*
    1 か月あたり 2,500 時間のコンピューティング

    * 同時実行ジョブの数とは、ワークスペースごとに一度にキューに入れることができるジョブの数です。

    現在の制限とクォータを確認するには、[Credits and quotas](クレジットとクォータ) ブレードに移動し、Azure portal のワークスペースで [クォータ] タブを選択します。