XD2000システム利用の手引き

お知らせ

  • loginしてpromptがbash-4.4$の場合.bashrcに source /etc/skel/.bashrc と書いてください。
  • ハイパースレッティングの機能は性能がでないことが多くバッチスクリプトの中でオフにすることをお勧めします。#SBATCH --hint=nomultithread
  • XD2000でOpenMPの性能を出すためには、ジョブスクリプトに設定を追記する必要があります。詳しくはこちらのページをご覧ください。
  • XD2000ではIntel oneAPIとCray Programming Environment (CPE)の2種類の環境をご利用いただけますが,Intel one APIにおいて再現性なくプログラムが止まる問題があり,まだ解決していません。そのためCPEをご利用下さい(CPEでもIntelコンパイラをお使いいただけます)。
  • Cray環境設定時にenable-cpe.shを二度以上実行した場合、module が purge された(それまでにロードされた環境設定がすべて解除された)状態になる問題が報告されています。Cray環境で実行する際は .bashrc, .cshrc,ジョブスクリプトへの記述も含め、enable-cpe.sh の実行は一度にしていただくようお願いいたします。
  • XD2000において、MOFED改修版導入前にCray環境でのジョブ実行に必要だった環境変数設定をそのまま使っていると、メモリ使用量が増大してしまう問題が報告されています。そのため、MOFED改修版が導入された現在はこれら環境変数設定の削除をお願いしています。詳細はこちらのページをご覧ください。


1. マニュアル(ベンダー提供)

以下のマニュアルを閲覧するにはログインが必要です。

【日本語】

【English】

旧システム(XC50)のマニュアルはこちらです。

【講習会動画】

2024年12月10日に行われましたXD2000講習会の動画を,
2025年8月までXD2000ユーザの皆様限定で公開いたします。

動画へのリンクは以下のページにあります(ページの閲覧にはログインが必要です)。
https://www.cfca.nao.ac.jp/XD2000_lecture2024_movie


2. XD2000システムの概要

CfCAが運用している機材の中で、XD2000利用者に直接関係するものを抜き出した概念図を以下に示します。高速ネットワークで接続された、役割の異なる複数のシステムで構成されています。XD2000を含めたCfCAの共同利用計算機に接続するためには,その前に利用者のローカルなマシンから天文台ネットワークへのVPN接続が必要です(詳細はこちらを参照)。

水沢キャンパスにある機材

水沢キャンパスのスーパコンピュータ室にXD2000システムが設置されています。

  • ログインノード

    2台のサーバ(xd01.cfca.nao.ac.jpとxd02.cfca.nao.ac.jp)で構成されています。プログラムのコンパイルおよびジョブ投入をおこないます。
    Lustreファイルシステムにあるhome領域とwork領域がマウントされています (それぞれ/home/アカウント名,/work/アカウント名)

  • データ転送サーバ

    データ転送用のサーバです。ログインノードよりもネットワークの帯域が広いので,データ転送にはこちらのサーバをご利用下さい。 2台のサーバ(xdnft01.cfca.nao.ac.jpとxdnft02.cfca.nao.ac.jp)で構成されています。
    Lustreファイルシステムにあるhome領域とwork領域がマウントされています (それぞれ/home/アカウント名,/work/アカウント名)

  • Lustreファイルシステム

    計算結果を保存するためのファイルシステム(Lustreファイルシステム、容量は約15PB)が用意してあり、計算ノード群のすべてのノードと高速ネットワークで接続され、計算結果を書き込みます。またhome領域もLustreファイルシステムの中にあります。

    • home領域
      ログインノードとデータ転送サーバからは「/home/アカウント名」で参照できます。容量が小さく、プログラムやスクリプトファイルなどの開発・保存用の領域として利用します。
    • work領域
      ログインノードとデータ転送サーバからは、/work/アカウント名/で参照できます。豊富な容量が割り当てられていて,計算結果の保存用の領域として利用します。容量は採択カテゴリによって異なります。

      work領域内のデータの自動削除をおこなっていません。

  • 計算ノード (XD2000本体)

    XD2000での計算はログインノードではなく、計288台ある計算ノード群で行われます。この計算ノード群がXD2000の本体に対応します。計算ノードへのログインはできません。XD2000の構成はこちらをご覧ください。

三鷹キャンパスにある機材

XD2000に関係する三鷹キャンパスにある機材は、「解析サーバ」と「ファイルサーバ」です。その他、「計算サーバ」や「中規模サーバ」・「GPUクラスタ」を運用しています。

  • 解析サーバ
  • XD2000で計算して得たデータの解析と可視化をおこなうサーバです。XD2000の/work領域は、解析サーバの/xd-workにマウントにされており、解析サーバから直接ファイルを読むことができます(ただし、解析サーバからの書き込みはできません)。

  • ファイルサーバ
  • 計算データの中長期的は保存のために、ファイルサーバを運用しています。
    ファイルサーバの利用には別途申請が必要です。詳細はファイルサーバのページをご覧ください。

    ファイルサーバは、解析サーバの/glv?と/misc/work???・fs??にマウントしていますので、解析サーバから直接データを読み込むことができます。

    解析サーバを介して,XD2000のwork領域からファイルサーバへのデータのコピーができます。詳しくはこちらをご覧ください。


3. 利用方法

XD2000の利用方法の詳細はベンダーから提供されているマニュアルをご覧ください。ここには補足情報のみを載せます。

3.1 ユーザ環境設定

3.1.1 Intel oneAPI環境とCray Programming Environment


XD2000ではIntel oneAPIとCray Programming Environment (CPE)の2種類の環境をご利用いただけますが,Intel oneAPIにおいて再現性なくプログラムが止まる問題があり,まだ解決していません。そのためCPEをご利用下さい(CPEでもIntelコンパイラをお使いいただけます)。

まず,ログイン後に各環境を有効にするための環境設定用のスクリプトを実行する必要があります。ユーザ環境の設定にはEnvironmental Modules (moduleコマンド)が使われていますが,ロードできるモジュールは環境毎に異なります。

  1. Cray Programing Environment
  2. $ source /work/opt/local/bin/enable-cpe.sh (for sh/bash)
    $ source /work/opt/local/bin/enable-cpe.csh (for csh/tcsh)

    上記のスクリプトの実行は2回以上行わないでください。例えば.bashrcや.tcshrcで実行した上で,ジョブスクリプト内で実行すると2度実行したことになります。それまでにロードされた環境設定がすべて無効になります。

    CPEでのプログラミング環境は,CrayとIntel・GNUをお使いいただけます。デフォルトはCray環境となっています。
    以下のようにmodule swtichで環境の変更が可能です。

    $ module switch PrgEnv-cray PrgEnv-gnu (crayからgnuへ)
    $ module switch PrgEnv-cray PrgEnv-intel (crayからintelへ)

    コンパイルする際のコマンドはどのプログラミング環境でも,ftn (Fortran), cc (C言語), CC (C++)をお使い下さい。
    mpif90, mpicc, mpicxx などのMPI用ラッパーコマンドは使用しないでください。

3.1.2 シェルの環境設定ファイル

ファイル転送サーバとログインノードはホームディレクトリを共有しています。
各ノード毎に読み込むべき設定が異なりますので,シェルの環境設定ファイル内で,処理を分ける必要があります。

以下はCPE環境でIntelコンパイラを使う場合の例です。お使いのコンパイラに応じて書き換えて下さい。
また自動で読み込みたいモジュールがありましたら,「module load ???」を付け加えて下さい。

  • bashをお使いの場合
    ホームディレクトリに.bashrcと.bash_profileを置きます。

    .bashrcに

    hname=`hostname -s`
    if [ $hname == "xd01" -o $hname == "xd02" ]; then
    source /work/opt/local/bin/enable-cpe.sh
    module switch PrgEnv-cray PrgEnv-intel
    fi

    を記述します。加えてログイン時に読み込まれる.bash_profileに,

    [[ -f ~/.bashrc ]] && source ~/.bashrc

    と記述します。

  • tcshをお使いの場合

    ホームディレクトリに.tcshrcを置き,その中に

    set hname = `hostname -s`
    if ( $hname == "xd01" || $hname == "xd02" ) then
    source /work/opt/local/bin/enable-cpe.csh
    module switch PrgEnv-cray PrgEnv-intel
    endif

    を記述して下さい。

3.2 ディスク容量

home領域とwork領域は共にLustreファイルシステムにあります。
それぞれの領域のユーザあたりのソフトリミットとハードリミットは以下になります。

領域 対象カテゴリ ソフトリミット ハードリミット
home 全て 250GB 625GB
work XD-A 298TB 300TB
XD-B+, cfca 198TB 200TB
XD-B, XD-B*, XD-MD, XD-Trial 18TB 20TB
  • 使用量がソフトリミットを超過した場合は,猶予期間7日を超えると,該当する領域でファイルに書き込みができなくなります。
  • 使用量がハードリミットを超過した場合は,該当する領域でファイルの書き込みができません。実行中のジョブにも適用されます。

3.3 データ転送

XD2000 ⇒ ローカルマシン

XD2000のwork領域からローカルマシンへのデータ転送には,帯域が広いデータ転送サーバをご利用ください。

$ scp -rp xdnft01.cfca.nao.ac.jp:/work/アカウント名/データファイルへのパス ローカルマシンの保存先へのパス
$ scp -rp xdnft02.cfca.nao.ac.jp:/work/アカウント名/データファイルへのパス ローカルマシンの保存先へのパス

XD2000 ⇒ ファイルサーバ

XD2000で計算した結果をファイルサーバに転送するには,解析サーバにてcpコマンドを実行していただくのが便利です。

$ cp -rp /xd-work/アカウント名/データファイルへのパス 転送先のファイルサーバのディレクトリ

3.4 Apptainerの使用方法

XD2000ではHPC向けコンテナ環境であるApptainerをご利用いただけます。XD2000のログインノードから外部へのhttpアクセスが可能ですので,XD2000上でコンテナイメージの作成が可能です。

ここでは例としてubuntu24.10を用います。ご使用いただけるdockerイメージは以下からご覧になれます。
https://hub.docker.com

  1. コンテナの構築
    • 定義ファイルを用いてコンテナを構築する場合

      まず、以下のようなdefファイルを作ります。

      $ cat ubuntu24.def
      Bootstrap: docker
      From: ubuntu:24.10

      %post
      apt-get update
      apt-get install (必要なソフトウェア)-y

      以下のコマンドで先ほど作ったdefファイルからビルドします。

      $ apptainer build --fakeroot ubuntu24.sif ubuntu24.def
    • コンテナにログインして構築する場合

      まず、コンテナイメージをsandbox形式で用意します。

      $ apptainer build --sandbox ubuntu24 docker://ubuntu:24.10

      コンテナにログインします。

      $ apptainer shell --writable --fakeroot ubuntu24

      必要なソフトウェアをインストールし、コンテナからログアウトします。

      Apptainer> apt-get update
      Apptainer> apt-get install (必要なソフトウェア)-y
      Apptainer> exit

      sandbox形式のイメージをsifファイルに変換します。

      $ apptainer build ubuntu24.sif ubuntu24
  2. コンテナの使用

    ジョブスクリプト内で実行コマンド部分を以下のようにします。

    $ cat test.sh
    ...
    (略)
    ...
    srun apptainer exec --bind /work/<username> ubuntu24.sif (実行ファイル)

    ジョブスクリプトを実行します。

    $ sbatch test.sh

3.5 控えて頂きたい行為

利用者の皆様の利便性のため、XD2000システムでは迷惑行為を防ぐための制限を設けておりません。そのため、特に以下の2つの行為はお控えいただきますよう、ご協力をよろしくお願いいたします。

ログインノードでの負荷のかかるプロセスの実行

ログインノードは2台しかなく、1台に多くの利用者がログインして利用しています。ログインノードでのシミュレーションの実行はもちろんのこと、CPUとメモリを大きく使用するプロセスの実行は、ほかの利用者の迷惑になりますので、お控え下さい。
たとえば可視化プログラムの実行などは,解析サーバをご利用下さい。

ノード当たり112コアを大きく下回る並列計算の実行

計算資源はコア単位ではなくノード単位で割り当てられるため、たとえば並列数2の計算を実行してしまうと、残り110コアは無駄になってしまいます。デバッグの際にはそのような計算が必要な場面もあると思いますが、本番のシミュレーション実行の際には、ノード当たり112コアを大きく下回る並列計算はお控えください。小規模の並列計算はPPC (計算サーバ)をご利用下さい。


4. サンプルコード