Size: 2545
Comment:
|
Size: 8324
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
柏PCの使い方 | ~+ KAGRA主データ保管装置の使い方 +~ |
Line 3: | Line 3: |
~+<<TableOfContents(2)>>+~ | |
Line 5: | Line 4: |
= 目的 = kashiwa PCを使用してframe fileをみんなが快適に解析できるようにできるようにしたい |
以下では簡単のため、このシステムを柏PCと呼びます。<<BR>> 柏PCを使用してみんなが快適に解析できるようにできるようにしたい。あと環境構築などで詰まったことの備忘録。 |
Line 8: | Line 7: |
あと環境構築などで詰まったことの備忘録 | ちなみにframe fileのデータが欲しいだけなら、[[http://157.82.231.170/past_data_viewer/|Pastavi]]を使えば良い(宇宙線研のネットワークにつなぐ必要あり) ~+<<TableOfContents(3)>>+~ |
Line 11: | Line 14: |
[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=10201|Application for an account of KAGRA Main Storage System]] に従い申請する. == startup == 主にアカウント発行の際にメールでもらえるguideに沿って行えば良い。 一応、[[https://gwdoc.icrr.u-tokyo.ac.jp/cgi-bin/private/DocDB/ShowDocument?docid=10076|JGW doc]]にも資料がある |
|
Line 12: | Line 22: |
環境はほとんどできているはずなのでgwpyを使ってframe fileを読んでみる | 環境はdefaultでほとんどできているはずなのでgwpyを使ってframe fileを読んでみる |
Line 18: | Line 28: |
= kashiwa PCのdefault環境では満足できない方へ = == virtualenv == matplotlibが古すぎてplotがダサくなる方やgwpyのerrorが自身のPCと異なり困る方など向け |
----- |
Line 22: | Line 30: |
おそらくkashiwaでpython環境構築に使うのが推奨されているのがvirtualenvである | = virtualenvによる仮想環境構築 = 柏PCのdefault環境ではmatplotlibが古すぎてplotがダサくなる方やgwpyのerrorが自身のPCと異なり困る方など向け。<<BR>> おそらくkashiwaでpython環境構築に使うのが推奨されているのがvirtualenvである。 == virtualenvの使い方 == 柏PCにログイン |
Line 26: | Line 41: |
などでkashiwa PCにログイン 仮想環境の構築(python3.7の部分は好みのversionで良い, 後ろの~/.vir~の部分も好きなpathに好きな名前で置いても良い) |
仮想環境の構築(python3.7の部分は好みのversionで良い, 後ろの~/.virtualenvs/new_envの部分も好きなpathに好きな名前で置いても良い) |
Line 29: | Line 43: |
virtualenv -p python3.7 ~/.virtualenvs/new_env | virtualenv -p python3.6 ~/.virtualenvs/new_env |
Line 31: | Line 45: |
仮想環境を有効にする | 仮想環境を有効にする。 |
Line 35: | Line 49: |
今後、仮想環境を有効にする際は毎回これを打つ必要があり、面倒くさいので~/.bashrcに | 今後、仮想環境を有効にする際は毎回これを打つ必要があり、面倒くさいので |
Line 37: | Line 51: |
alias nenv=source ~/.virtualenvs/new_env/bin/activate | echo "alias nenv='source ${HOME}/new_env/bin/activate' " >> ${HOME}/.bashrc |
Line 39: | Line 53: |
と書けば、nenvと打つだけで仮想環境を有効にできる もしくは、~/.bash_profileや~/.bashrcに |
と打てば、nenvと打つだけで仮想環境を有効にできる。<<BR>> 次に仮想環境を有効にした状態でpipを用いてlibraryをinstallする。 |
Line 42: | Line 56: |
if [[ $- =~ i ]]; then source ~/.virtualenvs/new_env/bin/activate fi |
pip install -U pip setuptools wheel pip install gwpy==0.15.0 lalsuite |
Line 46: | Line 59: |
と書くと、ログイン時に毎回仮想環境が立ち上がってくれる 次に仮想環境を有効にした状態でpipを用いてlibraryをinstallする |
lalsuiteもinstallしないとframe fileが読めないので注意。<<BR>> gwpyをinstallする時に必要なものはほとんど一緒にinstallされると思うが、他に必要なlibraryがある場合は別途pip installを用いてinstallする。 == virtualenvで pyROOTを使う == 柏計算機ではデフォルトでROOT, pyROOTが使えるが、virtualenvで自分で構築した環境だとそのままではpyROOTがimportできない。 もちろん、pip install ROOT とかやっても無駄。<<BR>> 私(鷲見)が1年ほど事項錯誤した結果、自前でROOT5をビルドすることでvirtualenvで pyROOTを使えることがわかった。<<BR>> (ROOT6の場合は、概ね柏PCのCMakeのバージョンが古いせいでビルドできない。初期のバージョン(6.02とか)はビルドできるが、ROOT.pyが生成されず{{{$PYTHONPATH}}}を通せなかった。) ちなみに、root fileの読み書きだけなら[[https://github.com/scikit-hep/uproot|uproot]]を使えばよい まず自分のhomeにてきとうなディレクトリ(ここでは {{{myROOT}}} )を作り、ROOTの公式ページから[[https://root.cern.ch/content/release-53438|ROOT5.34.38]]のソースを落として解凍する。 |
Line 49: | Line 77: |
pip install -U pip pip install gwpy lalsuite |
~ $ mkdir myROOT ~ $ cd myROOT ~/myROOT $ wget https://root.cern.ch/download/root_v5.34.38.source.tar.gz ~/myROOT $ tar zxvf root_v5.34.38.source.tar.gz ~/myROOT $ mv root root-5.34.38 ~/myROOT $ cd root-5.34.38 ~/myROOT/root-5.34.38 $ |
Line 52: | Line 85: |
lalsuiteもinstallしないとframe fileが読めないので注意 | ビルド用のディレクトリを作り、cmake -> make する。 {{{ ~/myROOT/root-5.34.38 $ mkdir cmake_build ~/myROOT/root-5.34.38 $ cd cmake_build ~/myROOT/root-5.34.38/cmake_build $ cmake ../ -Dpython3=On -DPYTHON_EXECUTABLE=/gpfs/home/(自分の名前)/(仮想環境)/bin/python3 ~/myROOT/root-5.34.38/cmake_build $ make -j 5 }}} ROOT5のインストールが終わるのをしばらく待つ。終わったら、自分の仮想環境のbin/activateに以下を追記する。 {{{ ### ROOT ### export PATH="/home/(自分の名前)/(仮想環境)/bin:$PATH" source /home/(自分の名前)/myROOT/root-5.34.38/cmake_build/bin/thisroot.sh export PATH="/home/(自分の名前)/myROOT/root-5.34.38/cmake_build/bin:$PATH" export LD_LIBRARY_PATH="/home/(自分の名前)/myROOT/root-5.34.38/cmake_build/lib:$LD_LIBRARY_PATH" export PYTHONPATH="/home/(自分の名前)/myROOT/root-5.34.38/cmake_build/lib:$PYTHONPATH" }}} これでこの仮想環境でpyROOTが使えるようになる。 |
Line 54: | Line 103: |
gwpyをinstallする時に必要なものはほとんど一緒にinstallされると思うが、他に必要なlibraryがある場合は別途pip installを用いてinstallする | {{{ ~ $ source (仮想環境)/bin/activate (仮想環境) ~ $ python Python 3.4.9 (default, Aug 14 2018, 21:28:57) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import ROOT >>> }}} ----- |
Line 59: | Line 119: |
自身のpc上に作業用のディレクトリを適当に作る(mkdir以下は当然任意) {{{ mkdir ~/work }}} 作ったdirectoryにcodeを書く {{{ emacs ~/work/test.py . . . }}} 以下のshell scriptを作業用のdirectiryにおく {{{ exePath=$(pwd)/$2 exePath=~${exePath#*$(cd $(dirname $0); cd ../ ;pwd)} rsync -arp --inplace $(cd $(dirname $0); pwd) m31-01:~/ ssh -Y -t -t m31-01 <<EOC source ~/.virtualenvs/new_env/bin/activate $1 ${exePath} exit EOC rsync -arp --inplace m31-01:~/$(basename $(cd $(dirname $0); pwd))/ $(cd $(dirname $0); pwd) }}} 公開鍵の設定を済ましておけばかなりリモートで作業を行なってfileを持ち帰るという作業はスムーズになる ----- |
|
Line 60: | Line 149: |
詰まった問題やこのページの通りやってもうまくいかないことを書き込む === gwpyを最新のものにするとframe fileがtimeseries.readで読めなくなる === 単一source fileなら読めるが複数source fileを読もうとするとerrorが出る {{{ 単一ファイル読み出し(ok) data = TimeSeries.read(['/data/full/12567/K-K1_C-1256700000-32.gwf', '/data/full/12567/K-K1_C-1256700032-32.gwf', '/data/full/12567/K-K1_C-1256700064-32.gwf', '/data/full/12567/K-K1_C-1256700096-32.gwf'], c K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ, start = 1256700000, end = 1256700100, format='gwf.lalframe') TimeSeries([ 2.24202135e-11, 2.24398064e-11, 2.24622275e-11, ..., -1.91058005e-11, -1.90862017e-11, -1.90661226e-11] unit: dimensionless, t0: 1256700000.0 s, dt: 6.103515625e-05 s, name: K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ, channel: K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ) 複数ファイル読み出し(ng) data = TimeSeries.read(['/data/full/12567/K-K1_C-1256700000-32.gwf', '/data/full/12567/K-K1_C-1256700032-32.gwf', '/data/full/12567/K-K1_C-1256700064-32.gwf', '/data/full/12567/K-K1_C-1256700096-32.gwf'], c K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ, start = 1256700000, end = 1256700100, format='gwf.lalframe') RuntimeError: Failed to read /data/full/12470/K-K1_C-1247030016-32.gwf: Internal function call failed: I/O error }}} gwpy0.15.0だとこのエラーは起こらず、1.0.0だと起こる 今のところ1.0.0でこの問題を解決する方法が分からないので、pipでのinstallの際は {{{ pip install gwpy==0.15.0 }}} とすることを勧める。 ちなみに{{{TimeSeriesDict.read}}}なら複数ファイルでも問題なく読めるので、1チャンネルだけのときもこちらを使うようにすれば問題ない。 |
KAGRA主データ保管装置の使い方
以下では簡単のため、このシステムを柏PCと呼びます。
柏PCを使用してみんなが快適に解析できるようにできるようにしたい。あと環境構築などで詰まったことの備忘録。
ちなみにframe fileのデータが欲しいだけなら、Pastaviを使えば良い(宇宙線研のネットワークにつなぐ必要あり)
セットアップ
アカウント申請
Application for an account of KAGRA Main Storage System に従い申請する.
startup
主にアカウント発行の際にメールでもらえるguideに沿って行えば良い。 一応、JGW docにも資料がある
frame fileを読んでみる(python)
環境はdefaultでほとんどできているはずなのでgwpyを使ってframe fileを読んでみる Lecture in Japanese
frame fileを読んで様々なplotを書くためのsample codeやcondor_jobを使ってjobを投げるためのshellなどが豊富にある Kozapy
virtualenvによる仮想環境構築
柏PCのdefault環境ではmatplotlibが古すぎてplotがダサくなる方やgwpyのerrorが自身のPCと異なり困る方など向け。
おそらくkashiwaでpython環境構築に使うのが推奨されているのがvirtualenvである。
virtualenvの使い方
柏PCにログイン
ssh m31-01
仮想環境の構築(python3.7の部分は好みのversionで良い, 後ろの~/.virtualenvs/new_envの部分も好きなpathに好きな名前で置いても良い)
virtualenv -p python3.6 ~/.virtualenvs/new_env
仮想環境を有効にする。
source ~/.virtualenvs/new_env/bin/activate
今後、仮想環境を有効にする際は毎回これを打つ必要があり、面倒くさいので
echo "alias nenv='source ${HOME}/new_env/bin/activate' " >> ${HOME}/.bashrc
と打てば、nenvと打つだけで仮想環境を有効にできる。
次に仮想環境を有効にした状態でpipを用いてlibraryをinstallする。
pip install -U pip setuptools wheel pip install gwpy==0.15.0 lalsuite
lalsuiteもinstallしないとframe fileが読めないので注意。
gwpyをinstallする時に必要なものはほとんど一緒にinstallされると思うが、他に必要なlibraryがある場合は別途pip installを用いてinstallする。
virtualenvで pyROOTを使う
柏計算機ではデフォルトでROOT, pyROOTが使えるが、virtualenvで自分で構築した環境だとそのままではpyROOTがimportできない。 もちろん、pip install ROOT とかやっても無駄。
私(鷲見)が1年ほど事項錯誤した結果、自前でROOT5をビルドすることでvirtualenvで pyROOTを使えることがわかった。
(ROOT6の場合は、概ね柏PCのCMakeのバージョンが古いせいでビルドできない。初期のバージョン(6.02とか)はビルドできるが、ROOT.pyが生成されず$PYTHONPATHを通せなかった。)
ちなみに、root fileの読み書きだけならuprootを使えばよい
まず自分のhomeにてきとうなディレクトリ(ここでは myROOT )を作り、ROOTの公式ページからROOT5.34.38のソースを落として解凍する。
~ $ mkdir myROOT ~ $ cd myROOT ~/myROOT $ wget https://root.cern.ch/download/root_v5.34.38.source.tar.gz ~/myROOT $ tar zxvf root_v5.34.38.source.tar.gz ~/myROOT $ mv root root-5.34.38 ~/myROOT $ cd root-5.34.38 ~/myROOT/root-5.34.38 $
ビルド用のディレクトリを作り、cmake -> make する。
~/myROOT/root-5.34.38 $ mkdir cmake_build ~/myROOT/root-5.34.38 $ cd cmake_build ~/myROOT/root-5.34.38/cmake_build $ cmake ../ -Dpython3=On -DPYTHON_EXECUTABLE=/gpfs/home/(自分の名前)/(仮想環境)/bin/python3 ~/myROOT/root-5.34.38/cmake_build $ make -j 5
ROOT5のインストールが終わるのをしばらく待つ。終わったら、自分の仮想環境のbin/activateに以下を追記する。
### ROOT ### export PATH="/home/(自分の名前)/(仮想環境)/bin:$PATH" source /home/(自分の名前)/myROOT/root-5.34.38/cmake_build/bin/thisroot.sh export PATH="/home/(自分の名前)/myROOT/root-5.34.38/cmake_build/bin:$PATH" export LD_LIBRARY_PATH="/home/(自分の名前)/myROOT/root-5.34.38/cmake_build/lib:$LD_LIBRARY_PATH" export PYTHONPATH="/home/(自分の名前)/myROOT/root-5.34.38/cmake_build/lib:$PYTHONPATH"
これでこの仮想環境でpyROOTが使えるようになる。
~ $ source (仮想環境)/bin/activate (仮想環境) ~ $ python Python 3.4.9 (default, Aug 14 2018, 21:28:57) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import ROOT >>>
自身のPC上でprogram編集と結果閲覧を完結したい人向け
自身のpc上のeditorを愛している方や、ネットワークが弱くsshでm31-01にログインした状態で作業するのにストレスがある方向け
自身のpc上に作業用のディレクトリを適当に作る(mkdir以下は当然任意)
mkdir ~/work
作ったdirectoryにcodeを書く
emacs ~/work/test.py . . .
以下のshell scriptを作業用のdirectiryにおく
exePath=$(pwd)/$2 exePath=~${exePath#*$(cd $(dirname $0); cd ../ ;pwd)} rsync -arp --inplace $(cd $(dirname $0); pwd) m31-01:~/ ssh -Y -t -t m31-01 <<EOC source ~/.virtualenvs/new_env/bin/activate $1 ${exePath} exit EOC rsync -arp --inplace m31-01:~/$(basename $(cd $(dirname $0); pwd))/ $(cd $(dirname $0); pwd)
公開鍵の設定を済ましておけばかなりリモートで作業を行なってfileを持ち帰るという作業はスムーズになる
詰まった問題
詰まった問題やこのページの通りやってもうまくいかないことを書き込む
gwpyを最新のものにするとframe fileがtimeseries.readで読めなくなる
単一source fileなら読めるが複数source fileを読もうとするとerrorが出る
単一ファイル読み出し(ok) data = TimeSeries.read(['/data/full/12567/K-K1_C-1256700000-32.gwf', '/data/full/12567/K-K1_C-1256700032-32.gwf', '/data/full/12567/K-K1_C-1256700064-32.gwf', '/data/full/12567/K-K1_C-1256700096-32.gwf'], c K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ, start = 1256700000, end = 1256700100, format='gwf.lalframe') TimeSeries([ 2.24202135e-11, 2.24398064e-11, 2.24622275e-11, ..., -1.91058005e-11, -1.90862017e-11, -1.90661226e-11] unit: dimensionless, t0: 1256700000.0 s, dt: 6.103515625e-05 s, name: K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ, channel: K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ) 複数ファイル読み出し(ng) data = TimeSeries.read(['/data/full/12567/K-K1_C-1256700000-32.gwf', '/data/full/12567/K-K1_C-1256700032-32.gwf', '/data/full/12567/K-K1_C-1256700064-32.gwf', '/data/full/12567/K-K1_C-1256700096-32.gwf'], c K1:CAL-CS_PROC_C00_STRAIN_DBL_DQ, start = 1256700000, end = 1256700100, format='gwf.lalframe') RuntimeError: Failed to read /data/full/12470/K-K1_C-1247030016-32.gwf: Internal function call failed: I/O error
gwpy0.15.0だとこのエラーは起こらず、1.0.0だと起こる
今のところ1.0.0でこの問題を解決する方法が分からないので、pipでのinstallの際は
pip install gwpy==0.15.0
とすることを勧める。 ちなみにTimeSeriesDict.readなら複数ファイルでも問題なく読めるので、1チャンネルだけのときもこちらを使うようにすれば問題ない。