計算機に(パラメータを色々振りながら)ジョブを投げるシェルスクリプトです。(このREADMEの下の方にデータの回収の仕方も書いてます)
思想として、
- コードを保管するディレクトリと数値計算結果を格納するディレクトリは分けた方が良い。
- 数値計算結果を保管するディレクトリに、実行ファイルと実行パラメータのファイルも保管しておいた方が後々どういう計算だったか分かりやすい
という2点の下に作ってあります。 中身でやっている事としては、
- 計算結果を格納する./Data/${dir}(ディレクトリの名前にはパラメータ等を付けておく。例えばdir=Phase_T001_H008)というディレクトリを作る。ここでディレクトリ名にはパラメータの値を付けておくと後で分かりやすい。(僕の場合は日付も入れてます)
- ./Data/${dir}/の中に実行するファイル(~.jl)をコピーする。(こうしておくと、コードを保管するディレクトリとは別に、当時の実行ファイルが保存されるので混乱が起きにくい。コードは日々書き換わるものなので、、)
- ./Data/${dir}/の中に実行するjob.shファイルを作成する。(cat >> 以下)これでさらにディレクトリの中に当時実行したパラメータの情報も入る。 そこのディレクトリからjobを投げる って感じです。多分一番いい感じでデータが整理できます。
ちなみに計算結果の回収にはWSLを入れている人、もしくはMacを使用している人なら「rsync」というコマンドが便利です。 例えば、
rsync -r -av [email protected]:./Data/ /home/ymichishita/Document/Data/
とlocal(自分の)PCで打つと、計算機の中の./Data/以下の中身を、localのPCの/home/~/Data/以下に同期してくれます。便利です。(-r はディレクトリごと同期するオプションで、 -av は同期した時の変更点をリスト表示してくれます。) ちなみに僕はコードファイルを転送する時にもこれを使ってます。例えばこんな感じ。(僕はCodesというディレクトリを作り、その中にそれぞれの言語のディレクトリを作ってます)
rsync -av -r /home/ymichishita/Document/Codes/julia/ [email protected]:./Codes/julia/