- 印刷する
- PDF
Ncloud TensorFlow Cluster サーバの生成ガイド
- 印刷する
- PDF
Classic環境で利用できます。
使用前に
Q. Ncloud TensorFlow Clusterは何ですか?
- 大容量学習データまたは演算量の多いTensorFlowコードを Cluster環境でより速く実行するためのサービスです。
- 予め提供されているtcm CLI命令語を通じてクラスタのノードを生成、追加、削除してストレージをClusterから簡単に共有して手軽に増設できます。また、ユーザーコードを簡単にClusterに実行(Job Submit)できます。
- "Ncloud Tensorflow Cluster"はグーグルブレインチームが開発したオープンソースマシンラーニングソフトウェアライブラリーであるTensorflowを利用しています。
Q. サポートされるOSは何ですか?
- OSは 'ubuntu-16.04-64-server'を提供します。
Q. どのようなパッケージが提供され、また、提供されるパッケージのみ使用できますか?
- Ncloud TensorFlow Cluster masterサーバにはAnacondaとClusterを運営できるtcm CLIパッケージが設置されます。(TensorFlow設置を除く)
- Ncloud TensorFlow Cluster masterサーバで生成するCluster NodeにはTensorFlowが設置されます。
Q. Python以外に Javaや他の言語を使用できますか?
- TensorFlowから JavaやGo などのAPIも提供されますが安定性を保障しないので Pythonを使われることをお勧めします。
Q. TensorFlowクラスタはどのように生成しますか?
- Ncloud TensorFlow ClusterはStandard使用のサーバを必要に応じて生成し、ターミナルにアクセスしてtcm CLI命令語でClusterを構成します。
- TensorFlow masterサーバは月額料金制と時間料金制から選択でき、サーバを生成してからアクセス環境を設定して利用できます。 (Worker, パラメータサーバノードは時間料金制で生成されます。)
Q. 提供されるサーバタイプにはどのようなものがありますか?
- NAVERクラウドプラットフォームから提供するNcloud TensorFlow Cluster masterサーバタイプはStandardサーバタイプの中から仕様を選択できます。ターミナルでアクセス後 tcm CLI 命令語で生成するサーバノードを以下のようなスペック仕様を選択できます(但し、全てのサーバノードは同じスペックで選択可能です)。
- Ncloud TensorFlow Cluster Worker, パラメータサーバノードは下の5つのサーバスペックから選択できます(全てのサーバノードは同じスペックで構成され、GPUサーバタイプは今後サポート予定です)。
スペックコード | スペックの詳細 | 説明 |
---|---|---|
mini | vCPU 4ea, Memory 16GB, HDD 50GB | クラスタテスト用途や少ないワークロード処理に適したサーバタイプです。 |
basic | vCPU 8ea, Memory 32GB, HDD 50GB | 中間規模のワークロード処理に適したサーバタイプです。 |
high | vCPU 16ea, Memory 32GB, HDD 50GB | 大きな規模のワークロード処理に適したサーバタイプです。 |
gpu1 | GPU 1ea, GPU Mem 24GB, vCPU 4ea, Memory 30GB, SSD 50GB | 単一GPUをクラスタノード数だけ拡張して使用します。 |
gpu2 | GPU 2ea, GPU Mem 48GB, vCPU 8ea, Memory 60GB, SSD 50GB | デュアルGPUをクラスタノード数だけ拡張して非常に大きなワークロード処理が可能です。 |
(但し、ノードは同じスペックタイプで構成され、全てのノードがワーカーサーバノードに認識され、パラメータサーバノードの個数は指定できます。)
Q. Ncloud TensorFlow Cluster master サーバを生成しましたが、ワーカーサーバやパラメータサーバはどうやって生成しますか?
- masterサーバターミナルにアクセスしてtcm create [サーバ台数]を実行してください。
- 詳しいtcm CLI命令語の使用法は ('Ncloud TensorFlow Cluster tcm命令語使用ガイド')をご参照ください。
Q. TensorFlow codeはどのようにClusterから実行しますか?
- master サーバターミナルにアクセスしてtcm submit [プログラムPath]を実行してください。
- 詳しい tcm CLI命令語の使用法は ('Ncloud TensorFlow Cluster tcm命令語使用ガイド')をご参照ください。
Ncloud TensorFlow Clusterのご紹介
TensorFlowでClusterとはTensorFlow グラフ上での分散された演算の一部で、作業(Task)の集合を意味します。 それぞれの作業はTensorFlowのサーバノードで実行され、各サーバはセッションを生成するマスターサーバ、グラフ演算を実行するワーカーサーバ、演算された傾き(Gradient)を共有するパラメータサーバで構成されます。
このようなサーバがそれぞれ各自実行する役割のためにそれぞれのサーバにClusterの構成情報を説明するClusterSpecを因子として渡す必要があり、このNcloud TensorFlow Clusterはそのような作業を比較的簡単に処理することができます。
ユーザーは各ノードに転送するCluster Specを気にすることなく学習コードの作成だけに集中できます。但し、Cluster Specをセッションに転送するためには若干のユーザーコードの修正が必要です。修正される部分に関する説明は('Ncloud TensorFlow Cluster MNIST 例題')をご参照ください。
当該サービスはTensorFlow分散並列処理のためのサービスですが、サーバにAnacondaが設置されているので基本的にデータの前処理、視覚化などを処理できます。
Ncloud TensorFlow Cluster の構成図
Ncloud TensorFlow Clusterの生成
Step 1. コンソールへアクセス
コンソールへアクセスして Server > Serverメニューを選択します。
① サーバを生成する際は [サーバを生成] ボタンをクリックします。
Step 2. サーバイメージの選択
TensorFlow サーバイメージを選択してサーバを生成します。
① Tensorflowイメージを選択します。
② 下の方へ移動して イメージから 'tensorflow-cluster-ubuntu-16.04-64-master'を選択します。そして [次へ] ボタンをクリックします。
Step 3. サーバの設定
ストレージ種類、サーバタイプ、料金制、Zoneを選択してサーバ名を入力します。
① Zoneを選択します。 'KR-1'と 'KR-2'の中から選択できます。
② サーバストレージの種類を選択します。
- 高性能I/Oが必要なサービスにはSSDを、一般的なサービスにはHDDを選択してください。但し、ブーティングストレージがSSDの場合のみ追加ストレージにSSDを利用できます。
③ 必要なサーバタイプを選択します。MasterサーバはStandard サーバタイプの中からのみ選択できます。
④ 料金制は月額料金制または時間料金制の中から選択できます。
⑤ サーバ台数を入力します。(Master サーバは一台が一つのクラスタになるため、一台を選択し、複数のクラスタが必要な場合だけ一台以上を選択してください。)
⑥ サーバ名を入力してから [次へ] ボタンをクリックします。
Step 4. 認証キーの設定
保有している認証キーがある場合’保有している認証キーを利用’を選択し、ない場合は以下の手続きで新たな認証キーを生成します。
① 新たな認証キーを生成を選択します。
② 認証キー名を入力します。
③ [認証キーを生成及び保存] ボタンをクリックしてローカルパソコンに認証キーファイルを保存します。
- 新たな認証キーを発行します。
- 保存した認証キーはお客様パソコンの安全な位置に保管してください。
- 認証キーは最初の管理者パスワードを呼び出す際に使います。
④ [次へ] ボタンをクリックします。
Step 5.ネットワークアクセスの設定
Ncloud Tensorflow Clusterは基本的にWorkerノード間の通信を通じてJobを実行します。
当該サービスにはこのような通信のために特定ポートを開いて使用することになりますが、これはNAVERクラウドプラットフォーム コンソールからACG登録をすることによって可能です。
Ncloud Tensorflow Cluster 使用のためのACG登録は大きく2つの方法があります。
① ユーザー ACG生成による登録
- '新規 ACGを生成' オプションを選択すると [+ACGを生成] ボタンが生成されます。
- [+ACGを生成] ボタンをクリックします。
- 'ACGを生成' のポップアップが表示されたらACG名を入力します。
- 下のACG設定を一つずつ入力して [+追加] ボタンを押して追加します。
プロトコル | アクセスソース | 許可ポート |
---|---|---|
TCP | 0.0.0.0 | 22 |
TCP | 0.0.0.0 | 2222 |
TCP | 0.0.0.0 | 3333 |
- [生成] ボタンをクリック
② ncloud-default-acgを使用
- ncpアカウントには基本でncloud-default-acgというACGが登録されています。これは保有しているノード範囲から全てのポートにアクセス可能な設定です。
- 当該ACGを使用するとNcloud Tensorflow Clusterから各 Workerノード間の通信が可能です。
次の画像は②番の方法を選択した例題です。
Step 6. 最終確認
設定した内容を最終確認します。
① サーバイメージ、サーバ、認証キー、ACGが正常に設定されたか確認します。
② 最終確認が終わったら [サーバを生成] ボタンをクリックします。
- サーバが生成されるまでは数分から数十分かかります。
サーバリストから確認
生成したサーバをリストから確認します。
① 生成したサーバがリストに表示されます。
② サーバが生成されてパッケージが設置完了し、サーバの状態が 運営中になるまでお待ちください。
ポートフォワーディングの設定及びアクセス
ポートフォワーディングの設定
ターミナルプログラム(Puttyなど)でサーバにアクセスするためにはポートフォワーディングを設定する必要があります。
① サーバリストに設定するサーバを選択して上段の [ポートフォワーディングを設定] をクリックします。
③ ポートフォワーディングの設定画面から外部ポート番号を設定します。外部ポート番号の入力範囲は1024~65,534で、サーバアクセスのための機能以外にサービス用途では使用できません。(内部ポート番号は22に定まっています。)
③ [追加] ボタンをクリックすると設定内訳が下段に追加され、[修正], [削除] ボタンをクリックして設定内訳を修正、削除できます。
④ [適用] ボタンをクリックすると設定した外部ポートにターミナルプログラムを利用してSSHアクセスできます。
アクセス及びtcm CLI命令語の使用
ターミナルプログラムで ssh root@[アクセス用パブリックIP] -p [ポートフォワーディングのポート番号]で下の画像のようにアクセスすると tcm CLI命令語を使用できます。
① Ncloud TensorFlow Cluster master サーバへアクセスします。
② tcm 命令語を実行すると使用可能なCLI commandリストが出力されます。
③ tcm info 命令語で以前生成した Clusterノード情報を確認できます。 (以前生成したClusterノードがない場合、Create命令語で新たに構成できます。)
詳しい tcm CLI命令語の使用法は ('Ncloud TensorFlow Cluster tcm 命令語使用ガイド')をご参照ください。