Web browser経由で対話的な操作に加え、コマンドライン経由でSimulator, ParameterSet, Runの作成をするためのプログラム(CLI)が用意されています。 対話的な操作ではできないような多数のParameterSetやRunを一度に作成したい場合に有効であるだけでなく、他のプログラムからOACISを操作する用途にも利用可能です。 ここではCLIの基本的な使い方を説明していきます。
CLIで利用可能な操作は以下の通りです。
OACISのチェックアウトディレクトリ以下の bin/oacis_cli に引数を渡して実行する操作を指定します。 例えば
./bin/oacis_cli usageこのドキュメント内ではOACISのチェックアウトディレクトリから実行することを想定してコマンド例を示すが、どのディレクトリから実行しても構いません。
CLIの各コマンドの使用方法を表示する
./bin/oacis_cli usage登録済みHost一覧の情報を取得する
./bin/oacis_cli show_host -o host.json| Option | alias | description | required? | 
|---|---|---|---|
| –output | -o | output file path | yes | 
[
  {
    "id": "522fe89a899e53ec05000005",
    "name": "localhost",
    "hostname": "localhost",
    "user": "murase"
  }
]create_simulatorの時に使用するsimulator.jsonファイルのテンプレートを作成する
./bin/oacis_cli simulator_template -o simulator.json| Option | alias | description | required? | 
|---|---|---|---|
| –output | -o | output file path | yes | 
Simulatorの属性情報のテンプレートを出力する
{
  "name": "a_sample_simulator",
  "command": "/Users/murase/program/oacis/lib/lib/samples/tutorial/simulator/simulator.out",
  "support_input_json": false,
  "support_mpi": false,
  "support_omp": false,
  "print_version_command": null,
  "pre_process_script": null,
  "executable_on_ids": [],
  "parameter_definitions": [
    {"key": "p1","type": "Integer","default": 0,"description": "parameter1"},
    {"key": "p2","type": "Float","default": 5.0,"description": "parameter2"}
  ]
}Simulatorを新規作成する
./bin/oacis_cli create_simulator -h host.json -i simulator.json -o simulator_id.json| Option | alias | description | required? | 
|---|---|---|---|
| –host | -h | executable hosts | no | 
| –input | -i | input file path | yes | 
| –output | -o | output file path | yes | 
新規作成されたsimulatorのidをObjectとしてJSON形式で出力する。
{
  "simulator_id": "52b3bcd7b93f964178000001"
}create_parameter_setsの時に使用するparameter_sets.jsonファイルのテンプレートを作成する
./bin/oacis_cli parameter_sets_template -s 5361e421b93f96bbc500000e -o parameter_sets.json| Option | alias | description | required? | 
|---|---|---|---|
| –simulator | -s | simulator | yes | 
| –output | -o | output file path | yes | 
simulatorはSimulatorのIDを渡すか、create_simulator で出力されるJSON形式のファイルを指定する。
ParameterSet作成時に使用するパラメータ指定ファイルのテンプレートを出力する。
[
  {"p1":0,"p2":5.0}
]ParameterSetを新規作成する
./bin/oacis_cli create_parameter_sets -s simulator_id.json -i parameter_sets.json -o parameter_set_ids.json./bin/oacis_cli create_parameter_sets -s 5361e421b93f96bbc500000e -i '{"p1":1,"p2":[2.0,3.0}' -o parameter_set_ids.json| Option | alias | description | required? | 
|---|---|---|---|
| –simulator | -s | simulator | yes | 
| –input | -i | input json | yes | 
| –run | -r | run-option json | yes | 
| –output | -o | output file path | yes | 
{
  "num_runs":1,"mpi_procs":1,"omp_threads":1,"priority":1,
  "submitted_to":"522fe89a899e53ec05000005",
  "host_parameters":{"nodes":"1","ppn":"1","walltime":"10:00"}
}新規作成されたParameterSetのidをObjectの配列としてJSON形式で出力する。
[
  {"parameter_set_id":"52b3ddc7b93f969b8c000001"}
]同じParameterの値を持つParameterSetが既に存在する場合には、新規にParameterSetを作成せずに既存のParameterSetのidを出力として返す。エラーにはならない。
指定されたSimulator配下のParameterSetを一括削除する
./bin/oacis_cli destroy_parameter_sets -s simulator_id.json./bin/oacis_cli destroy_parameter_sets -s 5361e421b93f96bbc500000e| Option | alias | description | required? | 
|---|---|---|---|
| –simulator | -s | simulator | yes | 
create_runs, create_analyses の時に使用するjob_parameter.jsonファイルのテンプレートを作成する
./bin/oacis_cli job_parameter_template -h host_id -o job_parameter.json| Option | alias | description | required? | 
|---|---|---|---|
| –host_id | -h | host or host_group id (string) | no | 
| –output | -o | output file path | yes | 
host idはHostのidを文字列で指定する。指定が無い場合はmanualでのジョブを投入する。
Run作成時に使用するジョブパラメータ指定ファイルのテンプレートを出力する。
{
  "submitted_to": "522fe89a899e53ec05000005",
  "host_parameters": {
    "nodes": "1",
    "ppn": "1",
    "walltime": "10:00"
  },
  "mpi_procs": 1,
  "omp_threads": 1,
  "priority": 1
}Runを新規作成する
./bin/oacis_cli create_runs -p parameter_set_ids.json -j job_parameter.json -n 1 -o run_ids.json| Option | alias | description | required? | 
|---|---|---|---|
| –parameter_sets | -p | parameter set id file | yes | 
| –job_parameters | -j | job parameter file | yes | 
| –number_of_runs | -n | number of runs (Integer) | no | 
| –output | -o | output file path | yes | 
RunのidをObjectの配列としてJSON形式で出力する。 新規作成されていないRunについても、各ParameterSetごとにnで指定された数の分だけRunのidを出力する。
[
  {"run_id":"52b3eaebb93f96933f000001"}
]既に指定された数のRunが存在する場合には、新規にRunを作成せずに既存のRunのidを出力として返す。エラーにはならない。
Runの実行状況を確認する
./bin/oacis_cli run_status -r run_ids.json| Option | alias | description | required? | 
|---|---|---|---|
| –run_ids | -r | run id file | yes | 
run_idsファイルは create_runs で出力されるJSON形式のファイルを指定する
指定されたRunのステータスを集計し、標準出力に表示する
{
  "total": 1,
  "created": 0,
  "submitted": 0,
  "running": 0,
  "failed": 1,
  "finished": 0
}Runを削除する
../bin/oacis_cli destroy_runs -s 5226f430899e532cf6000008 -q status:failed| Option | alias | description | required? | 
|---|---|---|---|
| –simulator_id | -s | simulator id or path to simulator_id.json | yes | 
| –query | -q | query for runs(Hash) | yes | 
../bin/oacis_cli destroy_runs -s 5226f430899e532cf6000008 -q simulator_version:1.0.0../bin/oacis_cli destroy_runs -s 5226f430899e532cf6000008 -q simulator_version:../bin/oacis_cli destroy_runs -s 5226f430899e532cf6000008 -q status:createdIDを指定してRunを削除する
./bin/oacis_cli destroy_runs_by_ids 52f9c5b4b93f963b8f000021 52f9c53db93f96a22200001dなし
./bin/oacis_cli destroy_runs_by_ids 52f9c5b4b93f963b8f000021指定したRunを削除して、同じ設定で新しいRunを再作成する
例えば、ジョブを大量に流したが古いコードにバグが見つかり再実験が必要になった場合などに使える。 以前のRunと同じジョブパラメータ(投入ホスト、MPIプロセス数、OMPスレッド数、ホストパラメータ)で実行される。 ただし、乱数の種 _seed は変更される。
../bin/oacis_cli replace_runs -s 5226f430899e532cf6000008 -q simulator_version:0.0.1| Option | alias | description | required? | 
|---|---|---|---|
| –simulator_id | -s | simulator id or path to simulator_id.json | yes | 
| –query | -q | query for runs(Hash) | yes | 
simulator_versionが”1.0.0”のRunを削除し、同じ設定で新しいRunを再作成する。
../bin/oacis_cli replace_runs -s 5226f430899e532cf6000008 -q simulator_version:1.0.0IDを指定してRunを置換する
./bin/oacis_cli replace_runs_by_ids 52f9c5b4b93f963b8f000021 52f9c53db93f96a22200001dなし
./bin/oacis_cli replace_runs_by_ids 52f9c5b4b93f963b8f000021create_analyzerの時に使用するanalyzer.jsonファイルのテンプレートを作成する
./bin/oacis_cli analyzer_template -o analyzer.json| Option | alias | description | required? | 
|---|---|---|---|
| –output | -o | output file path | yes | 
Analyzerの属性情報のテンプレートを出力する
{
  "name": "a_sample_analyzer",
  "type": "on_run",
  "auto_run": "no",
  "files_to_copy": "*",
  "description": "",
  "command": "gnuplot /Users/murase/program/oacis/lib/samples/tutorial/analyzer/analyzer.plt",
  "support_input_json": true,
  "support_mpi": false,
  "support_omp": false,
  "print_version_command": null,
  "pre_process_script": null,
  "executable_on_ids": [],
  "parameter_definitions": [
    {"key": "p1","type": "Integer","default": 0,"description": "parameter1"},
    {"key": "p2","type": "Float","default": 5.0,"description": "parameter2"}
  ]
}Analyzerを新規作成する
./bin/oacis_cli create_analyzer -h host.json -s simulator_id.json -i analyzer.json -o analyzer_id.json| Option | alias | description | required? | 
|---|---|---|---|
| –host | -h | executable hosts | no | 
| –simulator | -s | analyzer’s simulator | yes | 
| –input | -i | input file path | yes | 
| –output | -o | output file path | yes | 
新規作成されたanalyzerのidをObjectとしてJSON形式で出力する。
{
  "analyzer_id": "52b3bcd7b93f964178000002"
}create_analysesの時に使用するanalysis_parameters.jsonファイルのテンプレートを作成する
./bin/oacis_cli analyses_template -a 5226f430899e532cf6000009 -o analysis_parameters.json| Option | alias | description | required? | 
|---|---|---|---|
| –analyzer_id | -a | analyzer id | yes | 
| –output | -o | output file path | yes | 
analyzer_id はIDの文字列を指定する。
Analysis作成時に使用するパラメータ指定ファイルのテンプレートを出力する。
[
  {"parameter1":50,"parametr2":1.0}
]Analysisを新規作成する
./bin/oacis_cli create_analyses -a 5226f430899e532cf6000009 -i analysis_parameters.json -j job_parameter.json -o analysis_ids.json| Option | alias | description | required? | 
|---|---|---|---|
| –analyzer | -a | analyzer id | yes | 
| –input | -i | input file path | no | 
| –job_parameters | -j | job parameter file | yes | 
| –output | -o | output file path | yes | 
| –first_run_only | only on first runs | no | |
| –target | -t | on targets(parmeter_set_ids.json or run_ids.json) | no | 
  [
    {"analysis_id":"52b3eaebb93f96933f00000d"}
  ]./bin/oacis_cli create_analyses -a 5226f430899e532cf6000009 -i analysis_parameters.json -j job_parameter.json -o analysis_ids.json --first_run_only./bin/oacis_cli create_analyses -a 5226f430899e532cf6000009 -i analysis_parameters.json -j job_parameter.json -o analysis_ids.json -t parameter_set_ids.json./bin/oacis_cli create_analyses -a 5226f430899e532cf6000009 -i analysis_parameters.json -j job_parameter.json -o analysis_ids.json -t run_ids.jsonAnalysisの実行状況を確認する
./bin/oacis_cli analysis_status -a analysis_ids.json| Option | alias | description | required? | 
|---|---|---|---|
| –analysis_ids | -a | analysis id file | yes | 
analysis_idsファイルは create_analyses で出力されるJSON形式のファイルを指定する
指定されたAnalysisのステータスを集計し、標準出力に表示する
  {
    "total": 100,
    "created": 50,
    "running": 0,
    "failed": 1,
    "finished": 49
  }Analysisを削除する
../bin/oacis_cli destroy_analyses -a 5226f430899e532cf6000009 -q status:failed analyzer_version:v0.1.0| Option | alias | description | required? | 
|---|---|---|---|
| –analyzer_id | -a | analyzer id | yes | 
| –query | -q | query for analyses(Hash) | yes | 
statusが “failed” (解析失敗)かつanalyzer_versionが “nil”のAnalysisを削除する
../bin/oacis_cli destroy_analyses -a 5226f430899e532cf6000009 -q status:failed analyzer_version:IDを指定してAnalysisを削除する
./bin/oacis_cli destroy_analyses_by_ids 52f9c5b4b93f963b8f000021 52f9c53db93f96a22200001dなし
./bin/oacis_cli destroy_analyses_by_ids 52f9c5b4b93f963b8f000021指定したAnalysisを削除して、同じ設定で新しいAnalysisを再作成する
../bin/oacis_cli replace_analyses -a 5226f430899e532cf6000009 -q status:finished analyzer_version:v0.1.0| Option | alias | description | required? | 
|---|---|---|---|
| –analzyer_id | -a | analyzer id | yes | 
| –query | -q | query for analyses(Hash) | yes | 
../bin/oacis_cli replace_analyses -a 5226f430899e532cf6000009 -q status:finishedIDを指定してAnalysisを置換する
./bin/oacis_cli replace_analyses_by_ids 52f9c5b4b93f963b8f000021 52f9c53db93f96a22200001dなし
./bin/oacis_cli replace_analyses_by_ids 52f9c5b4b93f963b8f000021指定したSimulatorに、新しいParameterを追加する。
既存のSimulatorを拡張したいが、既存のデータを破棄したくない場合に使用する。
./bin/oacis_cli append_parameter_definition -s 522442de899e53dd8d000034 -n "new_param" -t Float -e 0.0| Option | alias | description | required? | 
|---|---|---|---|
| –simulator_id | -s | simulator id or path to simulator_id.json | yes | 
| –name | -n | name of the new parameter | yes | 
| –type | -t | type of the new parameter | yes | 
| –default | -e | default value of the new parameter | yes | 
“p3” という名前の整数型のパラメータ(デフォルト値 0)を追加する。
./bin/oacis_cli append_parameter_definition -s 522442de899e53dd8d000034 -n p3 -t Integer -e 0既に作成済みのRunについては更新されない。