====== 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