A brief guide to use the MIMS-SMP

Contents

(Jump to English version)

Note: 以下では"$"でプロンプト記号を表します.

[aaaa]$ abcde

と書いてあったら"aaaa"という名のサーバ上でコマンド"abcde"を実行するという意味です.


概要

MIMS SMPは四つの計算サーバと一つのログインサーバ(mims-gate)から成ります.

計算サーバの特徴は下記の通りです:

ホスト名 特徴
mims-smp 48コアCPUと1.5TBを備えています.大規模なデータ処理に適しています.

mims-gpu1,

mims-gpu2

GPGPU TESLA K80を備えています.GPGPUによる高速演算に適しています.
mims-cpu1 Intel Xeon E5-2637v3 3.5 GHzを備えています.中小規模の計算に適しています.

利用の流れ

  1. 利用者のコンピュータからmims-gateへssh接続し,それからmims-smpへssh接続します.
  2. mims-smpに計算プログラムとジョブ投入用のバッチファイルを置きます.
  3. mims-smpからqsubコマンドを用いてジョブを投入します.
    1. このときに,smp, gpu, cpuのうちどの計算機で計算を実行するか指定します.
  4. ログアウトして計算終了を待ちます.

ログイン

Unixライクな環境を利用している利用者は,端末エミュレータを立ち上げて以下のコマンドを実行してください:

[user's PC]$ ssh username@mims-gate.mind.meiji.ac.jp

[mims-gate]$ ssh mims-smp

ここで"username"の部分は利用者自身のユーザ名に置き換えてください.

第一行目のコマンドは利用者のPCで実行し,第二行目のコマンドはmims-gateで実行します.

Notes:

  1. mims-gate以外からmims-smpへログインすることはできません.
  2. 日本国外からmims-gateへのアクセスは遮断されます.
  3. Microsoft Windows利用者はSSHクライアントソフトウェアを自身でインストールする必要があります.
  4. こちらからPuTTYのインストール方法ご参照ください.
  5. mims-smpからmims-cpu1, mims-gpu1, mims-gpu2へはパスワードなしでsshできます.これらは/homeを共有してます.

ログアウト

exitコマンドでログアウトできます.

[mims-smp ]$ exit

[mims-gate]$ exit


パスワードの変更方法

passwdコマンドでパスワードを変更できます.

$ passwd

現在のパスワードを入力してから新しいパスワードを二回入力することになります.

Notes:

  1. 安全なパスワードを設定してください.
  2. mims-gateのパスワードは絶対に安全でなければいけません:mims-gateには誰でもアクセスできます.
  3. mims-cpu1, mims-gpu1, mims-gpu2のパスワードはmims-smpと同一のものになります.

ファイルの転送方法

mims-gate, mims-smpどちらでもsftpとscpが利用できます.mims-cpu1,mims-gpu1,2はmims-smpとホームディレクトリを共有しています.

以下ではscpの使用例を紹介します.

Unix-like環境の利用者の場合:

以下に示す方法ではmims-gateに一度ファイルを置くことになります:

利用者のPCからmims-smpにファイルを送る

[user's PC]$ scp filename username@mims-gate.mind.meiji.ac.jp:

[user's PC]$ ssh username@mims-gate.mind.meiji.ac.jp

[mims-gate]$ scp filename mims-smp:

filenameは送りたいファイルの名前,usernameは利用者のユーザ名に置きかえてください.

一行目のコマンドでfilenameをmims-gateのホームディレクトリへコピーします.

二行目のコマンドでmims-gateにログインします.

三行目のコマンドでfilenameをmims-gateのホームからmims-smpのホームディレクトリへコピーします.

 

mims-smpから利用者のPCにファイルを送る

[mims-smp ]$ scp filename mims-gate:

[user's PC]$ scp username@mims-gate:filename .

一行目のコマンドでmims-smpからmims-gateへファイルを送ります.

二行目のコマンドでmims-gateから利用者のPCへファイルをコピーします(末尾のピリオドも入力します).

 

Windows環境の利用者の場合:

WinSCPを利用するのが便利です.インストールして起動したら「新しいサイト」に

ホスト名:mims-gate.mind.meiji.ac.jp

ユーザ名:MIMS-SMPのユーザ名

と入力して,設定を保存します.ログインボタンを押すとmims-gateのパスワードを求められます.認証が成功すればmims-gateのホームディレクトリが見えます.mims-gateとmims-smp間のファイル転送は上述の通りです.


計算ジョブの投入と削除

Note: MIMS-SMPで計算を行うときは,qsubコマンドを利用するようお願いいたします.

ジョブ投入のながれ

  1. 走らせたいプログラムを用意します.
  2. バッチファイル(.qファイル)を用意します.
  3. 以下のコマンドを実行します:

[mims-smp ]$ qsub < name-of-the-batch-file

(name-of-the-batch-fileは利用者が用意したバッチファイル名に置き換えてください)

qsubを行った後はログアウトしてもかまいません.

 

ジョブの状況を確認する方法

qstatコマンドでジョブの状況を確認できます.

[mims-smp ]$ qstat

qstatコマンドで表示される時間はCPU timeです.並列計算すると実時間よりはるかに早く進みます.

以下のコマンドで表示される"Elap Time"は経過時間をあらわします:

[mims-smp ]$ qstat -a

また,tracejobコマンドでログメッセージを表示できます.

[mims-smp ]$ tracejob jobid

(jobidはqsub時に発行された番号に置き換えてください)

デフォルトでは当日投入したジョブの状況しか表示されません.過去の情報を得るには次のようにします:

[mims-smp ]$ tracejob -n 10 jobid

これで対応するジョブが10日以内に投入されたものであれば情報が得られます.

 

ジョブの削除

qdelコマンドでジョブを削除できます.

[mims-smp ]$ qdel jobid

 

サンプル

たとえばこのHello Worldプログラムのパスがmims-smpの$HOME/work/hello.cだとします.

以下のコマンドでコンパイルします:

[mims-smp ]$ cd $HOME/work

[mims-smp ]$ icc -fopenmp hello.c

このようなスクリプトを用意して,そのパスを$HOME/work/hello.qとします.

ジョブを投入します:

$ qsub < hello.q

しばらくするとプログラムが実行されます.出力がhelloworld.o**ファイルに書き込まれます.

ここで,**はjob IDです.

 

注意:ディレクトリについて

qsubコマンドで実行予約されたジョブが走るとき,ホームディレクトリがカレントディレクトリとなります.

cdコマンドを使って,実行したいプログラムのあるディレクトリへ移動してから当該プログラムを実行することもできます.

たとえばこちらのサンプルをご覧ください.

 

Options of qsub
Option Description
-N <comment> Set the name of job to <comment>
-j oe Create output and error files
-l mem=<num> Set the limit of memory usage
-l ncpus=<num> Set the number of cores to <num>
-l walltime=HH:MM:SS Set the limit of walltime
-q <queue_name> Select the type of queue: low, mid, hi, cpu, or gpu

上記オプションをスクリプトファイル内で指定できます:"#PBS"で開始する行がqsubのオプション指定です.

"man qsub", "man qstat", "man tracejob"コマンドでマニュアルが参照できます.

Type of queue
Queue # of cores Memory CPU time 実行ノード note
low 12 370GB unlimited mims-smp DefaultQueue
mid 24 750GB unlimited mims-smp  
hi 48 1.5TB unlimited mims-smp  
cpu 8 64GB unlimited mims-cpu1  
gpu 16 64GB unlimited

mims-gpu1,

mims-gpu2

For GPGPU

これらの数値は"-l ncpus"や"-l mem"で指定できる最大値です.

mid, hiのサンプルスクリプトもご参照ください.


数値計算

インテルコンパイラ(on mims-smp, mims-cpu1, and mims-gpu1&2)

Intel C++ CompilerとIntel Fortran Compilerが利用可能です.Intel Math Kernel Library (MKL)も利用可能です.Intel MKLはBLAS, LAPACK, およびFFTをはじめとする数値計算ルーチンをサポートしています.また, MKLはCBLASとLAPACKEのインターフェースも提供しています.詳しくはdocumentsをご覧ください.

MKLライブラリを利用したプログラムをコンパイルするときは"-mkl"というオプションをつけます:

Fortranの場合

[mims-smp ]$ ifort -mkl yourprogramme.f90

Cの場合

[mims-smp ]$ icc -mkl yourprogramme.c

C++の場合

[mims-smp ]$ icpc -mkl yourprogramme.cpp

Note: C/C++プログラムでは"mkl.h"をインクルードする必要があります.

こちらからサンプルをダウンロードできます(CBLASとLAPACKEを使って三つの方法でPoisson方程式を解いています).

PGIコンパイラ(mims-gpu1&2)

mims-gpu1&2ではPGIコンパイラが利用可能です.

Fortranの場合

[mims-gpu1 ]$ pgfortran yourprogramme.f90

Cの場合

[mims-gpu1 ]$ pgcc yourprogramme.c

C++の場合

[mims-gpu1 ]$ pgCC yourprogramme.cpp


MATLABの利用

MATLAB R2016bが利用できます(同時起動できるユーザ数2).

利用可能なツールボックス

ジョブの投入

たとえば以下のようにします:

このようなMATLABスクリプトsample.m$HOME/work/matlabにあるとします.

次のようなスクリプトを用意して,qsubコマンドでジョブを投入してください:

#!/bin/sh
#PBS -N matlab
#PBS -j oe
#PBS -l ncpus=1

#PBS -q low
cd $HOME/work/matlab
matlab -nosplash -r sample

 

ユーザーインターフェースの利用

ユーザーインターフェースを通してのご利用は,mims-cpu1上でお願いします

GUIの利用

[mims-cpu1 ]$ matlab

CUIの利用

[mims-cpu1 ]$ matlab -nosplash


グラフの描画(mims-smp)

Gnuplotでグラフを描けます.以下のコマンドでgnuplot 5.0.0が起動します:

[mims-smp ]$ gnuplot

ターミナルについて

起動直後はteminalが"unknown"ですので,このままplotコマンドを入力しても描画できません.

"set terminal"コマンドでお好みのターミナルを選んでファイルに出力してください.

以下のコマンドで利用可能なターミナル一覧を表示できます:

gnuplot> set terminal

SSHのX11転送を利用して接続している場合は:

[mims-smp ]$ eog filename

[mims-smp ]$ evince filename

配色について

version 5ではデフォルトの配色が旧来のものから変更されています.

以前の配色(赤,緑,青,……)を利用したい方はgnuplotに以下のコマンドを入力してください:

gnuplot> set colors classic


Q&A

Q. "/bin/sh^M: bad interpreter: No such file or directory"というエラーへの対処法は?

A. これは改行コードの問題と思われます.Windows PCで作成した.qスクリプトをqsubすると上記エラーが発生することがあります.Windows形式でなくUnix形式の改行コードでファイルを作成すれば解決します.

以下に解決策を二つ提案します:

高機能なテキストエディタは環境設定や保存時に改行コードを選択できます.

[mims-smp ]$ tr -d \\r < win.q > unix.q

 

Q. SSHでX11転送を有効にしたい

A. Unix-like環境の利用者は"-XY"オプションをつけてsshすれば利用できます:

[user's PC]$ ssh -XY username@mims-gate.mind.meiji.ac.jp

[mims-gate]$ ssh -XY mims-smp

Windows利用者はXサーバソフトウェアをインストールする必要があります.それを起動したうえで,上述のPuTTYを利用している場合は,

PuTTY設定→接続→SSH→X11から

「X11フォワーディングを有効にする」にチェックを入れ,

「Xディスプレイの場所」欄に

127.0.0.1:0

と入力します.こうしてmims-gateへ接続してから

[mims-gate]$ ssh -XY mims-smp

とします.

 

しかし,いずれの場合も動作が遅いでしょう.あまりお勧めしません.

 

Q. 計算ジョブの時間制限はありますか?

A. 現在(2017-02-16)計算ジョブの時間制限は設けていません.もしも今後利便性に問題が生じることがあれば,制限を課すことを検討する可能性は否定できません.

ユーザ自身で自分の計算ジョブの時間制限を設定できます.".q"スクリプトに以下の行を追加してください:

#PBS -l walltime=01:23:45

この場合,計算時間が1時間23分45秒を超えるとジョブが削除されます.01:23:45の数字はHH:MM:SSで時間を表します.適当な数字に置き換えて実行してください.

 

Q. 計算終了をemailで報せてほしい

A. ".q"スクリプトに以下の行を加えてください:

#PBS -m abe -M your-email-address

 

"-m"以下の三文字はそれぞれ

a: ジョブが[a]bortされたらemailを送る

b: ジョブが開始([b]egin)されたらemailを送る

e: ジョブが終了(t[e]rminate)したらemailを送る

を表します."-m e"なら終了時にのみemailを送信します.

"-M"には宛先のemailを書きます.

 


Written by Tomoyuki Miyaji

2017-02-16