HSC pipeline の実行環境

HSC pipeline を実行する計算機環境について、いくつか具体例を交えて紹介します。


HSC データ解析用共同利用計算機(hanaco)

HSC データの解析には大量のディスク容量と高速の計算機環境が必要です。そこで、ハワイ観測所では HSC データ解析専用の共同利用計算機(hanaco)を用意しています。この計算機のスペックは以下の表をご覧ください。

  スペック
CPU x86_64
コア数 32
メモリ 256 GB
HDD 36 TB x2

0. 申請

hanaco を使用して解析を行いたい場合は、申請フォーム から申請を行ってください。 もし 3 営業日を過ぎても連絡がない場合は、yukie.oishi@nao.ac.jp までご連絡ください。 申請が承認された場合は、アカウント名が記載されたメールが届きます。

1. hanaco のログイン

hanaco へは以下のようにログインしてください(なお、天文台外からログインする場合には、 別途 VPN の登録が必要です)。

# hanaco へのログイン
ssh -A -X hoge@hanaco.ana.nao.ac.jp

2. hanaco の使用全般に関する注意点

  • 基本概念
    hanaco は、データ取得後すぐにご自身で計算機環境が準備できない共同利用ユーザーに対し、 HSC pipeline を使用して生データから画像・カタログデータを生成するまで 自由にお使いいただける計算機です。そのため、画像・カタログデータ生成後のサイエンス解析には、 ご自身で用意した計算機環境を使用してください。また、基本的な使用期間は 6ヶ月 で、 この期間が過ぎるとデータが削除される場合があります(※1)。そのため、hanaco の使用開始から 6ヶ月の間に、ご自身の解析データのバックアップ環境を整えてください。 もしどうしてもご自身で計算機環境・データのバックアップ環境が準備できない場合は、 国立天文台の 共同利用計算機 をお使いいただくことも可能です。
    (※1:データの削除やディスクの整理作業を行う場合は、作業日の数週間前に 必ずご連絡 いたします。)
  • 使用期限
    上記の通り基本的には 6ヶ月 としています。hanaco のディスク容量的に余裕がある場合や、 データ解析が 6ヶ月で完了しなかった場合は、6ヶ月より長くお使いいただくことも可能です。 データ解析に時間がかかりそうな場合はあらかじめ yukie.oishi@nao.ac.jp までご連絡ください。
  • 作業ディレクトリ
    HSC pipeline を使用した全ての解析は、ホームディレクトリ環境下ではなく /data/[ユーザー名] もしくは /data2/[ユーザー名] 以下で行ってください。
    # 自身の作業ディレクトリを /data に作成
    # ユーザー名は hoge
    mkdir /data/hoge
    
    それぞれのデータディレクトリの使用容量を調べたいときは
    df -h
    # 以下出力結果
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/sdb1        63G   45G   16G  75% /
    tmpfs           127G   33M  127G   1% /dev/shm
    /dev/sdb3        16G   44M   16G   1% /work
    /dev/sdc1        33T   31T  1.9T  95% /data
    /dev/sda1        28T  1.1T   27T   4% /data2
    
    のように調べることができますので、空き容量に余裕のあるディレクトリで作業を行って下さい。

3. HSC pipeline の注意点

hanaco には /data/ana/hscpipe 以下に HSC pipeline のバージョン 3.8.13.8.54.0.14.0.24.0.44.0.5 がインストールされています。最新が 4.0.5 です。 4.0.2 以降は i2 フィルタに対応しており、4.0.5 以降は r2 バンドに対応しています。

Warning

2016年 6月以降に観測されたデータを解析する場合、バージョン 4.0.4 以降を使用しないと解析ができませんのでご注意下さい。

デフォルトで起動する pipeline のバージョンが知りたい場合は、御自身のホームディレクトリの .bashrc をご確認ください。 もし、pipeline のバージョンを変えたい場合は .bashrc の中身を書き換えて下さい。 例えば、デフォルトが 4.0.2 で、4.0.5 に変更したい場合は、以下のように .bashrc を書き換えて下さい。

# .bashrc
...
# source /data/ana/hscpipe/4.0.2/bashrc <- 4.0.2 をコメントアウト
 source /data/ana/hscpipe/4.0.5/bashrc

環境変数へのセットアップコマンドの登録は既に完了していますので、 自身のユーザーアカウントでログインし以下のコマンドを実行すれば HSC pipeline を使用できます。

# HSC pipeline のセットアップ
setup-hscpipe

# アストロメトリカタログのセットアップ
setup astrometry_net_data sdss-dr9-fink-v5b

また、もし自身で HSC pipeline のコマンドを書き換えてユーザー定義のコマンドとして使用したい場合は、 関係するソースを含むディレクトリを自身の作業ディレクトリにコピーし、コピーしたコマンドを編集してください。 ユーザー定義のコマンドを使用する場合の具体的な手順を以下に記します。

# ソースを含むディレクトリを自身の作業ディレクトリにコピーする
# ソースを含む元のディレクトリは /data/ana/hscpipe/3.8.5/Linux64/pipe_tasks/HSC-3.9.0
mkdir -p /data/hoge/ana/hscpipe/3.8.5/Linux64/pipe_tasks
cp -r /data/ana/hscpipe/3.8.5/Linux64/pipe_tasks/HSC-3.9.0 /data/hoge/ana/hscpipe/3.8.1/Linux64/pipe_tasks

## ソースコードの編集 ##

# ユーザー定義のコマンドをセットアップし、コマンド内のパラメータの変更を反映させる
# 実行毎に毎回以下のコマンドは行う
setup -jr /data/hoge/ana/hscpipe/3.8.5/Linux64/pipe_tasks/HSC-3.9.0

国立天文台共同利用計算機

国立天文台の共同利用計算機(以下、共同利用計算機)を使って HSC データの解析を行うことができます。 ここでは共同利用計算機を使って解析を行う際の注意点を紹介します。 共同利用計算機の基本的な使用ルールは各自 ユーザーズガイド で確認してください。

0. 準備

まず最初に共同利用計算機のアカウントを作ります。 申請は データセンターの利用申請 から行ってください。

1. 作業用ディスク

共同利用計算機では 16 TB の作業用大容量ディスクが用意されています。 作業用ディスクは /mfst[01-04][a-e] という名前がついています。 このディスク以下に自身のアカウント名のディレクトリを作成し、その中で解析を行ってください。 各ファイルシステムの空き容量やステイタスは こちら から確認できます。

# 使用例(ユーザー名 hoge の場合)
mkdir /mfst01b/hoge

Warning

HSC pipeline を使用したデータ解析では大量のディスク容量が必要になります。 共同利用計算機は 1 人のユーザーが占有できるわけではないので、必ず事前に ディスクの空き容量 を確認し、最も空いている作業用ディスクで解析を行ってくだい。

2. HSC pipeline のインストール

共同利用計算機では Red Hat 6 の OS を使用しています(2015年6月現在)。 HSC pipeline のインストール ページから Cent OS 6 のバイナリパッケージを選択してインストールします。

しかし、共同利用計算機からバイナリ配布所のサーバーへは直接アクセスできません。 そのため、次のいずれかの方法を使って HSC pipeline のバイナリパッケージとアストロメトリ用カタログファイルをダウンロードしてください。

  1. 自身の計算機に一度ダウンロードし、そのファイルをscpで共同利用計算機にコピーする
  2. 自身の計算機を経由して計算機に直接ダウンロードする
# 例えば、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'

3. 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] 下にあるファイルを指定しバッチ処理を実行してください。 共同利用計算機における構成機器やバッチの詳細は こちら をご覧ください。

4. PBS バッチ処理

共同利用計算機では PBS というバッチ処理システムが組み込まれています。中でも、コア数が最多の q16m キューでは、 最大 1 ノード 16 コアまで使用してバッチ処理を実行できます。 HSC pipeline のいくつかのコマンドでバッチ処理を実行するには、そのコマンドが書き込まれた PBS バッチスクリプトを準備する必要があります。

HSC pipeline のコマンドでバッチ処理が可能なものは reduceBias.py, reduceDark.py, reduceFlat.py, reduceFrames.py, stack.py, multiBand.py, forcedCcd.py です。 今回はこのうち reduceFrames.py で PBS バッチスクリプトを準備してみます。

# コマンドを dry-run で実行してバッチスクリプトを作る
reduceFrames.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=dith_16h_test としても可能(処理速度が遅くなるだけ)
#   --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

5. 共同利用計算機を使用した場合の解析時間(目安)

上記のような設定でバッチ処理を行った場合の解析の目安時間は以下の通りです(ただし、-l select=1:ncpus=16:mpiprocs=16:mem=4gb としている)。 解析をする際の参考にしてください。

  • reduceBias.py      :5 visit で 17 分
  • reduceDark.py     :1 visit で 4 分
  • reduceFlat.py      :8 visit で 37 分
  • reduceFrames.py    :6 visit で 106 分
  • makeDiscreteSkyMap.py :数分
  • mosaic.py        :6 visit で 数分
  • stack.py         :6 visit で 311 分

PBS 以外のバッチ処理システム

バッチ処理システムは、PBS 以外にも様々なシステムがあります。HSC pipeline では PBS システム用のバッチ処理がデフォルトの設定とされていますが、オプションで他のバッチ処理システムを指定することができます。 自身が使用する計算機環境で使われているシステムを理解し、HSC pipeline のバッチ処理を使用してください。

# 例えば SLURM で reduceFrames.py を実行する場合
reduceFrames.py ~/hsc --calib=~/hsc/CALIB --rerun=dith_16h_test --id filter=HSC-I visit=902798..902808:2 --config processCcd.isr.doFringe=False --batch-type=slurm

# オプション:
#   --batch-type :使用するバッチ処理システムを指定。{slurm,pbs,smp} から選択できる