そもそもスパコンでは、「全ての計算ノードとインタラクティブノードで大容量ストレージシステムを共有する」ので、使用する場面は限られるかもしれない。今回の場合、ルールが完結しているゲーム(囲碁)の強化学習で自動的に学習ファイルを大量に生成させる必要があり、その管理のためにMySQLを用いたという経緯がある。daemonを立ち上げるためにbackgroundでコンテナを動かす必要がある。${MYSQL_ADDR_FILE})。スパコンのストレージは全ノード共有なので、このipアドレスが書き込まれたファイルは全ノードで共有されることになり、ipアドレスが全ノードに伝達されることになる。${JOBS_PATH}/mysql_client/ping(簡易的にあUptimeが存在するかどうかをチェックしている)でエラーステータスを確認し、正常ならば次に進めるようにしている。testCの条件でそれぞれプログラムを実行したい)場合。(testCの条件:100ノード)の順にシーケンシャルに実行できる。PREV_JOB_ID=$CUR_JOB_IDdoneとする。このようにすれば、前の処理が終われば、次の処理に移行するみたいな事ができるようになる。-hold_jidoptionについて。${PREV_JOB_ID}として、引数に数字を指定する。この場合、もし今queueに積まれているjobの中にPREV_JOB_IDがなければ無視される。最初にPREV_JOB_ID=1とする5ことで、job_id=1のjobが存在しないことを仮定しているので、0番目のqsub実行時でもうまくいく。シーケンシャルな実行はかなり便利で、他にも最初期に一度だけ色々なファイルのinitializationをしたい場合などに使える。1000になっている。普通、-hold_jidなんてものを用いずにqsub実行する分には上限数1000は十分すぎるほど大きいが、この小節のような要求があった場合は、1000以上必要になるかもしれない。自分の場合はABCIの管理者に上限を増やしてください的なお願いをしたが、ちょっと増やすのは他のお客様に迷惑がかかるのでできない、と断られてしまった。自分の場合はフラグを書き込むファイルにて管理していた。exec内部で起動するプログラムのサイクルを5~10分程度の用に短くすれば、FILE="~/switch"の内容を(インタラクティブノードで)1に変更するだけで./programで生成させるファイルを壊さずに、このノードを終了させることができる。shutdown的なことができる。予約ノードを利用する利点としては、30日間連続で専有できることである。一方で、Spotでは72時間の連続利用に限られる(だから価格がある程度安い)。自身のプロジェクトでは、72時間以内で(もう少しきつく60時間以内で)ノードを終わらせて、再度起動するように工夫していた。"+%s"の結果を用いるとか)、"ジョブをスキップしたい"の実装のようにループで定期的に確認するようにするのが良いだろう。idを複数管理する必要がある。普通の人は33ノード以上を使用すること場面はかなり限られるかもしれないが、もしその必要性に駆られた場合。scriptで無理やりやったので実装が汚い&もうちょっといい実装がありそうなのを承知で。0}たま~に予約時に予約できないノードが発生する場合があることが確認できた7。その処理も追加で書いているため、get_ar_infoが複雑になっている。-xpathとsedで頑張ってparseしてました。./programnext_ar_idqsub_fullは「複数条件でプログラムを動かしたい」の小節で定義されている独自コマンド。予約idのノードを用いるみたいな少しトリッキーなことを行っている。CUDA_VISIBLE_DEVICES=${number}をこの様に用いれば良さげ。./param_gen"この様なスクリプトをバックグラウンドで4つ実行すればよい。CUDA_VISIBLE_DEVICES_ID=0,1,2,3のようにしておく。予約ノード以外のノードが使用されているかをチェックする。qrstatを用いて、下のget_nonreserved_running_instancesコマンドを実行すると良い。GPUのリソースを2ヶ月半も使用、専有していると、全能感を味わえる。環境構築が割と特殊(C++のtensorflowの用意)だったので、スクラッチでインフラのための環境構築を実装し、各ノードの管理もスクラッチで実装した。GPUの性能が極めて高いため、1ノードでもかなりのことができる。ノード数が莫大になる(数千~数万台)事による従来のスパコン特有の面倒な問題を、GPUスパコンを用いることで回避することができる。人は平日の10時から6時までしか働けないが、コンピュータは(メンテナンスを除けば)365日24時間働かせられるので、コンピュータの部下をたくさん抱えてる気持ちになる(未来に生きてる感じがする)。ABCIは現時点ではスパコンの京よりは知名度が低いですが、2019.6月時点で(公開されている中で)日本最速のスパコン8ですし、法人での申込が可能9で、他のクラウドベンダーから借りる場合よりも格安で使用できる10ので、一度お試しでも使ってみてはいかがでしょうか。GPUを)用いて環境構築したお話です。run実行時に実行される。↩job_idは1から始まるようだ。↩Reference[1]のqrstatの小節の最後の結果を見てください。「ABCIを使うにあたってのメリット・デメリット」を参照のこと。callの内部実装の違い(xv6を例に)月別アーカイブはてなブログをはじめよう!knknkn11626さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。