2019-07-30 04:27:32時点のリビジョン2

メッセージを消す
編集不可のページ History 添付ファイル

 

TUT HPC Cluster Wiki: WideAreaClusterSystem_new

[Japanese|English]

広域連携教育研究用クラスタシステム

2014年8月1日より正式運用を開始しました.

ログイン方法

TeraTerm や putty などの SSH クライアントを利用して,開発サーバにログインして下さい. 開発サーバのホスト名は、学内利用者か学外利用者かによって異なります。

開発サーバはコンパイルや開発を行うためのサーバです. 開発サーバで大規模な計算処理を実行しないでください. 計算処理は Torque を介して、ジョブとしてクラスタ上で実行してください.

また、開発サーバは,実際には2台のサーバを用意して負荷分散しています.

学内利用者の場合

開発サーバのホスト名は wdev.edu.tut.ac.jp になります。 ユーザ名とパスワードは,情報メディア基盤センターから発行されたアカウントを入力して下さい。

$ ssh wdev.edu.tut.ac.jp

学外利用者の場合

開発サーバのホスト名は lark.imc.tut.ac.jp になります。 アカウント登録システムで発行されたアカウント(par+数字7桁)を使ってください。 学外利用者は公開鍵認証によってユーザを認証します。 プロファイル変更で、自分の公開鍵を登録してください。 公開鍵の作成方法はSSHクライアントの使い方を参照して下さい。

$ ssh lark.imc.tut.ac.jp

キュー構成

xxxxx

キュー名

利用可能ノード数

経過時間制限/ジョブ

プロセス数制限/ノード

メモリ容量制限/ノード

備考

システム構成

ハードウェア構成

分類

ホスト名

機種

CPU

主記憶容量

理論演算性能

アクセラレータ

OS

ファイルシステム構成

ホーム領域

/home/数字/ユーザ名/

教育用Windows端末と同じホーム領域が利用できます.教育用Windows端末からは Z:\ として表示されます。

ワーク領域

/gpfs/work/ユーザ名/

教育用Windows端末からは V:\ として表示されます。

ソフトウェア領域

/common/

コンパイラ

コンパイラ

バージョン

インストールディレクトリ

メッセージ通信ライブラリ(MPI)

ライブラリ

バージョン

インストールディレクトリ

ソフトウェア構成

ソフトウェア名称

バージョン

説明

インストールディレクトリ

構造解析

計算物質科学

計算化学

技術処理

ソフトウェアの利用方法

ソフトウェアの利用方法についてはクラスタシステムの利用方法をご覧ください。

Xeon Phiの利用方法

xxxxx

ネイティブ実行の方法

サンプルプログラムソース

sample_phi.c

#include <stdio.h>
#include <mpi.h>
int main(int argc, char **argv)
{
    int myid, nprocs;
    char hname[128]="";

    MPI_Init(&argc,&argv);
    MPI_Comm_size(MPI_COMM_WORLD,&nprocs);
    MPI_Comm_rank(MPI_COMM_WORLD,&myid);

    gethostname(hname,sizeof(hname));
    if (myid==0)
        printf ("NUMBER OF PROCESSES: %3d\n", nprocs);
    printf("HELLO WORLD! (HOST NAME: %10s, MYID: %3d)\n", hname, myid);

    MPI_Finalize();

    return 0;
}

* MPI用のサンプルプログラムソース(sample_c_mpi.c)と内容は同じです.ファイル名のみ変更しました.

コンパイル方法

実行ファイルは,Xeon CPU用とXeon Phiコプロセッサ用,それぞれ作成する必要があります.コンパイラはintelコンパイラを利用してください.

Xeon CPU用の実行ファイルの作成:

% mpiicc sample_phi.c -o sample_phi

Xeon Phi用の実行ファイルの作成:

% mpiicc -mmic sample_phi.c -o sample_phi.mic

注意点

Xeon Phi用の実行ファイル名には「.mic」を付与してください.

実行ファイル名は,「.mic」を除き,CPU用,Phi用で一致させてください.

ジョブ投入用サンプルスクリプト

phi_native.sh

{{{#!/bin/sh

#PBS -q wSrchq #PBS -l nodes=3:ppn=2:Phi

MIC0_PROCS=3 MIC1_PROCS=1 source /common/torque/MIC/mkmachinefile.sh

cd $PBS_O_WORKDIR mpirun -machinefile ${MACHINEFILE} -n ${PBS_NP} ./sample_phi }}} #PBS -q について

キューは「wSrchq」,「wLrchq」,どちらでも利用できます.

#PBS -l について

「#PBS -l」における「:Phi」は必ずつけるようにしてください.Xeon Phi搭載演算ノードを選択して利用するための設定です.

MIC0_PROCS, MIC1_PROCS について

本システムは1演算ノードに2基のXeon Phiが搭載されています.「MIC0_PROCS=」「MIC1_PROCS=」は演算ノードに搭載された2基のXeon Phiそれぞれについて,起動プロセス数を指定するために利用します.上記のスクリプトファイルでは「nodes=3」により3台の演算ノードが利用され,各演算ノードの1つのXeon Phiは3つのプロセスを起動し,もう一つのXeon Phiは1つのプロセスを起動することになります.なお,Xeon Phiは1基あたり60コア/240スレッドです.「MIC0_PROCS=」「MIC1_PROCS=」で指定する値は240以下としてください.

並列数について

上記のスクリプトファイルでは,合計18のプロセスが起動され並列に実行されます.「nodes=3」によりwsnd00, wsnd02, wsnd03が選択されたとします.また,演算ノードに搭載される2基のXeon Phiを区別するため,Xeon Phi0,Xeon Phi1と呼ぶことにします.この場合,wsnd00で2プロセス,wsnd00のXeon Phi0で3プロセス,wsnd00のXeon Phi1で1プロセス,wsnd02で2プロセス,wsnd02のXeon Phi0で3プロセス,wsnd02のXeon Phi1で1プロセス,wsnd03で2プロセス,wsnd03のXeon Phi0で3プロセス,wsnd03のXeon Phi1で1プロセスが起動され,合計18プロセスとなります.

その他

ジョブ実行キュー,nodes=,ppn=,MIC0_PROCS=,MIC0_PROCS=の各値,実行ファイル名(上記スクリプトファイルではsample_phi)は,必要に応じて適切に変更してください.

オフロード実行方法

サンプルプログラムソース

tbo_sort.c

場所: /common/intel-2013SP1/composer_xe_2013_sp1.0.080/Samples/en_US/C++/mic_samples/LEO_tutorial/tbo_sort.c

コンパイル方法

コンパイルを行う際は「-openmp」オプションを指定してください.コンパイラはintelコンパイラを利用してください.

% icc -openmp tbo_sort.c -o tbo_sort

ジョブ投入用サンプルスクリプト

phi_offload.sh

{{{#!/bin/sh

#PBS -q wSrchq #PBS -l nodes=1:ppn=20:Phi

cd $PBS_O_WORKDIR ./tbo_sort }}} #PBS -q について

キューは「wSrchq」,「wLrchq」,どちらでも利用できます.

#PBS -l について

「#PBS -l nodes=1:ppn=20:Phi」を変更する必要はありません.1台のXeon Phi搭載演算ノードを占有して利用することを意味しています.

その他

ジョブ実行キュー,実行ファイル名(上記スクリプトファイルではtbo_sort)は,必要に応じて適切に変更してください.

制限事項

● mpirunの-machinefileに指定するXeon PhiはIPアドレスにする必要があります.通常,-machinefileの設定値はmkmachinefile.shで自動生成されます.

● MPI通信はtcpのみ利用可能です.mkmachinefile.shにおいてtcpを利用するように設定しています.

● 2015年10月時点,ネイティブ実行可能なノードはwsnd[00-09,14,15]です.ホストを明示的に指定しない限りジョブスケジューラが自動的に実行可能なノードを選択してくれます.