保貴2020.07.08この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。こんにちは網走の大村です。Seminarを視聴したのですが、HPC業界では一般的な用語・サービスが馴染みがなさすぎてわかりませんでした。基本的な用語を調べた備忘録です。並列コンピューティングで膨大な計算処理を実行する環境を簡単に構築できるサービスです。クラウドサービスの特徴を活かし計算処理をするマシンを自動で必要な台数起動し、計算が終わったら終了してくれます。コスト効率よく膨大な計算処理を並列で実行可能です。調べてみると計算量の多い処理をこなすための環境で巨大なスパコンか、多数のサーバ郡が一般的には必要ということがわかりました。ハイパフォーマンスという名前の通りです。Wikipediaより引用1980年代以前はベクトル計算機が主流であったが、近年ではスカラー計算機を超並列にする方向が盛んである。Cluster、HPCC(en:HPCC)という。面で優れ、比較的低コストであるため、並列コンピューティングによるHPCはスーパーコンピュータ業界に普及しつつあるweblio辞書より引用ハイパフォーマンスコンピューティングとは、単位時間当たりの計算量が非常に多い計算処理のことである。ハイパフォーマンスコンピューティングは、実施に膨大な時間やコストがかかる大規模な実験の代用や、不確定要素の多さから実験が困難な自然科学現象の解明、といった目的で行われることが多い。ジョブスケジューラ(ジョブ管理システム)ってなにジョブスケジューラは、ユーザが「ジョブ(計算するスクリプトやデータ)」をジョブスケジューラに投げると、ジョブスケジューラはジョブをキューとして管理し、よしなに計算処理してくれるマシンに仕事を割り当て効率よく管理してくれる仕組み。対応」と書いてありますが、私にはまったく馴染みのない言葉です。ここで挙げられた名前はグリッドコンピューティング分野で一般的なジョブスケジューラでした。ParallelClusterでは将来のリリースでSGEのサポートが削除される予定。ParallelClusterでは将来のリリースでTORQUEのサポートが削除される予定。ParallelClusterのデフォルトのジョブスケジューラはSlurmでした。ParallelClusterでのサポート終了予定だからそうなりますよね。ParallelClusterでも使えるので移行が容易につながるわけですね。JapanMPI/NCCL環境ってなにMPI/NCCL環境がセットアップ済みと申されましても、ありがたさをわかっていないです。Interface)複数のマシンにまたがって並列計算できる仕組み。GPU向けに最適化されたライブラリ。特定のGPUインスタンスを使った演算処理するときに使える環境がインストール済みということでした。Developerやってみた構築が簡単という触れ込みなのでとりあえず環境作って、なにかジョブを実行させてみましょう。ParallelClusterコマンドのインストールpclusterコマンドが使えるようになります。aws-parallelclusterバージョン確認。対話式でクラスタの設定ファイルを作成できます。クラスタとは最大何台のインスタンスを起動させて計算させるとか、計算処理させるマシン郡(計算ノード)の設定の単位です。configureリージョンを選択します。ap-northeast-1を選択しました。1EC2のキーペアを選択します。既存のキーペアが候補にでてきたのそのまま使いました。1ジョブスケジューラを選択します。デフォルトのslurmを使います。[slurm]:OSを選択します。linux2で計算ノードは常時0個で、最大10個起動するt2.microインスタンス。常時起動のマスタノードもt2.microで進めます。ParallelClusterのVPCを作ってくれるのでyes作ります。1が推奨構成のネットワーク構成でしたの1を選択して進めます。Japanクラスタの作成コンフィグ作成後、任意の名前をつけて自分用のクラスタを作成します。一発コマンド打って5〜10分待ちです。10.0.0.10作成できたか確認してみます。abashiri-clusterができていました。ParallelClusterを使ってみようマスタノードにログインします。[作成したクラスタ名]コマンドでsshと同じ感じで接続できます。~]$キューの確認BlackBeltと公式のユーザガイドもジョブスケジューラにSGEを使用しており、Slurmとコマンドに互換性はなくコマンド調べるところからはじまりました。Slurmはsqueueでキューを確認できます。NODELIST(REASON)ジョブの準備job.shというホスト名を返すだけのシェルスクリプトを作りました。[スクリプト名]コマンドでジョブとしてキューに入れます。JOBID2としてキューに登録されました。2キューに入っています。partitions)放置してたら終わってました。シェルスクリプトと同ディレクトリにslurm-[JOBID].outとして結果が返ってきてました。計算ノードでhostnameを実行して標準出力に返した結果がマスターノードにファイルとして保存される動きをしました。slurm-2.out計算ノードで自動的に起動してきたホスト名が書かれていました。再実行したら別の計算ノードが起動してくるので、出力結果のホスト名が変わるはずです。NODELIST(REASON)slurm-3.outが新たに生成されています。slurm-3.out先程とは違う計算ノードが起動してhostnameを叩いてきたのでしょう、ホスト名が変わっています。ParallelClusterを使ってなにかを実行するという目的は達成しました。slurm-3.outip-10-0-27-237クラスターの削除クラスタの後片付けもコマンドで一発です。今回の構成だとマスターノードとしてt2.microが常時起動しています。successfully.おわりに大量に計算ノード立ち上げてなにかしてみたいけど、並列プログラミングを覚えないとスパコンを活かした遊びができないと悟った。