User Tools

Site Tools


自作クラスタ計算機:ユーザー向け利用ガイド

This is an old revision of the document!


概要

  • クラスタ計算機の使い方です
  • 新入生向け

サーバーへのログイン手順

SSH鍵の作成

クラスタ計算機にログインするためにはSSH鍵を作成する必要があります。 ターミナルを開いて次のようにコマンドを入力してください。

$ cd
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):   # Enterキーを押します
Created directory '/home/username/.ssh'.                            # ~/.ssh がない場合、ディレクトリを作成します
Enter passphrase (empty for no passphrase):                         # パスフレーズを入力します
Enter same passphrase again:                                        # もう一度パスフレーズを入力します
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.

パーミッションを設定します。

$ chmod 600 ~/.ssh/id_rsa
$ chmod 700 ~/.ssh/

.sshディレクトリ(隠しフォルダ)内に生成されたid_rsa.pubを、計算機の管理者にメールなどで送ってください。

計算機へのログイン

事前にクラスタ計算機の管理者からIPアドレスまたはホスト名を聞いてください。 ここではIPアドレス(またはホスト名)をxxx.xxx.xxx.xxxとします。

直接入る方法

ターミナルを開いて次のようにコマンドを打ちます。 usernameはクラスタ計算機でのユーザー名にしてください。

$ ssh -i ~/.ssh/id_rsa username@xxx.xxx.xxx.xxx
The authenticity of host 'server_no_address.jp (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes

パスフレーズを聞かれるので、SSH鍵を作成した際に設定したものを入力します。

configファイルを作成する方法

configファイルを使うと、ログインのたびに毎回IPアドレスを打ち込む手間が省けます。

$ cd ~/.ssh/
$ vim config
config
Host hogehoge
  HostName      xxx.xxx.xxx.xxx
  User          username
  IdentityFile  ~/.ssh/id_rsa

usernameはクラスタ計算機でのユーザー名に変更してください。 hogehogeは自分のわかりやすいものに変更してください。

ログインは次のようにします。

$ ssh hogehoge
The authenticity of host 'server_no_address.jp (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes

パスフレーズを聞かれるので、SSH鍵を作成するときに設定したものを入力します。

ログアウト

終了するときはサーバーからログアウトしてください

$ exit

ソフトウェアの利用設定

コンパイラIntel OneAPIの設定

コンパイラIntel OneAPIの登録をします。 サーバーにログインし、ホーム・ディレクトリにある.bashrcを開いて、一番下の行にOneAPIのパスを追加します。

$ vim .bashrc
.bashrc
(略)

source /opt/intel/oneapi/setvars.sh
$ source ~/.bashrc

ジョブスケジューラOpenPBSの設定

ジョブスケジューラであるOpenPBSの設定をします

準備

.bashrcの最後の行にPBSのパスを追加します。

$ vim .bashrc
.bashrc
(略)

export PATH=/opt/pbs/bin/:/opt/pbs/sbin:$PATH
$ source ~/.bashrc

PBSのインストールディレクトリが見つからない場合は管理者に確認してください。

プログラムの実行

a.outというプログラムを実行する場合を考えます。 ジョブスケジューラでプログラムを実行すれば、サーバーからログアウト後もプログラムは動き続けます。

並列化なし

次のスクリプトファイルをプログラムと同じディレクトリに作成します。

$ vim run.sh
run.sh
#!/bin/bash
#PBS -V
#PBS -l select=1:ncpus=1
 
cd $PBS_O_WORKDIR
 
./a.out

実行権限を付与します(実行権限は一度付与したら残り続けます)

$ chmod +x run.sh

ジョブを計算機に投げます

$ qsub run.sh

ジョブの状況やJob IDはqstatコマンドで確認できます。

$ qstat

オプションをつけるとより細かいジョブ状態が見えます。 ジョブIDを省略した場合、投げているすべてのジョブについて表示されます。

$ qstat -s [Job ID]
  • ジョブが走っているノードと、使用しているリソースを表示します。
$ qstat -f [Job ID]
  • ジョブに関するすべての情報を表示します。

ジョブの強制終了はqdelコマンドで行います。

$ qdel [Job ID]

使用できる計算ノードの情報はpbsnodesコマンドで行います。

$ pbsnodes -a

ノードの使用状況がひと目でわかる簡易表示もできます。

$ pbsnodes -aSj
自作クラスタ計算機/ユーザー向け利用ガイド.1669796296.txt.gz · Last modified: 2022/11/30 17:18 by koudai