Gurobi Optimizer:ソルバー

Gurobi 計算サーバ

ハイパフォーマンスで、
障害時にも耐えうるアプリケーションの構築

異なる計算プラットフォームが混在するシステム上での複数ユーザの同時アクセスおよび稼働時間のシビアな目標、そして、突発的なユーザ増加への対応等…。あらゆる分野のビジネスシーンで最適化アプリケーションの存在が重要視される中で、求められる要件も非常に複雑なものになってきています。
この課題を解決するため、最適化アプリケーションの構築および配備が容易にできるよう設計されたのが Gurobi 計算サーバです。
Gurobi 計算サーバはクライアントのライブラリと結合して、ジョブの実行やキューイング、ロードバランス、フェイルオーバといった機能を強力なサーバに担わせ、拡張性も信頼性も高いアプリケーションを構築します。

オンプレミスでも、プライベートクラウドでも、利用可能な新機能

新たなパッチモード(インタラクティブでない求解)とAPI

クラスタマネージャによりユーザは、ユーザアカウント、インタラクティブ性を必要としないタスクをバッチとして扱うことが可能です。ユーザは、ローカル環境でモデルを構築後サーバへ送付し、その後サーバとの接続を解除することができます。サーバ上でバッチ処理が終了した後、ユーザはその結果を確認することができます。

新たなWeb ユーザインタフェース

クラスタマネージャにより、ユーザはユーザアカウント、クラスタノード、ジョブ、バッチを容易に監視/管理ができます。ユーザは、ドラッグアンドドロップで、ファイルからバッチ投入もできます。

新しいジョブ/バッチ履歴管理

クラスタマネージャでは、投入されたジョブとバッチの実行を継続的に記録しています。ユーザはクラスタの利用状況を、ユーザ、アプリケーション、時間枠で管理ができます。

遅延制約(Lazy Constratint)のサポート

コールバック関するから遅延制約(Lazy Constratint)の即時追加を行うアプリケーションを、計算サーバでもクラスタマネージャでも実行ができます。

新たなクラスタマネージャ

クラスタマネージャは、ユーザの計算サーバノードに一緒にインストールできる新しいサーバコンポーネントです。ユーザ認証とAPIキーで、より良いセキュリティを提供します。インタラクティブやインタラクティブでない最適化タスク(バッチ)の統合管理とともに、クラスタノードの能力を拡張します。

クラスタマネージャ ユーザインターフェース画面

Gurobi 計算サーバの特長

複数のクライアントプラットフォームをサポート

クライアントは、Windows、Linux、Macを含むGurobiがサポートしているどんなOS上でも動作します。さらに、クライアントは、計算サーバとして起動しているマシンのOSと同じである必要はありません。

クライアント側のライセンス購入は不要

クライアント数に制限がなく、クライアントのライセンスも不要です。単にユーザのクライアントアプリケーションを計算サーバに知らせるだけで、すぐに使えます。

優れた技術サポート

年間保守に加入されているユーザは、Gurobiの優れた技術サポートに問い合わせができるので、安心して計算サーバを含むGurobiライセンスを使えます。

Gurobi 計算サーバの活用シーン

サーバダウン

自動障害対応機能により、サーバ群内の 1 つのサーバがダウンした状態にすぐに対応できます。 さらに自動ロードバランス機能によって、平時にはアイドル状態にあるかもしれない緊急用サーバを簡単に利用でき、稼働している設定の中でのトータルなスループットを増加します。

突発的なアクセス増加

ローカル資源を利用して簡単にサーバを追加できるため、スケールアップ、スケールダウンも柔軟に対応できます。

モダンな複数階層アーキテクチャ

ミッションクリティカルなエンタープライズ分野において、複数階層アーキテクチャは広く採用されています。そのようなアーキテクチャにおいては、アプリケーションの機能はマシンのセット毎に分割されていて、各々が特定のタスク処理に専念します。Gurobi 計算サーバは、容易にこのようなシステムに統合が可能で、最適化に専念する「最適化層」を追加することができます。

Gurobi 計算サーバの機能概要
機能詳細
クライアント・サーバ機能のシームレスな統合 Gurobi Optimizerライブラリによりユーザは、ローカルでも、一つまたはそれ以上の数のGurobi計算サーバ上であっても、スイッチ一つで動作可能なプログラムを作成するため、既存インターフェースを使用できます。
強力なジョブキューイング機能 計算リソースにジョブキューイング機能とロードバランシング機能が組込まれており、可能な限り早くジョブを処理します。さらに、重要なジョブを可能な限り早く終わらせるため、ジョブに優先度を付けることも可能です。
迅速な障害発生対応機能 一部のサーバがネットワークから切断された時(例:システム異常および保守等によって)、残ったサーバ群はスムーズに稼働を続けます。これにより、計算実行に支障が発生することが避けられ、すでにジョブキュー内にあって実行待ち状態のジョブおよび新たにキューに投入されたジョブは、稼働しているサーバ群によって処理されます。
分散最適化機能(オプション)本機能はデフォルトの機能ではないため、本機能を利用するには、ライセンスに追加して本機能のオプション購入が必要です。

分散最適化機能は、簡単に計算サーバ機能にアドオンすることができます。これにより、複数マシンを利用した並列計算の恩恵を享受でき、計算時間が大幅に短縮できます。分散最適化機能が提供する標準的な機能は、下記を含みます。

  • 分散MIP
    複数のマシンを使用することで、1つのMIPモデルを解きます。
  • 分散並列処理
    複数のマシンが、それぞれ別のアルゴリズム戦略を用いてLPおよびMIPモデルの求解を行い、どのアルゴリズムが一番早く解を見つけることができるかの競争をします。
  • 分散チューニング
    複数のマシンを用いて実験的求解を行い、パフォーマンス改善が実現できるパラメータセットを見つけ出します。
安全で効率的な通信 改良されたセキュリティ、容易な運用、堅牢さのために、HTTPやHTTPSを利用します。また、通信データ量を減らすため、伝送するデータを圧縮します。
クラスタリング管理ツール クラスタからノードを動的に追加や削除ができ、コマンドラインツールでサーバとジョブの監視も可能です。管理者は、ライセンスをリスト表示し、現在の使用状況の確認、ジョブの優先度調整、保守のためのサーバ停止、実行中ジョブの強制停止をすることができます。REST APIのサポートにより、外部プログラムからの監視やクラスタ管理も可能です。
クラウドでの利用

Gurobi計算サーバは、ユーザ自身のサーバでも、クラウドのユーザ自身が契約しているインスタンスでも、Gurobi インスタントクラウドでも利用可能です。

ユーザ自身のサーバクラウドでの利用その他のクラウドオプション
Gurobi 計算サーバは、Gurobi OptimizerがサポートしているWindows、Linux、Macを含むサポートプラットフォーム上であれば、インストール可能です。 Gurobi計算サーバは、Gurobiインスタントクラウドで利用可能です。ユーザは、使用したいマシンの数を選択するだけで利用できます。 AWS/Azureのマシンの管理をユーザ自身が行いたい場合は、AWS/Azure 用のGurobiクラウドを推奨します。このオプションにより、通常のGurobiクラウドプランが利用できますが、Gurobiの展開やサーバ管理等の特別な仕様要求は、ユーザのAWS/Azureのアカウント内で対応する必要があります。
Gurobi計算サーバには、必要な物がすべて含まれていますので、セットアップの際に追加のソフトウェアの購入もインストールも必要ありません。 ユーザに必要なサブスクリプションのオプションを選択するだけです。アップグレードは、いつでも可能です。 Gutoniインスタントクラウドに比較すると、AWS/Azure用のGurobi クラウドでは、Webインターフェースによるユーザのマシン、プール、ジョブの管理ができません。
セットアップはとても簡単で、わずか2、3分で使用が開始できます。 HTTPS暗号化を使用したい場合は、ネットワークオプションやその証明をユーザが設定します。AWS/Azure用のGurobi クラウドは、AWS/Azureの全リージョンをサポートしています。
クラウド上で、Gurobiを起動します。 ユーザは、購入したGurobi ライセンスをユーザ自身のクラウドインスタンスで起動ができます。

ユーザ自身のサーバを使用しても、Gurobiインスタントクラウドを使用しても、下記の機能がいつもユーザは利用できます。