====== Python ======
本システムでは、下記のスクリプトを実行することでホームディレクトリに[[https://github.com/pyenv/pyenv|pyenv]]をインストールすることができます。\\
pyenvではpythonのバージョン管理が可能です。詳細は下記をご確認ください。\\
\\
===== pyenv環境の構築 =====
下記のコマンドを実行すると、ホームディレクトリにpyenvがインストールされます。\\
superとgpuでそれぞれ別の環境が構築されます。\\
$ bash /work/app/pyenv/pyenv-setup-20210617.bash
\\
インストールスクリプト実行後にカレントディレクトリにbash_envというファイルが生成されます。\\
pyenvをデフォルトで読み込む場合は下記のコマンドで~/.bash_profile に内容をコピーします。\\
$ cat bash_env >> ~/.bash_profile
\\
インストール後にフロントエンドノードから一度ログアウトし、再度ログインしてください。
\\
===== pyenvの基本的な使い方 =====
==== Pythonのインストール ====
$ pyenv --version
pyenv 1.2.8-5-gec9fb549 ←バージョンは異なる場合があります。
$ pyenv install --list ←利用可能なPythonのバージョンを表示 ・・・・
$ pyenv install 3.7.8 ←Python3.7.8をインストールする場合
\\
==== Pythonのバージョン切り替え ====
$ pyenv versions ←インストールされているバージョンの確認
* system (set by /home/user01/.pyenv/version)
3.7.8
$ pyenv global 3.7.8 ←Python3.7.8に切り替え
$ python --version
\\
pyenvでインストールしたPythonでは、pipを用いてパッケージの追加も可能です。\\
より詳細な使用方法については、pyenv のドキュメント等をご確認ください。\\
\\
Simple Python version management\\
https://github.com/pyenv/pyenv
\\
\\
===== Pythonの実行方法 =====
負荷の高いPythonプログラムは、フロントエンドノードではなく**計算ノード上で実行してください**。\\
==== ジョブスクリプト例 ====
=== 大規模並列計算サーバ ===
#!/bin/sh
#PBS -l select=1
#PBS -q P_016
#PBS -N sample
DIRNAME=`basename $PBS_O_WORKDIR`
WORKDIR=/work/$USER/$PBS_JOBID
mkdir -p $WORKDIR
cp -raf $PBS_O_WORKDIR $WORKDIR
cd $WORKDIR/$DIRNAME
aprun python program.py
cd; if cp -raf $WORKDIR/$DIRNAME $PBS_O_WORKDIR/.. ; then rm -rf $WORKDIR; fi
\\
=== アクセラレータサーバ ===
・インタラクティブモードでの実行例
userA@gpu2:~> qsub -I -q CA_001
qsub: waiting for job 70568.gpu1 to start
qsub: job 70568.gpu1 ready
-bash-4.2$ python
Python 3.7.8 (default, Mar 25 2021, 09:54:46)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
\\
ジョブとして投入して実行することも可能です。\\
・ジョブスクリプト例
#!/bin/sh
#PBS -l select=1
#PBS -q CA_001
#PBS -N sample
DIRNAME=`basename $PBS_O_WORKDIR`
WORKDIR=/work/$USER/$PBS_JOBID
mkdir -p $WORKDIR
cp -raf $PBS_O_WORKDIR $WORKDIR
cd $WORKDIR/$DIRNAME
python program.py
cd; if cp -raf $WORKDIR/$DIRNAME $PBS_O_WORKDIR/.. ; then rm -rf $WORKDIR; fi