バッチジョブの作成・投入・結果確認|計算クラスター

ジョブ実行サーバーにSSH接続できたら、Slurmを使って計算ノードでプログラムを実行してみましょう。

この記事では、「Hello World」と表示する簡単なジョブを使い、スクリプトの作成からジョブの投入、実行結果の確認までを説明します。

目次[非表示]

  1. 1.ジョブスクリプトを作成する
  2. 2.ジョブスクリプトを作成する
    1. 2.1.スクリプトの設定内容
  3. 3.ジョブを投入する(sbatch)
  4. 4.ジョブの状態を確認する(squeue)
  5. 5.実行結果を確認する
    1. 5.1.期待した結果が表示されない場合
  6. 6.ジョブの実行前にはポイント残高を確認する
  7. 7.実行結果を確認できたら

ジョブスクリプトを作成する

以下の操作は、SSH接続後のジョブ実行サーバーで行ってください。

ジョブスクリプトを作成する

ジョブ実行サーバーで、nano や vi などのテキストエディタを使い、ジョブスクリプトを作成します。
ジョブスクリプトは、実行するコマンドと、使用する計算リソースやログの出力先などをSlurmに伝える指示(Slurmディレクティブ)を記述したシェルスクリプトです。

今回は、nano を使って hello.sh というファイルを作成します。

nano hello.sh

エディタが開いたら、以下を貼り付けてください。

#!/bin/bash

#SBATCH -J hello_job

#SBATCH -p GPU

#SBATCH -N 1

#SBATCH -n 1

#SBATCH -o ./stdout_%j.log

#SBATCH -e ./stderr_%j.log

echo "========================================="

echo "Hello World from GPUSOROBAN!"

echo "Execution Time: $(date)"

echo "Running on node: $(hostname)"

echo "========================================="

入力したら、Ctrl + O、Enterキーの順に押して保存し、Ctrl + X でエディタを閉じます。

スクリプトの設定内容

#SBATCH で始まる行は、Slurmにジョブの設定を伝える指示(Slurmディレクティブ)です。

設定

内容

-J hello_job

ジョブ名

-p GPU

ジョブの投入先となるパーティション(計算ノード群)

-N 1

使用するノード数

-n 1

実行するタスク数

-o ./stdout_%j.log

実行結果を保存するファイル

-e ./stderr_%j.log

エラーメッセージを保存するファイル

%j は、ジョブの受付時に割り当てられる「ジョブID」に置き換わります。例えば、ジョブIDが 1120 なら、実行結果のファイル名は stdout_1120.log になります。

ジョブを投入する(sbatch)

hello.sh を保存したディレクトリで、以下を実行します。

sbatch ./hello.sh

ジョブが受け付けられると、以下のように表示されます。

Submitted batch job 1120

この例では、1120 がジョブIDです。状態や結果を確認するときに使うため、控えておきましょう。

この表示は、ジョブが受け付けられたことを示します。実行完了を意味するものではありません。

ジョブの状態を確認する(squeue)

squeue コマンドで、投入したジョブの状態を確認します。

squeue

表示例:

JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)

1120 GPU hello_job asuserXX R 0:02 1 kra-101

JOBID で自分のジョブを探し、ST 欄を確認してください。

表示

状態

R(RUNNING)

ジョブを実行中

PD(PENDING)

リソースの空き待ちなどの理由で、実行開始を待っている状態

ジョブは終了すると、squeue の一覧に表示されなくなります。今回のジョブは短時間で終了するため、確認した時点ですでに表示されないこともあります。

正常に実行できたかどうかは、次の手順でログを確認します。

実行結果を確認する

ジョブの実行結果は、ログファイルに保存されます。
今回の設定では、ジョブを投入したディレクトリに stdout_ジョブID.log が出力されます。

以下のコマンドでログを開いてください。1120 は自分のジョブIDに置き換えます。

cat ./stdout_1120.log

表示例:

=========================================

Hello World from GPUSOROBAN!

Execution Time: Mon Sep 14 12:00:00 JST 2026

Running on node: kra-101

=========================================

以下の内容が表示されていることを確認してください。

  • Hello World from GPUSOROBAN! の文字列
  • ジョブを実行した日時
  • 実行先の計算ノード名

日時の表示形式や計算ノード名は、実行環境によって異なります。

期待した結果が表示されない場合

エラーログを開き、メッセージを確認します。

cat ./stderr_1120.log

こちらも、1120 は自分のジョブIDに置き換えてください。

エラーメッセージがある場合は、その内容を手がかりにスクリプトや実行環境を確認します。

※ジョブがまだ PD の場合は、実行開始前のためログファイルが作成されていないことがあります。

ジョブの実行前にはポイント残高を確認する

本格的な学習や解析を始める前に、Web管理ポータルでポイント残高を確認してください。

GPU利用料は、利用するGPU枚数や実行時間に応じて計算されます。また、ストレージはジョブの実行有無にかかわらず、確保した容量に応じて毎日ポイントを消費します。

料金の詳細は「GPU課金:1分単位の計算ルール」を確認してください。

実行結果を確認できたら

これで、Slurmを使ったジョブの作成・投入・結果確認の基本操作は完了です。

自分のプログラムを実行するときも、スクリプトを作成し、sbatch で投入して、状態とログを確認する流れは同じです。

GPUSOROBANサポートチーム
GPUSOROBANサポートチーム
株式会社ハイレゾが提供するGPUクラウドサービスのサポートチームです。 GPUクラウドを安心してご利用いただけるよう、サービスの利用方法や技術情報、トラブルシューティングなどを発信しています。