Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

I/O最適化

このページは、2026-06-05の勉強会でチームが共有したI/O最適化の基礎をまとめたものです。 担当: 小林。HPCとAIの両方にまたがるため、性能分析章に置きます。

これは何か

I/O最適化とは、システムやストレージにおけるデータ読み書きの処理効率を高め、待ち時間を減らす手法です。 計算が速くても、ファイルの読み書きで待っていると全体は遅くなります。

HPC(OpenFOAM)でのI/O

OpenFOAMでは計算中に次のI/Oが発生します。

  • モデルロード、初期メッシュ読み込み
  • 境界条件・物性値ファイルの読み込み
  • 各時刻ディレクトリへの結果出力、ログ出力
  • 並列実行時のprocessor*/以下への読み書き
  • post-processing用データ出力

対策の方向性

対策内容
scratch領域の活用一時ファイル・中間ファイルを高速なローカル/作業用ストレージに置く
出力頻度の調整書き出す時刻ステップ・ログ量を減らす
並列I/O形式の検討collated形式など、ファイル数と書き込み方式を見直す

scratch領域とは、マシンから高速にアクセスできる作業用ディレクトリのこと。計算中に一時的に使います。

富岳でのI/Oプロファイリング(要確認)

富岳の利用手引書には、I/Oプロファイリング・I/O最適化の項目があり、DarshanLLIO情報でI/O待ちを確認できるとされています。 ただし2026年大会の実機・利用可否は未確定です(調査ステータス)。

AI(Qwen multi-GPU推論)でのI/O

Qwenのmulti-GPU推論では、次のデータ移動が性能に影響します。

  • モデル重みの読み込み
  • 入力リクエストの読み込み
  • CPU → GPU 転送
  • GPU間通信(NCCL
  • KV cacheの読み書き
  • prefill worker → decode worker のデータ受け渡し
  • ログ出力

対策の方向性

対策内容
パイプライン化GPUが計算している間に、次の入力をCPU側で準備する
モデルロード時間の短縮大規模LLMの重みロードが競技の課題になりうる。配置の工夫
重みの配置scratch領域に重みを置けるかは環境依存(昨年は議論あり、要確認)

昨年のI/O最適化(経験談)

  • 昨年のHPCでは、一時ファイル・中間ファイルの置き場所をscratch領域に変えて高速化していた、との情報があります(要確認)。
  • AI課題でも、本番でDeepSeekの重みをscratch領域に置けたとの話がありますが、玄界では不可だった可能性も指摘されています(要確認)。

出典: 木更津高専チームの参加記(経験談)。

最初に見るべき指標

観点見るものなぜ重要か
I/O待ち時間読み書きにかかった時間、I/O待ち割合ストレージが律速か判断する
ファイル数・出力頻度時刻ディレクトリ数、ログ量小さな書き込みの多発を防ぐ
モデルロード時間重みロードにかかる時間大規模LLMで支配的になりうる

注意点

  • scratch領域の利用可否・容量は環境ごとに違います。大会の実機ルールで要確認です。
  • I/Oを減らすために結果出力を削りすぎると、解析・検証ができなくなります。

関連ページ

参考文献