Linaro Forge

Linaro Forgeは,GUIベースの強力なデバッガ/プロファイラで,様々なコンパイラ環境に対応しています. DDTがデバッガ,MAPがプロファイラとなっています.

DDT

  • 並列アプリケーション対応
  • メモリデバッグ
  • リバースデバッグ
  • 視覚的表現による効率的なデバッグ(プログラム,変数,MPIプロセス間通信)

MAP

  • 並列アプリケーション対応
  • パフォーマンスのボトルネックをソースの行レベルで表示
  • 視覚的表現によるボトルネックの直観的な把握

バージョン モジュールファイル名 システムA システムB/C システムG/クラウド
24.0 (default) linaro_forge/24.0 KU KU KU
23.1.1 linaro_forge/23.1.1 KU KU KU

+ : すべてのユーザが利用可能
AU : 学術研究機関限定で利用可能
KU : 京都大学構成員限定で利用可能
― : 利用不可

moduleコマンドを実行し,環境設定を行います.(利用したいバージョンのmoduleファイルをロードします).

$ module load linaro_forge

対象のプログラムをデバッグオプション( -g )付でコンパイルします.

例 ソースプログラム( mmult.c )をIntelコンパイラでコンパイル

mpiicc mmult.c -o mmult_c -g

FastX で,次のコマンドを実行するとMAP/DDTのウェルカム画面が起動します. tssrun コマンドの詳細は 会話型処理 をご覧ください.

tssrun [option] -x11 forge --mpi=slurm

コマンド例(例:システムAで4つのプロセスを起動しgr19999a キューを使う場合):

tssrun -p gr19999a --rsc p=4 -x11 forge --mpi=slurm

ウェルカム画面で「Linaro DDT」->「Run」を選択すると,デバッガの設定ダイアログが開きます.
「Application」の項目に,デバッグしたいプログラム名を入力します.
プロセス並列の場合:「MPI」の項目にチェック入れて,対象のプログラムの並列数を設定します.
スレッド並列の場合:「OpenMP」の項目にチェック入れて,対象のプログラムの並列数を設定します.
必要な設定を行い[Run]をクリックします.

tssrun [option] -x11 ddt --mpi=slurm [filename]

コマンド例(例:システムAで4つのプロセスを起動しgr19999a キューを使う場合):

tssrun -p gr19999a --rsc p=4 -x11 ddt --mpi=slurm ./mmult_c

下記の画面が表示され,プログラムのデバッグが行えます.

ウェルカム画面で「Linaro MAP」->「Profile」を選択すると,プロファイラの設定ダイアログが開きます.
「Application」の項目に,デバッグしたいプログラム名を入力します.
プロセス並列の場合:「MPI」の項目にチェック入れて,対象のプログラムの並列数を設定します.
スレッド並列の場合:「OpenMP」の項目にチェック入れて,対象のプログラムの並列数を設定します.
必要な設定を行い[Run]をクリックすると,プログラムの実行が始まります.

MAP内でのプログラムの実行は,プログラムの終了まで続きます.
途中で止める場合は「Stop and Analyze」を押してください.

プログラムが終了するか,途中で止まると,解析が始まり,下記の解析結果の画面が表示されます.

会話型処理から実行する場合

MAPでプログラムを解析する場合は,--profileオプションをつけて実行します.
会話型処理の利用方法は 会話型処理をご覧ください.

tssrun [option] -pty map  --profile --mpi=slurm [filename] [argument]

コマンド例(例:システムAで4つのプロセスを起動しgr19999a キューを使う場合):

tssrun -p gr19999a --rsc p=4 -pty map --profile --mpi=slurm ./mmult_c 3072

バッチ処理で実行する場合

バッチスクリプト内で -np オプションで--rscオプションのpの値と同じに指定します.
バッチの利用方法は バッチ処理をご覧ください.

#!/bin/bash
#============ Options ============
#SBATCH -p gr19999a
#SBATCH -t 1:00:00
#SBATCH --rsc p=4:t=4:c=4:m=20G
#============ Shell Script ============
module load linaro_forge
map -np 4 --profile --mpi=slurm ./mmult_c 3072

指定可能オプション

オプション 説明
-np num プロセス並列数
--profile MAPでプログラムを解析する場合に指定
--mpi=slurm 指定されたMPI並列数をSlurmに渡します

手順1で出力されたファイルを指定して結果を表示します.

tssrun [option] -x11 map --mpi=slurm [filename]

コマンド例(例:システムAで4つのプロセスを起動しgr19999a キューを使う場合):

tssrun -p gr19999a --rsc p=1 -x11 map --mpi=slurm ./mmult_c_1p_1n_1t_2024-05-16_16-26.map

Linaro Forge User guide

Linaro Forge