ライセンス管理

このページでは、qbpp-license コマンドラインユーティリティを使用した QUBO++ ライセンスの管理方法を説明します。 ライセンスシステムは QUBO++ (C++)PyQBPP (Python) で共通です。

ライセンスの種類

QUBO++ では、変数数の上限と有効期間が異なる複数のライセンスタイプが用意されています。

ライセンスタイプ

キー必要

有効期間

CPU 変数数

GPU 変数数

Trial

必要

30日間 (更新可)

10,000

10,000

Standard

必要

契約期間

2,147,483,647

10,000

Professional

必要

契約期間

2,147,483,647

2,147,483,647

Fallback

N/A

常時

100

100

  • Trial License: 無料・セルフサービス。qbpp-license -s で印字されるサインアップコードを使い、QUBO++ User Portal で登録してください。登録完了後、Trial ライセンスキーが画面に表示されます。

  • Standard License: 本番利用向け。大規模な CPU 最適化をサポートします。

  • Professional License: GPU アクセラレーション(ABS3 Solver、Exhaustive Solver)を使用した本番利用向けです。

  • Fallback Mode: 有効なライセンスが設定されていないかキャッシュが期限切れでネットワーク不通の場合、QUBO++ は100変数の制限で動作します。

Trial ライセンスの取得

  1. Linux マシンに QUBO++ をインストールします。

  2. qbpp-license -s を実行すると、端末に本日の8文字サインアップコードと portal URL が表示されます :

QUBO++ Trial Sign-up Code: XXXXXXXX

Use this code at the QUBO++ User Portal to register for a Trial license:
  https://qubo-plus.github.io/portal/
  1. QUBO++ User Portal を開き、サインアップフォームに 2. のコードを入力します。

  2. メール検証後、Trial ライセンスキー (T-PREFIX-XXXXXX-XXXXXX-XXXXXX、PREFIX はメールローカル部から導出) が portal 上に表示されます。

  3. マシンで、4.で取得した Trial ライセンスキーをアクティベートしてください :

qbpp-license -k T-PREFIX-XXXXXX-XXXXXX-XXXXXX -a

30日のTrial期間はサインアップ時から開始します — キー発行と同時に期限が確定するため、portal 上ですぐに有効期限を確認できます。期限の1週間前から User Portal で Trial の更新が可能です。更新時は同じライセンスキーがそのまま使われ、有効期限のみが30日延長されます — マシンのアクティベーション情報も保持されるため、再アクティベートは不要です。

ライセンスキーの設定とアクティベーション

本節の対象: 以下のアクティベーションフロー、および ライセンス状態の確認ライセンスのディアクティベーション は、ノードロックライセンス (Trial、Standard、Professional の単一マシン用キー) を対象としています。アクティベーションはキーを特定の物理マシンに紐づけます。フローティングライセンスについては、本ページ末尾の フローティングライセンス を参照してください。

Docker・VM・使い捨てコンテナなどの仮想環境では、ノードロックライセンスの動作は保証されません。 マシン指紋が安定せずアクティベートに失敗することがあるほか、コンテナを再ビルドした際にキャッシュされたアクティベーション情報が消失し、サーバ側のアクティベーション枠が宙ぶらりんで残ってしまう恐れがあります。仮想環境で QUBO++ を利用する場合は、フローティングライセンスを使用してください。フローティングライセンスはこの用途のために設計されており、マシンごとのアクティベーションを行わずに動作します。

ライセンスキーをお持ちの場合は、以下のいずれかの方法で設定してください。

方法1: qbpp-license でアクティベート(推奨)

マシンごとに以下のコマンドを一度実行します:

qbpp-license -k XXXXXX-XXXXXX-XXXXXX-XXXXXX -a

ライセンスキーは暗号化されてローカルにキャッシュされます。アクティベーション後、以降の実行では環境変数や -k オプションは不要です — QUBO++ プログラムはキャッシュされたキーを自動的に使用します。

再アクティベーションやキーの変更は、新しいキーでコマンドを再度実行するだけです。

方法2: 環境変数

QBPP_LICENSE_KEY 環境変数を設定します。ローカルキャッシュが永続的でない Docker/CI 環境で便利です。

export QBPP_LICENSE_KEY=XXXXXX-XXXXXX-XXXXXX-XXXXXX

その後、アクティベートします :

qbpp-license -a

優先順位

複数の方法が使用されている場合、以下の優先順位が適用されます:

  1. -k 引数 またはコード内の qbpp::license_key()(最高優先)

  2. QBPP_LICENSE_KEY 環境変数

  3. キャッシュされたキー(最低優先)

注意: 評価目的でも Trial キーが必要です。qbpp-license -s でサインアップコードを取得し、User Portal で登録してください。

ライセンス状態の確認

変更を加えずに現在のライセンス状態を表示するには:

qbpp-license

ライセンスタイプ、有効期限、変数数の上限、アクティベーション使用状況が表示されます。このコマンドはライセンスサーバーに接続して状態を更新します。

ライセンスのディアクティベーション

ライセンスを別のマシンに移動するには、まず現在のマシンでディアクティベートします:

qbpp-license -d
  • 各ライセンスキーには許可されたアクティベーション数の上限があります。

  • ディアクティベーションによりアクティベーション枠が1つ解放されます。

  • 悪用防止のため、連続するディアクティベーション間には 24時間のクールダウン があります。

コマンドリファレンス

Usage: qbpp-license [options]

Options:
  -h, --help          ヘルプメッセージを表示して終了
  -v, --version       バージョンを表示して終了
  -k, --key KEY       ライセンスキーを指定
  -a, --activate      このマシンでライセンスをアクティベート
  -d, --deactivate    このマシンでライセンスをディアクティベート
  -s, --signup-code   本日の portal サインアップコードを表示して終了
  -t, --time-out SEC  サーバー通信のタイムアウトを設定(デフォルト: 20秒)

使用例

コマンド

説明

qbpp-license

現在のライセンス状態を表示

qbpp-license -s

portal 登録用の本日のサインアップコードを表示

qbpp-license -k KEY -a

指定したキーでアクティベート

qbpp-license -d

このマシンでライセンスをディアクティベート

qbpp-license -t 60

60秒のタイムアウトで状態を確認

qbpp-license -k KEY -t 60 -a

キーと延長タイムアウトでアクティベート

ライセンス認証の仕組み

  • qbpp-license コマンド: 常にライセンスサーバーに接続して最新の状態を取得します。ネットワーク状況によっては数秒かかることがあります。

  • QUBO++ プログラム: ローカルキャッシュを使用してライセンスを検証し、サーバー通信でブロックしません。サーバーへの接続はキャッシュの更新が必要な場合(例:長期間同期されていない場合)のみ行われます。

  • ライセンスキーの保存: ライセンスがアクティベートされると、キーは暗号化されてローカルにキャッシュされます。これにより、キーを再設定せずに以降の実行が可能になります。

ネットワークとタイムアウト

ネットワークが遅い場合やファイアウォール/プロキシの背後にある場合、デフォルトの20秒のタイムアウトでは不十分な場合があります。

タイムアウトを延長するには:

qbpp-license -t 60 -a

サーバーに到達できない場合、QUBO++ はキャッシュされたライセンス状態にフォールバックします。キャッシュが存在しない場合、QUBO++ は Fallback Mode(100変数制限)で動作します。

プログラムは動作するが変数数が制限される

  • QUBO++ が Fallback Mode で動作している可能性があります。ライセンス状態を確認してください:

qbpp-license
  • qbpp-license -k KEY -a または `QBPP_LICENSE_KEY でライセンスキーが正しく設定されているか確認してください。

  • 必要に応じて再アクティベートしてください:qbpp-license -a

ディアクティベーションのクールダウン

  • 連続するディアクティベーション間には24時間の待機期間があります。

  • クールダウン期間が経過してから再試行してください。

フローティングライセンス

フローティングライセンスは、組織内の複数のマシン間での共有アクセスを可能にします。マシンに永続的にロックされる代わりに、フローティングライセンスはリースベースの仕組みを使用します。

  • QUBO++ プログラムの起動時に、ライセンスサーバーからリースを取得します。

  • プログラムの実行中、リースは自動的に更新されます。

  • プログラムの終了時にリースが解放され、他のマシンがそのスロットを使用できるようになります。

  • プログラムがクラッシュしたりネットワークが切断された場合、リースはタイムアウト期間後に自動的に失効します。

  • Docker・VM・使い捨てコンテナなどの仮想環境でも問題なく動作します。 フローティングライセンスはマシン指紋に紐づかないため、コンテナの再ビルドや VM の作り直しでアクティベーション枠が宙ぶらりんになる心配がありません。 使い方はノードロックライセンスと同じです:

qbpp-license -k F-XXXXXX-XXXXXX-XXXXXX-XXXXXX -a

フローティングライセンスキーもローカルにキャッシュされるため、以降の実行ではキーの再設定は不要です。