hscPipe5 の実行環境¶
hscPipe を実行する計算機環境について、いくつか紹介します。
1. HSC データ解析用共同利用計算機(hanaco)¶
HSC データの解析には大量のディスク容量と高速の計算機環境が必要です。 そこで、ハワイ観測所では HSC データ解析専用の共同利用計算機(hanaco)を用意しています。 この計算機のスペックは以下の表をご覧ください。
スペック | |
---|---|
CPU | x86_64 |
コア数 | 32 |
メモリ | 256 GB |
HDD | 36 TB x2, 30TB x 1 |
申請¶
hanaco を使用して解析を行いたい場合は、申請フォーム から申請を行ってください。 もし 3 営業日を過ぎても連絡がない場合は、helpdesk までご連絡ください。 申請が承認された場合は、アカウント名が記載されたメールが届きます。
hanaco へのログイン¶
申請が承認された際に送付されるメールに記載がある通り、hanaco へは以下のようにログインしてください(なお、天文台外からログインする場合には別途 VPN の登録が必要です)。
# hanaco へのログイン
ssh -X -A xxxx@hanaco.ana.nao.ac.jp
hanaco の使用全般に関する注意点¶
- 基本概念hanaco は、データ取得後すぐにご自身で計算機環境が準備できない共同利用ユーザーに対し、 HSC pipeline を使用して生データから画像・カタログデータを生成するまで 自由にお使いいただける計算機です。そのため、画像・カタログデータ生成後のサイエンス解析には、 ご自身で用意した計算機環境を使用してください。また、基本的な使用期間は 6ヶ月 で、 この期間が過ぎるとデータが削除される場合があります(※1)。そのため、hanaco の使用開始から 6ヶ月の間に、ご自身の解析データのバックアップ環境を整えてください。 もしどうしてもご自身で計算機環境・データのバックアップ環境が準備できない場合は、 国立天文台の 共同利用計算機 をお使いいただくことも可能です。(※1:データの削除やディスクの整理作業を行う場合は、作業日の数週間前に 必ずご連絡 いたします。)
- 使用期限上記の通り基本的には 6ヶ月 としています。ただし、 データ解析が 6ヶ月で完了しなかった場合は、6ヶ月より長くお使いいただくことも可能です。 データ解析に時間がかかりそうな場合はあらかじめ helpdesk までご連絡ください。
- 作業ディレクトリHSC pipeline を使用した全ての解析は、ホームディレクトリ環境下ではなく /data/[ユーザー名]、/data2/[ユーザー名] もしくは、/data3/[ユーザー名] 以下で行ってください。 ホームディレクトリ下には重いファイルを置かないようお願いいたします。
# 自身の作業ディレクトリを /data に作成 # ユーザー名は hoge mkdir /data/hoge # 必要に応じてディレクトリのアクセス権は変更して下さい。
それぞれのデータディレクトリの使用容量を調べたいときはdf -h # 以下出力結果 Filesystem Size Used Avail Use% Mounted on /dev/sdc1 63G 40G 21G 66% / tmpfs 127G 24M 127G 1% /dev/shm /dev/sdc3 16G 44M 16G 1% /work /dev/sdd1 33T 13T 21T 37% /data /dev/sda1 28T 18T 9.4T 66% /data2 /dev/sdb1 33T 1.8T 31T 6% /data3
のように調べることができますので、空き容量に余裕のあるディレクトリで作業を行って下さい。 - 使用可能コア数使用可能コア数については 1 ユーザーあたりに特に制限を設けていませんが、top コマンドの出力やログイン中のユーザー数に注意してご利用下さい。
hanaco で hscPipe を使用する際の注意点¶
hanaco には /data/ana/hscpipe 以下に HSC pipeline のバージョン 3、4、5 がインストールされています。 最新が 5.4 です。
デフォルトで起動する pipeline のバージョンが知りたい場合は、ご自身のホームディレクトリの .bashrc をご確認ください。 もし、pipeline のバージョンを変えたい場合は .bashrc の中身を書き換えて下さい。 例えば、デフォルトが 4.0.5 で、5.4 に変更したい場合は、以下のように .bashrc を書き換えて下さい。
# .bashrc
...
# source /data/ana/hscpipe/4.0.5/bashrc <- 4.0.5 をコメントアウト
source /data/ana/hscpipe/5.4/bashrc
環境変数へのセットアップコマンドの登録は既に完了していますので、 自身のユーザーアカウントでログインし以下のコマンドを実行すれば HSC pipeline を使用できます。
# HSC pipeline のセットアップ
setup-hscpipe
2. 国立天文台共同利用計算機¶
国立天文台の共同利用計算機(以下、共同利用計算機)を使って HSC データの解析を行うことができます。 ここでは共同利用計算機を使って解析を行う際の注意点を紹介します。 共同利用計算機の基本的な使用ルールは各自 ユーザーズガイド で確認してください。
Note
以降の情報は以前のパイプラインマニュアルから転載したものです。現在、共同利用計算機はリプレイス作業が行われており、システム移行後に情報を更新する予定です。
準備¶
まず最初に共同利用計算機のアカウントを作ります。 申請は データセンターの利用申請 から行ってください。
作業用ディスク¶
共同利用計算機では 16 TB の作業用大容量ディスクが用意されています。 作業用ディスクは /mfst[01-04][a-e] という名前がついています。 このディスク以下に自身のアカウント名のディレクトリを作成し、その中で解析を行ってください。 各ファイルシステムの空き容量やステイタスは Working (Operational) Status of Data Analysis System から確認できます。
# 使用例(ユーザー名 hoge の場合)
mkdir /mfst01b/hoge
Warning
HSC pipeline を使用したデータ解析では大量のディスク容量が必要になります。 共同利用計算機は 1 人のユーザーが占有できるわけではないので、必ず事前に ディスクの空き容量 を確認し、最も空いている作業用ディスクで解析を行ってくだい。
HSC pipeline のインストール¶
共同利用計算機では Red Hat Enterprise Linux 6 の OS を使用しています(2017年11月現在)。 hscPipe5 のインストール方法 ページから Cent OS 6 のバイナリパッケージを選択してインストールします。
しかし、共同利用計算機からバイナリ配布所のサーバーへは直接アクセスできません。 そのため、次のいずれかの方法を使って HSC pipeline のバイナリパッケージとアストロメトリ用カタログファイルをダウンロードしてください。
- 自身の計算機に一度ダウンロードし、そのファイルをscpで共同利用計算機にコピーする
- 自身の計算機を経由して計算機に直接ダウンロードする
# 例えば、2. の場合のコマンドは以下です
#
# wget の場合
wget https://[pipeline URL] --no-check-c -O - | ssh hoge@anam01.ana.nao.ac.jp:/mfst01b/hoge/ 'cat > pipe.tar.xz'
# curl の場合
curl https://[pipeline URL] --insecure https://[pipeline URL] | ssh hoge@anam01.ana.nao.ac.jp:/mfst01b/hoge/ 'cat > pipe.tar.xz'
HSC pipeline を実行するサーバーとキュー¶
共同利用計算機では、bapm サーバ q16m を使い、/tmp[A,B] というディスク作業領域で解析を実行すると比較的速く処理が終わります。 /tmp[A,B] は解析サーバ(anam)からは /wbm[01-06][a,b] として “Read-Only” で参照できます。 /tmp[A,B] 領域に解析に利用するファイルを置き、 自分の作業ディレクトリから PBS スクリプトで /tmp[A,B] 下にあるファイルを指定しバッチ処理を実行してください。 共同利用計算機における構成機器やバッチの詳細は こちら をご覧ください。
PBS バッチ処理¶
共同利用計算機では PBS というバッチ処理システムが組み込まれています。中でも、コア数が最多の q16m キューでは、 最大 1 ノード 16 コアまで使用してバッチ処理を実行できます。 HSC pipeline のいくつかのコマンドでバッチ処理を実行するには、そのコマンドが書き込まれた PBS バッチスクリプトを準備する必要があります。
HSC pipeline のコマンドでバッチ処理が可能なものは constructBias.py, constructDark.py, constructFlat.py, constructFringe.py singleFrameDriver.py, coaddDriver.py, multiBandDriver.py です。 今回はこのうち singleFrameDriver.py で PBS バッチスクリプトを準備してみます。
# コマンドを dry-run で実行してバッチスクリプトを作る
singleFrameDriver.py /mfst01b/hoge/hsc --calib /mfst01b/hoge/hsc/CALIB --output /tmpB/hoge --id filter=HSC-I visit=902798..902808:2 --config processCcd.isr.doFringe=False --dry-run --clobber-config
# オプション:
# --output :今回は、処理を早く終わらせるために /tmp[A,B] というディスク作業領域を出力先として指定
# 代わりに --rerun [rerun] としても可能(処理速度が遅くなるだけ)
# --dry-run :コマンドを空実行。実行するための PBS スクリプトが生成される
# --clobber-config :同じ rerun 情報を引き継がずコマンドを実行
上記例のようにコマンドに –dry-run を付加すると、自身が実行したコマンドのバッチスクリプトの結果が /var/tmp/ 以下に出力されます。 この出力結果を自身の作業ディレクトリにコピーし、中身を編集すれば PBS バッチスクリプトの完成です。
# --dry-run の出力結果を作業ディレクトリにコピー(移動しても可)
cp /var/tmp/tmph0gE /mfst01b/hoge/work/
# tmph0gE(PBS バッチスクリプト)の中を編集する
# バッチスクリプトにはデフォルトの PBS 指示のコメントがあらかじめ書き込まれています(# 箇所)
# こちらを全て削除して、以下に書き直してください
:
:
#!/bin/bash
#PBS -m abe
#PBS -q q16m
#PBS -l select=1:ncpus=16:mpiprocs=16:mem=20gb
#PBS -l walltime=336:00:00
#PBS -M hoge@nao.ac.jp
# バッチ処理の進行を確認用 log file の作成のため
# 上記の PBS 指示コメントの後で以下の記述も追加してください
:
:
{
(pipelineのコマンドに関する内容が記述されている箇所)
} &> /mfst01b/hoge/work/tmph0gE.log
PBS 指示の詳しいオプションは 共同利用計算機のページ を参照してください。 ここで重要なのは
- -q q16m で q16m のキューを指定すること
- -l select=1:ncpus=16:mpiprocs=16:mem=20gb で 1 ノード 16 コアの使用を設定すること
- -l walltime=336:00:00 でジョブ経過時間の最大時間を最大に設定しておくこと
です。
PBS バッチスクリプトが準備できたら、いよいよ実行です。スクリプトを実行するコマンドは以下です。
# PBS バッチスクリプトの投入
qsub -V /mfst01b/hoge/work/tmphOgE
このバッチスクリプトの経過は tmphOgE.log に書き出されており、例えば以下の方法で確認することができます。
# log file を更新させながらターミナルに表示
tail -f tmphOgE.log
3. PBS 以外のバッチ処理システム¶
バッチ処理システムは、PBS 以外にも様々なシステムがあります。HSC pipeline では PBS システム用のバッチ処理がデフォルトの設定とされていますが、オプションで他のバッチ処理システムを指定することができます。 自身が使用する計算機環境で使われているシステムを理解し、HSC pipeline のバッチ処理を使用してください。
# 例えば SLURM で singleFrameDriver.py を実行する場合
singleFrameDriver.py ~/hsc --calib ~/hsc/CALIB --rerun test --id filter=HSC-I visit=902798..902808:2 --config processCcd.isr.doFringe=False --batch-type=slurm
# オプション:
# --batch-type :使用するバッチ処理システムを指定。{slurm,pbs,smp} から選択できる。詳細は singleFrameDriver.py --help で確認できる。