--- title: Python --- [toc] ## 利用環境{#enviroment} ### 利用できるバージョン・システム{#version} 以下の表に示すpython を利用することができます。 いずれもOSに付属するパッケージとして提供されているため、モジュールファイルによる環境設定は不要です。 |バージョン | モジュールファイル名 | システムA | システムB/C | システムG | クラウドシステム | 備考 |--- | --- | --- | --- | --- | --- | --- |2.7 | none | + | + | + | + | コマンド名: python2.7, pip2.7 |3.6 | none | + | + | + | + | コマンド名: python3.6, pip3.6 |3.8 | none | + | + | + | + | コマンド名: python3.8, pip3.8 \+ : すべてのユーザが利用可能 \- : 利用不可 ### 利用可能なライブラリ{#library} 標準でインストールされているライブラリは pip コマンドで確認できます。 パッケージの追加が必要な場合は pipコマンドでご自身のHOMEディレクトリ等に追加インストールが可能です。 ``` ## python3.8 環境のインストール済みパッケージ一覧を表示する場合 $ pip3.8 list Package Version ---------------------------- ---------- absl-py 1.3.0 asgiref 3.6.0 astunparse 1.6.3 ... ``` ### 機械学習/深層学習 以下のPythonパッケージは予め特定のpython環境にインストールしてあります。 利用するにはモジュールファイルのロードが必要です。 | Python | 対象システム| 種別 | パッケージ | バージョン | ライブラリ | モジュールファイル | 補足事項 |--- |--- |--- | --- | --- | --- | --- | --- | python3.8 | A/B/C | CPU | TensorFlow | 2.11.0 | MKL 2022.3 | tensorflow/2.11.0.py38_intel-2022.3 | Intel Optimized AVX512版 | python3.8 | A/B/C | CPU | MXNet | 1.6.0 | MKL 2022.3 | mxnet/1.6.0.py38_intel-2022.3 | MKL対応版 | python3.8 | A/B/C | CPU | PyTorch | 2.0.1 | MKL 2022.3 | pytorch/2.0.1.py38_intel-2022.3 | intel extension for pytorch, Intel oneCCL Bindings for Pytorch | python3.8 | A/B/C | CPU | PyTorch | 1.13.1 | MKL 2022.3 | pytorch/1.13.1.py38_intel-2022.3 | intel extension for pytorch, Intel oneCCL Bindings for Pytorch | python3.8 | G | GPU | TensorFlow | 2.11.0 | CUDA 11.2 | tensorflow/2.11.0.py38_cuda-11.2 | GPU版 TensorRT利用可 | python3.8 | G | GPU | MXNet | 1.9.1 | CUDA 11.7 | mxnet/1.9.1.py38_cuda-11.7 | GPU版 | python3.8 | G | GPU | PyTorch | 1.13.1 | CUDA 11.7 | pytorch/1.13.1.py38_cuda-11.7 | GPU版 #### Intel Extension for PyTorch の参考資料 * [Documentation](https://intel.github.io/intel-extension-for-pytorch/cpu/latest/index.html) * [Examples](https://intel.github.io/intel-extension-for-pytorch/cpu/latest/tutorials/examples.html) #### システムA/B/C 向けの pytorch に関する補足 システムA/B/C 向けの pytorch は、Intel Extension for Pytorch は Intel oneCCL Bindings for Pytorch を利用します。 以下にサンプルプログラムと、ジョブスクリプトを例を記載していますので、参考にしてください。 各ソフトウェアの使い方の詳細は公式マニュアルをご参照ください。 ##### サンプルプログラム ```python #!/usr/bin/python3.8 # Reference source # https://github.com/intel/torch-ccl#usage import os import torch.nn.parallel import torch.distributed as dist import oneccl_bindings_for_pytorch import intel_extension_for_pytorch os.environ['MASTER_ADDR'] = str(os.environ.get('TORCH_MASTER_ADDR', '127.0.0.1')) os.environ['MASTER_PORT'] = str(os.environ.get('TORCH_MASTER_PORT', '29500')) os.environ['RANK'] = str(os.environ.get('PMI_RANK', 0)) os.environ['WORLD_SIZE'] = str(os.environ.get('PMI_SIZE', 1)) backend = 'ccl' dist.init_process_group(backend) my_rank = dist.get_rank() my_size = dist.get_world_size() print("my rank = %d my size = %d" % (my_rank, my_size)) x = torch.ones([2, 2]) y = torch.ones([4, 4]) with torch.autograd.profiler.profile(record_shapes=True) as prof: for _ in range(10): dist.all_reduce(x) dist.all_reduce(y) dist.barrier() print(prof.key_averages(group_by_input_shape=True).table(sort_by="self_cpu_time_total")) ``` ##### ジョブスクリプト ```bash #!/bin/bash #============ SBATCH Directives ======= #SBATCH -p gr10001b #SBATCH -t 1:0:0 #SBATCH --rsc p=4:t=1:c=1 #SBATCH -o %x.%A.out #============ Shell Script ============ . /usr/share/Modules/init/bash module load pytorch/2.0.1.py38_intel-2022.3 module list set -x export CCL_WORKER_COUNT=${OMP_NUM_THREADS} export CCL_WORKER_AFFINITY=$(numactl -s |grep physcpubind: | sed -e 's/physcpubind: //' -e 's/ *$//' -e 's/ /,/g') export TORCH_MASTER_ADDR=${SLURMD_NODENAME}-ib0 srun python3.8 -u profiling.py ``` ## ANACONDA DISTRIBUTION Pythonのパッケージ群が利用可能なANACONDA DISTRIBUTION をインストールしています。 標準のpythonではなく、ANACONDA DISTRIBUTION がお好みの場合は以下のモジュールファイルをロードすることで利用できます。 | DISTRIBUTION | Python | モジュールファイル | |--- |--- |--- | | anaconda3 2022.10 | python3.9 | anaconda3/2022.10 |