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