現在地

計算機利用の手引き

[最終更新日時] 2017年10月25日

English versionもあります。

接続

RCCSのコンピューターへのログイン

  • フロントエンド(ccfep.ims.ac.jp, cckf.ims.ac.jp)へはsshの公開鍵認証を使って接続します。
  • メンテナンス中はログイン出来ません。→定期メンテナンス情報(メンテナンス日は原則毎月第一月曜日)
  • フロントエンドへのログインは、日本に割り当てられたIPv4アドレスを持つホストまたは許可されたホストからでなければなりません。→センターへの接続について

ssh公開鍵とウェブページ用パスワードの登録

sshの公開鍵と秘密鍵のペアを最初に作成しておきます。作成方法が不明な方はインターネットなどで調べてください。

初めて登録する場合もしくはウェブページ用パスワードを忘れた場合

  1. 専用ウェブページの「登録案内メールの発行」をウェブブラウザーで開きます。
  2. 利用申請書で申請したメールアドレスを入力後、「登録案内メール送信」ボタンを押します。
  3. 自動送信されたメールの中に記載されているURLをウェブブラウザーで開きます。
  4. ユーザー限定ページにアクセスするために、新たに設定したいパスワードを2ヶ所に入力します。
  5. あらかじめ用意したsshの公開鍵をペーストなどして入力します。
  6. 「保存」ボタンを押します。

ウェブページ用パスワードを使う場合

  1. 専用ウェブページ(https://ccportal.ims.ac.jp/account/)をウェブブラウザーで開き、ユーザー名とパスワードを入力し、「ログイン」ボタンを押します。
  2. 画面右上の「アカウント情報」を開きます。
  3. 「編集」タブを押します。
  4. パスワードを変更するは、現在のパスワードと新たに設定したいパスワードを入力します。
  5. あらかじめ用意したsshの公開鍵をペーストなどして入力します。
  6. 「保存」ボタンを押します。

ログインシェル

  • 諸般の事情により、/bin/cshのみで変更できません。ただし、PRIMEHPC FX10では/bin/bashです。
  • .loginや.cshrcはカスタマイズしても構いませんが、十分な注意が必要です。

RCCSシステムの全体像

  • いわゆる会話処理ができるのは、ccfep (8ノード), cckf (1ノード)でビルドやデバッグができます。
  • すべての会話処理ノードはインターネットから直接ログインできます。
  • 計算ノードは、LX(ccnf系、ccnn系、ccca系、cccc系)、PRIMEHPC FX10(cck系)の2種類あります。通常はLXを利用してください。
  • PRIMEHPC FX10を利用するには利用申請や補充申請時に希望理由の記述が必要です。
  • 保存期間が異なるディスクが、/work、/ramd、/week、/home、/saveの5種類あります。
  • アクセス速度は、下図の太い線の方が高速です。
  • /workは計算途中の一時ファイルを置くのに使います。(ジョブ終了後に削除されます)
  • /ramdは容量が176GBもしくは752GB程度のラムディスクで、ノードを専有する場合に利用できます。プログラムで使うメモリー量とラムディスクで使う容量の総計はノードの実メモリー量を越えないようにしなければなりません。
  • /weekは保存期間が8週間で、計算再開用データやMDのトラジェクトリー等の用途に向いています。
  • /homeと/saveの違いは、センター側でデータのバックアップを取るか取らないかの違いです。
  • /tmp、/var/tmp、/dev/shmの一時ディレクトリーの使用を禁止します。一時ディレクトリーを使用しているジョブは見つけ次第削除しますので予めご了承ください。

リソース関係

CPU点数とキュー係数

CPU点数は、CPUやGPUを使うことによって減ります。
減る点数はシステム毎に設定されているCPUキュー係数とGPUキュー係数により求められます。

システム CPUキュー係数 GPUキュー係数
cclx
(jobtype=large)
60 / (点/(1ノード * 1時間)) -
cclx
(jobtype=small)
40 / (点/(1ノード * 1時間)) -
cclx
(jobtype=core)
1.5 / (点/(1コア * 1時間)) -
cclx
(jobtype=gpu, gpu1, gpu2)
1.5 / (点/(1コア * 1時間)) 15 / (点/(1GPU * 1時間))
cck 0.5 / (点/(1コア * 1時間)) -
  • 会話処理のccfepはCPU時間でCPU点数が消費されます。
  • 会話処理のcckfは点数が消費されません。
  • 他のシステムは、経過時間でCPU点数が消費されます。
  • 実際の費用は無料です。

 現在の使用CPU点数、残りのCPU点数を知るためには、showlim -cコマンドを使います。

リソース集計

  • キューイングシステムで実行されたジョブの集計とディスク使用量の集計は10分毎に行います。
  • 会話処理の集計は、毎日5:15に行ないます。
  • CPU点数を使いきると、グループ内利用者全員の全ての実行中ジョブは削除され、新たなジョブ投入が抑止されます。
  • ディスク使用量が制限値を越えると、新たなジョブ投入が抑止されます。

ユーザ別 リソース制限の設定/表示

ウェブブラウザーでリソース制限設定ページにアクセスします。
  • 代表利用者のみがリグループ内のメンバー個々に対してグループに割り当てられたリソース量を限度に制限値を設定できます。
  • 一般利用者はリソース制限の値を確認することができます。
  • リソース制限の種類は、CPU数、点数、ディスク容量です。

キューイングシステム関連

キューイングシステムの全体像

キュー構成

全利用者が利用可能なキュー

システム キュー名

演算ノード

メモリー 1ジョブの
制限
グループ実行制限 グループサブミット制限
割当点数 コア数/GPU数 割当点数 ジョブ数
cclx PN
(jobtype=large)
ccnf 18.8GB/core 1〜10ノード
(40〜400コア)
300万点以上
100万点以上
30万点以上
10万点以上
10万点未満
4000/48
2560/32
1600/20
960/12
320/8
300万点以上
100万点以上
30万点以上
10万点以上
10万点未満
4000
2560
1600
960
320
cclx PN
(jobtype=small)
ccnn
ccnf
4.4GB/core 1~30ノード
(40〜1200コア)
cclx PN
(jobtype=core)
cccc
ccca
4.8GB/core 1〜18コア
cclx PN
(jobtype=gpu, gpu1, gpu2)
ccca 7.3GB/node 2〜24コア(2GPU)
1〜12コア(1GPU)
  • ジョブの最大時間は、定期メンテナンスまでです。ただし、1週間を越えるジョブが実行できる演算ノードは全体の半数です。
  • 526ノード並列までのジョブは、同一OmniPathグループ内に接続された演算ノードで実行されます。
  • 8ノード並列までのジョブは、同一OmniPathスイッチに接続された演算ノードで実行されます。
  • 演算ノードccnnのうち264ノードは4ノード以上のジョブ専用です。
  • ジョブの最大時間が1日以下のジョブタイプsmallのジョブは、演算ノードccnfで実行される場合があります。
  • ジョブの最大時間が3日以下で要求コア数が6-12のジョブタイプcoreのジョブは、演算ノードcccaで実行される場合があります。
  • ジョブタイプcore, gpu, gpu1, gpu2のジョブは他のジョブとノードを共有します。
  • 演算ノードcccaには2 GPUが搭載されていますが構成が2種類あります。1つのCPU配下に2 GPUがある演算ノードを明示的に指定する場合は、jobtype=gpu2を指定してください。2つのCPU配下にそれぞれ1GPUがある演算ノードを明示的に指定する場合は、jobtype=gpu1を指定して下さい。どちらの演算ノードでもよい場合は、jobtype=gpuを指定して下さい。GPU間通信が主の場合はjobtype=gpu2が適しています。CPU-GPU間通信が主の場合はjobtype=gpu1が適しています。2017年10月の運用では、すべてjobtype=gpu2の構成です。
  • グループ制限を判断する点数には追加点数を含みません。

別途申請が必要なキュー

キューの設定は下記の通りです。

システム キュー名 制限時間 メモリー 1ジョブあたりのコア数 グループ制限
cck large
small1
small2
24時間 1.8GB/core 72x16 (固定)
12x16 (固定)
12x16 (固定)
実行ジョブ数:1
ジョブサブミット本数:2(*)
cclx 専有利用 7日間単位 4.4GB/core 応相談 許可されたコア数

(*) 2本以上のジョブは自動的にジョブサブミット待ちリストに入り、実行ジョブの終了に合わせて自動的にサブミットされるように作り込んでありますので、それ以上のジョブを入れておく事も可能です。
 

制限時間は、経過時間で制限されます。

ジョブの状態表示

LXの場合

システムで何本のジョブがどれだけのCPUを使っているかの一覧表示するには、

ccfep% jobinfo [-s] -h cclx

とします。キューで何本のジョブがどれだけのCPUを使っているかの一覧表示するには、

ccfep% jobinfo [-s] -q (PN|PNR[0-9])

とします。-sオプションは、省略できます。

 システムのバッチジョブの詳細を知りたい場合は、

ccfep% jobinfo -l [-g|-a] -h cclx

とします。-gオプションをつけると同一グループのジョブも表示されます。-aオプションをつけると全ユーザーのジョブが表示されます。自分以外の情報は、暗号化されています。
キューのバッチジョブの詳細を知りたい場合は、

ccfep% jobinfo -l [-g|-a] -q (PN|PNR[0-9])

とします。

PRIMEHPC FX10の場合

cckf% pjstat [-v]

ジョブの投入

下記の2つの方法があります

  • jsub、pjsub(FX-10)コマンドにバッチファイルを指定してジョブを投入する
  • g09sub / g16subコマンドにgaussianのインプットファイルを指定してジョブを簡単に投入する(gaussian専用)

以下はjsub、pjsubを使ってジョブを投入する方法です

ヘッダー部の書き方

ジョブの投入には、バッチスクリプトが必要です。その際、バッチコマンドをスクリプトの最初に記述しなければなりません。

LXの場合

現在、cshのみ正式に対応しています。

意味 ヘッダー部 重要度
第一行目 #!/bin/csh -f 必須
使用CPU数 #PBS -l select=[Nnode:]ncpus=Ncore:mpiprocs=Nproc:ompthreads=Nthread:jobtype=Jobtype[:ngpus=Ngpu] 必須
時間制限 #PBS -l walltime=72:00:00 必須
ジョブの開始前後に
メールで通知
#PBS -m be オプション
バッチジョブ投入
ディレクトリへの移動
cd ${PBS_O_WORKDIR} 推奨
  • Nnode: 実ノード数
  • Ncore: ノードあたりの確保するコア数
  • Nproc: ノードあたりのプロセス数
  • Nthread: プロセスあたりのスレッド数
  • Jobtype: large, small, core, gpu, gpu1, gpu2のいずれか
    • large: 18.8GB / core
    • small: 4.4GB / core
    • core: 18コア以下のジョブ
    • gpu, gpu1, gpu2: GPUを使う計算
  • Ngpu: 使用するGPUの数
2ノード80プロセス並列(MPI並列)する場合の「使用CPU数」行の書き方

#PBS -l select=2:ncpus=40:mpiprocs=40:ompthreads=1:jobtype=small

GPGPUを使用する場合の「使用CPU数」行の書き方

#PBS -l select=ncpus=6:mpiprocs=1:ompthreads=1:jobtype=gpu:ngpus=1

PRIMEHPC FX10の場合

bashがデフォルトです。
ステージング機能は使用禁止です。

意味 ヘッダー部 重要度
第一行目 #!/bin/bash 必須
キュークラス #PJM -L "rscunit=unit1"
#PJM -L "rscgrp=Class"
必須
ノードの形状 #PJM -L "node=Node" 必須
時間制限 #PJM -L "elapse=01:00:00" オプション
MPIのランク番号と
ノード形状の関係
#PJM --mpi "Rank" オプション
MPIのプロセス数 #PJM --mpi "proc=Nproc" オプション
統計情報の出力 #PJM -s オプション
バッチジョブ投入
ディレクトリへの移動
cd ${PJM_O_WORKDIR:-'.'} 推奨
環境設定 #(最新の開発環境の場合;会話処理では設定不要)
source /k/home/users/skel/Env_base.sh
#(09版を使う場合)
#source /k/home/users/skel/Env_base_1.2.1-09.sh
#(08版を使う場合)
#source /k/home/users/skel/Env_base_1.2.1-08.sh
#(06版を使う場合)
#source /k/home/users/skel/Env_base_1.2.1-06.sh
#csh版は拡張子を.cshにしたものを用意してあります。
必須
  • Class: large, small1, small2のいずれか
  • Node: N1, N1xN2, N1xN2xN3の形式のいずれか
    • small1, small2では最大12(2x3x2)
    • largeでは最大72(2x3x12)
    • 三次元の場合は形状よりも小さくなければなりません。
  • Rank: rank-map-bynode[=(XY|YX|XYZ|XZY|YXZ|YZX|ZXY|ZYX)], rank-map-bychip[:(XY|YZ|XYZ|XZY|YXZ|YZX|ZXY|ZYX)], rank-map-hostfile=filenameのいずれか
    • rank-map-bynodeはノード順にランク番号を割り当てます。先頭文字の軸方向にランクを並べ、上限まで達した時点で次の文字に移動します。ノード数よりプロセス数が多い場合は最初のノードに戻ります。
    • rank-map-bychipは、ノード数よりプロセス数が多い場合にノード毎に連続したランク番号を与えます。
    • rank-map-hostfileは1行に1座標を記述します。例:(0), (0,0), (0,0,0)
  • Nproc: MPIのプロセス数

ジョブの投入コマンド

LXの場合

バッチスクリプトが準備できたら、下記のようにジョブを投入します。

ccfep% jsub -q (PN|PNR[0-9]) [-g XXX] [-W depend=(afterok|afterany):JOBID1[:JOBID2...]] script.csh

計算物質科学スパコン共用事業利用枠としてジョブ投入する場合は、-gオプションをつけます。(XXXは計算物質科学スパコン共用事業利用枠のグループ名)
ジョブの依存関係を-Wオプションで設定できます。正常終了後に実行させる場合はafterok、異常終了後でも実行させる場合はafteranyを指定します。依存関係のあるジョブIDをコロンで区切って指定します。
バッチスクリプトのサンプルは、ccfep:/local/apl/lx/アプリケーション名/samples/にあります。

PRIMEHPC FX10の場合

キューイングシステムの都合上、ジョブを投入する本数は同一研究グループあたり全キュークラスで合計2本まででお願いします。
/usr/local/bin/pjsubでサブミットする場合は、何本サブミットして頂いても構いません。

cckf% pjsub [-g XXX] script.csh

計算物質科学スパコン共用事業利用枠としてジョブ投入する場合は、-gオプションをつけます。(XXXは計算物質科学スパコン共用事業利用枠のグループ名)

ジョブの取消

LXの場合

 jobinfoコマンドで、取り消したいジョブのRequest IDを調べます。その後、

ccfep% jdel [-h cclx] RequestID

とします。

PRIMEHPC FX10の場合

pjstatコマンドで、取り消したいジョブのRequest IDを調べます。その後、

cckf% pjdel RequestID

とします。

実行済みジョブの情報取得

ジョブの終了日時、経過時間、並列化効率の情報をjobeffコマンドで得ることができます。

ccfep% jobeff -h (ccuv|ccpg|cclx) [-d "last_n_day"] [-a] [-o item1[,item2[,...]]]

表示される項目を-oオプションを使ってカスタマイズすることができます。itemには次のキーワードを指定することができます。

  • jobid: ジョブID
  • user: ユーザー名
  • group: グループ名
  • node: 計算に使われたノード名
  • start: ジョブの開始時刻(YYYY/MM/DD HH:MM)
  • Start: ジョブの開始時刻(YYYY/MM/DD HH:MM:SS)
  • finish: ジョブの終了時刻(YYYY/MM/DD HH:MM)
  • Finish: ジョブの終了時刻(YYYY/MM/DD HH:MM:SS)
  • elaps: 経過時間
  • cputime: 全CPU時間
  • used_memory: 使用したメモリー量
  • ncpu: 予約したCPU数
  • nproc: MPIのプロセス数
  • nsmp: プロセスあたりのスレッド数
  • peff: 並列化効率
  • attention: 非効率なジョブかどうか
  • command: ジョブ名

ビルドと実行

ビルドのコマンド

システム 言語 非並列 自動並列 OpenMP MPI
cclx
(Intel)
Fortran ifort ifort -parallel ifort -qopenmp mpiifort
C icc icc -parallel icc -qopenmp mpiicc
C++ icpc icpc -parallel icpc -qopenmp mpiicpc
cclx
(PGI)
Fortran pgfortran pgfortran -Mconcur pgfortran -mp  
C pgcc pgcc -Mconcur pgcc -mp  
C++ pgcpp pgcpp -Mconcur pgcpp -mp  
cck Fortran frtpx -Kfast frtpx -Kfast,parallel frtpx -Kfast,openmp mpifrtpx -Kfast
C fccpx -Kfast fccpx -Kfast,parallel fccpx -Kfast,openmp mpifccpx -Kfast
C++ FCCpx -Kfast FCCpx -Kfast,parallel FCCpx -Kfast,openmp mpiFCCpx -Kfast

MPIの実装

システム MPIの種類
cclx Intel MPI (MPI 3.0に準拠)
cck (MPI 1.3に準拠)

インストールされているライブラリー関数

システム ライブラリー関数
cclx intel MKL, Intel IPP, Intel TBB
cckf BLAS, LAPACK, ScaLAPACK, SSL II

並列プログラムの実行方法

システム 自動並列・OpenMP MPI ハイブリッド
cclx setenv OMP_NUM_THREADS 4
./a.out
mpirun -np 4 ./a.out setenv OMP_NUM_THREADS 4
mpirun -np 8 ./a.out
cck source /k/home/users/skel/Env_base.sh
export OMP_NUM_THREADS=4
export PARALLEL=4
lpgparm ./a.out
mpiexec lpgparm ./a.out export OMP_NUM_THREADS=4
export PARALLEL=4
mpiexec lpgparam ./a.out

 ハイブリッドとは、自動並列またはOpenMPとMPIを組み合わせた方法です。

GPUを使うプログラムの実行方法

1ノードに2枚のGPUが搭載されていますが、GPUDirect Peer-to-Peer通信できるのはjobtype=gpu2のみです。
プログラムの種類によって、最適な方法を選んで実行する必要があります。

2本のシリアルジョブの同時実行例

setenv CUDA_VISIBLE_DEVICES 0
./a.out < input1 > output2 &
setenv CUDA_VISIBLE_DEVICES 1
./a.out < input2 > output2 &
wait

2GPUを1本のジョブで使う実行例

mpirun -np 4 -wdir ${PBS_O_WORKDIR} ./a.out < input > output

開発支援ツール

一部コマンドライン版も使えますが、一般的にはX Window版の方が使いやすいです。

Intel Inspector

  • メモリ/スレッドエラー検証ツール
  • (GUI command) inspxe-gui
  • (CUI command) inspxe-cl

Intel Vtune Amplifier XE

  • 性能解析ツール
  • (GUI command) amplxe-gui
  • (CUI command) amplxe-cl

Allinea Forge

  • デバッガー
  • (GUI command) ddt

FUJITSU Software Development Tools

  • WindowsとMacOS Xで動作するFX10用のプログラミング支援ツール
  • http://cckf.center.ims.ac.jp/からダウンロードできます。
  • Serverには"cckf.center.ims.ac.jp"、NameとPasswordにはcckfで使っているアカウント名とパスワードを入力します。

Fujitsu Instant Performance Profiler

  • FX10用フロントエンド(cckf)で動作するプロファイラ情報出力ツール
  • 利用するためにはパスワードの登録が必要です。grub-cryptコマンドで出力されるパスワードのハッシュ値をccadm[at]draco.ims.ac.jp宛(迷惑メール対策のため、@を[at]に置換しています)に送信してください。
  • https://cckf.ims.ac.jp/に記されている環境変数を設定します。
  • fipppxコマンドは、基本プロファイラ情報を出力します。
  • fapppxコマンドは、アプリケーションが指定した区間の詳細プロファイリングデータを出力します。
  • 計算ノードでプロファイル情報を収集後、FX10用フロントエンドでテキストのプロファイル情報に変換します。

パッケージプログラム

  • 各システムにインストールされている最新の一覧は、パッケージプログラム状態一覧で参照できます。
  • バッチスクリプトのサンプルは、ccfep:/local/apl/システム名/アプリケーション名/samples/ディレクトリーを御覧下さい。
  • アプリケーションの実体は、各システムの/local/apl/システム名/アプリケーション名/にあります。
  • センターでビルドしたアプリケーションの構築法はアプリケーションライブラリーの構築方法を御覧下さい。

ソフトウェア導入の要望

下記の項目を全てご記入の上、ccadm[at]draco.ims.ac.jp宛(迷惑メール対策のため、@を[at]に置換しています)に送信してください。
有料ソフトウェアの場合、導入できないことがあります。

  • 導入を希望するソフトウェアの名前、バージョン
  • ソフトウェアの概要と特長
  • 共同利用システムに導入を希望する必要性
  • 開発元のURL

RCCS固有コマンド

バッチジョブ関連

ジョブ状態表示

ccfep% jobinfo [-c] [-s] [-l|-m [-g|-a]] [-n] -h cclx

もしくは

ccfep% jobinfo [-c] [-s] [-l|-m [-g|-a]] [-n] -q (PN|PNR[0-9])

  • -c 最新データを使って表示
  • -s サマリー表示
  • -m メモリ情報を表示
  • -l リスト表示
  • -g グループ内の全ユーザの情報を表示
  • -a 全てのユーザの情報を表示
  • -n ノード別空きコア数を表示
  • -h 対象システムを指定
  • -q 対象キューを指定

ジョブ投入

ccfep% jsub -q (PN|PNR[0-9]) [-g XXX] [-W depend=(afterok|afterany):JOBID1[:JOBID2...]] script.csh

ジョブ削除

ccfep% jdel [-h cclx] RequestID

完了したジョブ情報取得

ccfep% jobeff -h (ccuv|ccpg|cclx) [-d "last_n_day"] [-a] [-o item1[,item2[,...]]]

Gaussian専用ジョブ投入ツール

g16の場合

ccfep% g16sub [-q "QUE_NAME"] [-j "jobtype"] [-g "XXX"] [-walltime "hh:mm:ss"] \
              [-noedit] [-rev "g16xxx"] [-np "ncpus"] [-mem "size"] [-save] [-mail] input_files

  • g09を使うg09subコマンドも有ります。
  • デフォルトのwalltimeは72時間に設定しています。ジョブの実行時間より多少多めに時間を設定してください。
  • "g16sub"と入力すると各オプションの意味や使用例が表示されます。

資源使用状況表示

ccfep% showlim (-cpu|-c|-disk|-d) [-m]

  • -cpu|-c: 使用した使用点数と割当点数の表示
  • -disk|-d: 使用しているディスク容量と上限容量の表示
  • -m: 所属全メンバー毎の使用状況と上限値の表示

バッチスクリプト用ユーティリティーコマンド

コマンドの実行時間の制限

/local/apl/lx/ps_walltime -d duration -- command [arguments...]

  • -d duration: コマンドを実行させたい時間を"-d 72:00:00"のような形式で記述します。
  • 指定時間を過ぎるとcommandをkillします。

ジョブの統計情報の表示

/local/apl/lx/jobstatistic

  • PBSのヘッダー行でジョブ終了時にメール送信を指示したときに含まれるジョブ統計情報相当を出力します。
  • コマンド実行時までのジョブ統計情報です。

出力項目

  • resources_used.cpupercent: CPU利用効率。最大の値はスレッド数x100。複数ノード使用時には異常値を示す場合があります。
  • resources_used.cput: 各CPUで実際に演算した時間の総和。
  • resources_used.mem: 実際に使用したメモリー量。
  • resources_used.ncpus: 使用したCPU数。
  • resources_used.walltime: ジョブの実行時間。

問い合わせ

https://ccportal.ims.ac.jp/contact
をご参照下さい。