スーパーコンピュータでサンプルプログラムを動かす(PyTorch)

2022/12/07

プログラミング

本記事の内容

本記事では、スーパーコンピュータ(Wisteria)上で、Python(PyTorch)で書かれたサンプルプログラムを動かす手順を紹介する。

手順

  • workディレクトリ配下に移動して、sampleディレクトリを作成する
  • cd /work/<プロジェクトコード>/<ユーザーID>
    mkdir sample
  • 以下のコマンドを実行して、Python環境作成に必要なモジュールを確認する
  • show_module
    Notion Image

    今回はgcc/8.3.1とpython/3.8.12モジュール環境を利用する。

  • 以下のコマンドを実行して、Python3.8.12を利用できるようにする
  • module load gcc/8.3.1
    module load python/3.8.12
  • 以下のコマンドを実行して、読み込んだモジュールを確認する
  • module list
    Currently Loaded Modulefiles:
     1) gcc/8.3.1(default)   2) python/3.8.12

    モジュールを消去したい場合は"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
  • 以下のコマンドを実行し、PyTorchとPandasをインストールする
  • pip3 install --upgrade pip setuptools
    pip3 install torch torchvision torchaudio --extra-index-url <https://download.pytorch.org/whl/cu116>
    pip3 install pandas
  • sampleディレクトリ直下に、以下のファイルを作成する
  • try:
        import torch
        device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
        print(f'PyTorch Success!')
        print(f'Device: "{device}"')
    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
    
    module load gcc/8.3.1
    module load python/3.8.12
    source venv/bin/activate
    python3 sample.py

    プロジェクトコードについては各自割り当てられたものを記入する。また、ジョブクラスには"share-debug"を指定した。使用可能なジョブクラスについては以下のリンクを参照。

  • 以下のコマンドを実行し、サンプルプログラムジョブを投げる
  • pjsub sample.sh

    ■ ジョブ管理コマンド

    オプション内容
    pjsubジョブの投入
    pjdelジョブの削除
    pjstatジョブの状態

    pjsubなどのコマンドは富士通独自のもので、使用するスーパーコンピュータによって異なる。

  • 出力ファイルを確認する
  • Inportエラーが発生しておらず、GPU(Cuda)の読み込みができていることを確認する。

    PyTorch Success!
    Device: "cuda:0"
    Pandas Success!

    参考資料


    著者画像

    ゆうき

    2018/04からITエンジニアとして活動、2021/11から独立。主な使用言語はPython, TypeScript, SAS, etc.