東芝 SQBM+ プロバイダー
Note
Toshiba SQBM+ 最適化ソルバーは非推奨となり、近日中に Azure Quantum サービスで使用できなくなることに注意してください。
- 発行元: 東芝デジタル ソリューションズ株式会社
- プロバイダー ID:
toshiba
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 以外のパラメーターは次のように扱われます。 algo と dt は無視され、自動的にチューニングされます。 loops と maxout は無視されます。 timeout は、合計計算時間 (秒) として指定できます。 その他のパラメーターは定義済みとして扱われます。 |
注意
Azure Quantum の SQBM+ プロバイダーを介して使用できるアルゴリズムは 2 つあります。
- 短時間で優れたソリューションを見つけられるように設計された高速な Ballistic Simulated Bifurcation アルゴリズム (bSB)
- 精度の高い Discrete Simulated Bifurcation アルゴリズム (dSB)。これは、他のマシン (従来と量子の両方) を超える計算速度でより正確なソリューションを見つけます。
algo
パラメーターで使用するアルゴリズムを選択する場合は、"1.5"
が bSB アルゴリズムに対応し、"2.0"
が dSB に対応します。
最大問題サイズ
- スピンの最大数: 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 のワークスペースで [クォータ] タブを選択します。