Gurobi Optimizer:ソルバー

Gurobi クラウド

高速なマシン上のパワフルな最適化

Gurobiクラウドは、パワフルなGurobiの最適化ソフトウェアをクラウド上で実行するためのシンプルで費用対効果の高い方法です。ユーザは最適化がどのようなニーズであっても、そのニーズに応じたGurobiソフトウェアが既に搭載されている、一つまたはそれ以上の数のユーザ専用のコンピュータを起動することができます。ユーザのニーズを一番満たすサブスクリプションのプランと配備のためのオプションを選択するだけです。

通信は、HTTPSを利用した暗号化で安全です。ほとんどのGurobiクラウドのプランは、無制限の数のクライアントからのジョブに対するキューイングおよび負荷分散というGurobi計算サーバの機能を備えています。また、これらのプランは、分散最適化機能も提供しています。

一般的な利用例

Gurobiクラウドは、以下のような状況で利用されています。

  • 難しい最適化モデルの求解
    ネットワークの設定無しで複数コンピュータによるマシンパワーを、単一のモデルを解くために活用できます。
    システム上で768GBまでのメモリが利用できます。
  • 需要急増への対応
    継続的な保守の必要なく、ピーク需要に対するリソースの拡張が可能です。
  • 断続的な最適化要求への対応
    頻繁な求解やパフォーマンスチューニングをしない場合であっても、マシンとライセンスが必要になった時、それらに対する支払いをするだけで利用できます。
  • 新規プロジェクトに関するコストの最小化と追跡記録
    新規プロジェクトで、是非Gurobiを試してみてください。ユーザは、使用レポートから詳細な課金レコードを確認できます。
主な機能
使い易さGurobi Optimizerをローカルマシンにインストールし、クラウドマネージャ(cloud.gurobi.com)からライセンスをダウンロードしたら、Gurobi インスタントクラウドがユーザのコンピュータをクラウドに接続します。
最大限の性能必要とするマシンの数およびその性能を選択でき、複数のマシンプールさえ作成することが可能です。コンピュータは、メモリが768GBまで地球全域にわたって利用できます。また、必要に応じてマシンプールの拡張や縮小ができます。
柔軟性サブスクリプションライセンスを一度購入すれば、その後は、ユーザが使用するマシンのタイプや数に対する支払いをするだけです。また、より高レベルへのプランにいつでもアップグレード可能です。モデルサイズ、ユーザ数、マシン数への制限はありません。
いつでも利用可能ユーザ専用のクラウドサーバが、設定済みの最新のGurobi Optimizerのバージョンとライセンスとともに、数分で自動的に使えるようになります。
Azure®およびAmazon EC2®のサポートGurobiインスタントクラウドでは、ユーザ環境へのさらなる柔軟性と最高のインテグレーションのため、これら2つのクラウド環境をサポートしています。
直感的なWebインターフェースインスタントクラウドマネージャで、起動中のマシンやジョブを管理したり、ジョブダッシュボード内にジョブの詳細情報を表示したり、また、直近で使用したマシンの履歴にアクセスが可能です。
ユーザによる制御の余地簡単なREST APIで、ユーザのアプリケーションからクラウドサーバを管理できます。
合理的な請求Gurobiインスタントクラウドにより、一つの請求でライセンスとマシン費用がカバーされます。
インスタントクラウドマネージャ

インスタントクラウドマネージャで、起動中のマシンやジョブを管理したり、ジョブダッシュボード内にジョブの詳細情報を表示したり、直近で使用したマシンの履歴にアクセスが可能です。ライセンスは、同じ組織内のユーザの間で共有ができ、複数ユーザがマシンプールを管理できます。

マシンプール

プールが、計算サーバや分散ワーカの数だけではなく、マシンタイプ、リージョンやその他パラメータの設定も定義します。Gurobiインスタントクラウドが、ユーザのライセンスがすでに定義されたプールをユーザに提供します。

  • 分散最適化やチューニングのための分散ワーカのプール
  • 難しい問題の求解のための大規模マシンのプール
  • 運用時の同時最適化ジョブのロードバランスに対応する複数の計算サーバのプール
  • ユーザのアプリケーションとの待ち時間を最小にするための異なる複数のデータセンターの複数のプール
  • テスト、QA、運用のための複数のプール

ユーザは、ユーザのアプリケーションがより大規模なマシンや複数のマシンが必要であると分かった場合は、プールの定義を変更するだけです。次にそのアプリケーションがプールにアクセスする時、アップデートされた仕様により新しいマシンの利用が開始されます。
プールのマシンの開始や停止で、プールのスケールアップまたはダウンも数分で可能です。

リージョンとマシンタイプ

Gurobiインスタントクラウドは、5つのAWSリージョン(カリフォルニア、ヴァージニア、シドニー、東京、フランクフルト)と3つのAzureリージョンで(アメリカ東側、アメリカ西側、西ヨーロッパ)で利用可能です。クラウド業者やリージョンにより、ユーザのアプリケーションから正しい設定が選択できます。なお、いくつかの設定は、すべてのリージョンで使用できない可能性もあります。

プロバイダータイプRAM(GB)コア数カテゴリー
AWSc5.4xlarge328Compute Optimized
c5.9xlarge7218Compute Optimized
c5.18xlarge14436Compute Optimized
r4.8xlarge24416Memory Optimized
r4.16xlarge48832Memory Optimized
r5.24xlarge76848Memory Optimized
z1d.12xlarge38424High Performance
AzureF16v2328Compute Optimized
F32v26416Compute Optimized
F72v214436Compute Optimized
E64v343232Memory Optimized
H16m22416High Performance
自動プロビジョニング

ユーザのプールは、Gurobiクライアントに統合されていてそれにより、ユーザのアプリケーションからユーザが最適化セッションを起動した時にマシンが自動的に動き出します。すでにマシンが起動済みの場合は、最適化のために使用されます。ユーザは、各プールに関連付けられたライセンスファイルをダウンロードすることにより、使用したいプールを選択できます。クラウドコンピューティングに必要なことは、これ以上知る必要はありません。Gurobiインスタントクラウドが、ユーザのために全てをしてくれます。

$ gurobi_cl afiro.mps
Waiting for cloud server to start……….
Capacity available on ‘999999-default’ cloud pool - connecting…
Established HTTPS encrypted connection

Gurobi Optimizer version 8.1.0
Copyright (c) 2018, Gurobi Optimization, LLC

[…]

Solved in 3 iterations and 0.74 seconds
Optimal objective -4.647531429e+02

クラウドライセンスファイルが、Gurobiがサポートしているすべての言語(C++、Python、MATLAB、Java、.Net,、C、R)と環境に沿ってシームレスに対応します。ユーザはGurobiの環境設定を使いながら、ライセンスファイルの中にあるアクセスIDと秘密のキーを、ユーザのプログラムに直接記載をすることもできます。

ジョブ管理と履歴

ユーザは、キューイングされたジョブ、起動中のジョブ、計算が終了したジョブのリストにアクセスできます。最適化のエキスパートは、ジョブダッシュポードを開き、選択されたジョブの様々な情報を表示できます。

さらに、メタデータやエンジンログの後でアクセスするため、ジョブは自動的にアーカイブできます。
アクティブマシンと履歴

すでにご覧の通り、プールを使いながらGurobi インスタントクラウドが必要になった時にマシンが起動されます。さらに、ユーザは、アクティブなマシンと直近のマシンの履歴を、ユーザ環境を監視するためにリスト表示ができます。

先進のインテグレーション

クラウドのREST APIを使いながらユーザは、マシンとプールを管理するカスタマイズされたフレームワークを構築できます。ユーザは、クラウドのインフラの詳細設定無しでプールを生成し、マシンやプールを止めたりできます。そのAPIは、暗号化されたコミュニケーション(HTTPS)とインスタントクラウドマネージャからユーザが取り出すことができるAPIキーにより、セキュリティが保障されています。

Gurobi 計算サーバ機能

Gurobiインスタントクラウドプランに含まれる計算サーバライセンスにより、ジョブのキューイングや負荷分散を含むクライアントサーバの全ての機能にアクセスすることができます。これにより、無制限の数のクライアントから無制限の数のユーザおよびジョブの実行が可能です。クライアントとしては、Windows、Linux、Macが利用できます。

分散最適化機能

分散最適化機能も必要に応じ利用可能です。これにより、劇的な求解時間短縮のために複数マシンを利用できます。

  • 分散MIP
    複数マシンを一緒に起動させ、混合整数(MIP)モデルを求解
  • 分散並行最適化
    複数マシンが異なったアルゴリズムを使って、LPまたはMIPの求解を競争
  • 分散チューニング
    複数マシンによる、パフォーマンス向上のためのパラメータ設定を見つけるべき実験的求解