スーパーコンピュータでサンプルプログラムを動かす(cupy)
2023/02/25
プログラミング本記事の内容
本記事では、スーパーコンピュータ(Wisteria)上で、Python(cupy)で書かれたサンプルプログラムを動かす手順を紹介する。
手順
cd /work/<プロジェクトコード>/<ユーザーID>
mkdir sample
show_module
今回はCUDA Toolkitモジュール環境を利用する。
module load cuda/11.4
module list
1) cuda/11.4(default)
モジュールを消去したい場合は"module purge"を使う。
module purge
module list
No Modulefiles Currently Loaded.
■ moduleコマンドのオプション
オプション | 内容 |
avail | 利用可能な環境の一覧を表示 |
list | 現在ロードしている環境一覧を表示 |
load | 指定した環境のロード |
unload | 指定した環境のアンロード |
switch | 環境のロードとアンロードを同時に実行 |
purge | 環境をすべてアンロード |
cd sample
python3 -mvenv venv
source venv/bin/activate
pip3 install --upgrade pip setuptools
pip3 install --no-cache-dir cupy-cuda114
pip3 install pandas
try:
import cupy as cp
a = cp.random.rand(100,100)
cp.dot(a,a)
print(f'Cupy Success!')
except Exception as e:
print(f"Error: {e}")
try:
import pandas
print("Pandas Success!")
except Exception as e:
print(f"Error: {e}")
#!/bin/sh
#PJM -L rscgrp=share-debug
#PJM -L gpu=1
#PJM -L elapse=0:10:00
#PJM -g <プロジェクトコード>
#PJM -j
export HOME=/work/gc20/c20364/cupy
module load cuda/11.4
source venv/bin/activate
python3 sample.py
プロジェクトコードについては各自割り当てられたものを記入する。また、ジョブクラスには"share-debug"を指定した。使用可能なジョブクラスについては以下のリンクを参照。
pjsub sample.sh
■ ジョブ管理コマンド
オプション | 内容 |
pjsub | ジョブの投入 |
pjdel | ジョブの削除 |
pjstat | ジョブの状態 |
pjsubなどのコマンドは富士通独自のもので、使用するスーパーコンピュータによって異なる。
Inportエラーが発生しておらず、GPU(Cuda)の読み込みができていることを確認する。
Cupy Success!
Pandas Success!