用語辞書
大会・HPC一般
| 用語 | 説明 |
|---|---|
| HPC | High Performance Computing。多数のCPU/GPU、メモリ、ネットワークを使って大規模計算を高速に行う分野 |
| ノード | クラスタを構成する1台の計算機。CPU、GPU、メモリ、NICを持つ |
| rank | MPIプロセスの番号。OpenFOAMではrankごとに計算領域の一部を担当する |
| MPI | Message Passing Interface。複数プロセス間で通信する標準API |
| PBS / Slurm | HPCクラスタでジョブを投入・管理するジョブスケジューラ |
| wall time | 実際に時計で測った経過時間。大会の実行時間評価で重要 |
| strong scaling | 問題サイズを固定し、ノード数を増やしてどれだけ速くなるか |
| weak scaling | 1ノードあたりの問題サイズを固定し、ノード数と問題サイズを同時に増やす評価 |
| NUMA | CPUソケットごとにメモリアクセス距離が違う構造。bindingを誤ると遅くなる |
| CPU affinity / binding | プロセスやスレッドを特定CPU coreに固定すること |
| InfiniBand | HPCでよく使われる低レイテンシ・高帯域ネットワーク |
| RDMA | Remote Direct Memory Access。CPUをあまり介さずリモートメモリへ直接転送する仕組み |
| UCX | HPC通信で使われる通信framework。InfiniBand/RDMAなどを抽象化する |
| profiling | 実行時間やCPU/GPU/メモリ/通信/I/Oの使用状況を計測し、性能問題を調べること |
| bottleneck | 全体性能を制限している最も遅い部分。最適化ではまずここを特定する |
| hotspot | 実行時間の多くを占める関数や処理箇所 |
| scaling analysis | ノード数やGPU数を増やしたとき、性能がどれだけ伸びるかを測る分析 |
| parallel efficiency | 並列化したときに、理想的な速度向上に対してどれだけ効率が出ているか |
| PMPI | MPIのprofiling interface。MPI関数の呼び出し時間などを測るツール実装に使われる |
| NCCL | NVIDIA Collective Communications Library。複数GPU間のAllReduceなどのcollective通信に使われる |
| load imbalance | rank/スレッド間で計算量が偏ること。最も遅いrankに全体が引っ張られる |
| Amdahl’s law | 並列化できない逐次部分があると、資源を増やしても速度向上が頭打ちになる法則 |
| MPI_Allreduce | 各rankの値を集約し結果を全rankへ配るcollective通信。反復ソルバで多発する |
| collective通信 | 全rank/全GPUが参加する通信(AllReduce、AllGather、Broadcastなど) |
| memory bandwidth | メモリ帯域。単位時間に転送できるデータ量。律速になると計算が待たされる |
| false sharing(偽共有) | 別スレッドが同一cache lineを更新し合い、無駄なcache同期で遅くなる現象 |
| first-touch | 最初にアクセスしたスレッドのローカルメモリに割り当てるNUMAの仕組み |
numactl | NUMAポリシーを制御し、特定ノードでプロセスを動かすコマンド |
| A64FX | 富岳のArmベースCPU。48コア、HBM2、SVE512が特徴 |
| SVE | Scalable Vector Extension。ベクトル長非依存のArm SIMD拡張(富岳は512bit) |
| HBM2 | 広帯域メモリ。A64FXが採用 |
| LTO | Link Time Optimization。複数の翻訳単位を横断した最適化 |
| PGO | Profile-Guided Optimization。実行プロファイルを利用した最適化 |
-Ofast | 精度を犠牲にしうる積極的なコンパイラ最適化。大会での許容範囲は要確認 |
-march | 対象CPU固有の命令を使うコンパイラ最適化オプション |
| サニタイザー | 未定義動作やメモリエラーを検出するビルド機能(ASan、UBSanなど) |
| scratch領域 | マシンから高速にアクセスできる一時作業用ストレージ |
OpenFOAM / CFD
| 用語 | 説明 |
|---|---|
| CFD | Computational Fluid Dynamics。流体の運動を数値計算で解く分野 |
| OpenFOAM | CFD向けのオープンソースソフトウェア群 |
| case | OpenFOAMでの計算問題一式。0/、constant/、system/などを含む |
| solver | 方程式を解く実行プログラム。例: simpleFoam、pimpleFoam |
| mesh | 計算領域を小さなcellに分割したもの |
| cell | meshの最小単位 |
| domain decomposition | 計算領域を複数プロセスに分けること |
decomposeParDict | 領域分割方法を指定するOpenFOAM設定ファイル |
decomposePar | caseを並列実行用に分割するコマンド |
reconstructPar | 並列実行後の分割結果を結合するコマンド |
| residual | 数値解が方程式をどれだけ満たしていないかの指標 |
| tolerance / relTol | 線形ソルバの収束判定条件 |
| RANS | Reynolds-Averaged Navier-Stokes。乱流を平均化して扱う手法 |
| LES | Large Eddy Simulation。大きな渦を直接解き、小さな渦をモデル化する手法 |
| KPI | Key Performance Indicator。TTSFなど性能評価用の指標 |
| TTS | Time To Solution。解を得るまでの時間 |
| Pressure Solver | 圧力の連立方程式を解くソルバ。OpenFOAMの実行時間の多くを占める |
| 反復法 | 正解に少しずつ近づけて解く方法。CG/PCG/BiCGStab/GAMGなど |
| PCG | Preconditioned Conjugate Gradient。前処理付き共役勾配法 |
| GAMG | Geometric-Algebraic Multi-Grid。マルチグリッド系ソルバ。通信特性が異なる |
decomposeParDictのmethod | simple/hierarchical/scotch/ptscotchなど領域分割の手法 |
| Boundary Cells(境界セル) | 分割した領域の境界にあるcell。隣rankと情報交換が必要 |
AI推論
| 用語 | 説明 |
|---|---|
| LLM | Large Language Model。大規模言語モデル |
| inference | 学習済みモデルを使って出力を生成すること |
| serving | APIとして推論を受け付け、複数requestを処理する運用形態 |
| token | LLMが処理するテキストの単位 |
| prefill | 入力prompt全体を処理してKV cacheを作る段階 |
| decode | KV cacheを使って1 tokenずつ出力を生成する段階 |
| KV cache | Attention計算で使うKey/Valueを保存し、過去tokenの再計算を避けるcache |
| TTFT | Time To First Token。最初のtokenが返るまでの時間 |
| TPOT | Time Per Output Token。出力token 1個あたりの時間 |
| ITL | Inter-Token Latency。token間の待ち時間 |
| throughput | 単位時間あたりの処理量。tokens/sやrequests/s |
| concurrency | 同時に処理するrequest数 |
| ISL | Input Sequence Length。入力token数 |
| OSL | Output Sequence Length。出力token数 |
| p95 latency | 遅い側5%を含めた応答時間。体感品質を見るのに重要 |
モデル・並列化
| 用語 | 説明 |
|---|---|
| Qwen | Alibaba/QwenチームのLLMシリーズ |
| DeepSeek-R1 | reasoning向けLLM。2025年大会AI課題で使われた |
| MoE | Mixture of Experts。複数expertのうち一部だけをtokenごとに使うモデル構造 |
| expert | MoE内の専門サブネットワーク |
| active parameters | 1 tokenの計算で実際に使われるパラメータ数 |
| total parameters | モデル全体のパラメータ数。VRAM見積もりではこちらも重要 |
| TP | Tensor Parallelism。1層内の行列計算を複数GPUに分ける |
| PP | Pipeline Parallelism。層を複数GPU/ノードに分ける |
| DP | Data Parallelism。同じモデル複製で別request/batchを処理する |
| EP | Expert Parallelism。MoEのexpertを複数GPUに分ける |
| DP Attention | Attention部分をdata-parallel寄りに扱う最適化。モデル・実装依存 |
| CUDA Graph | CUDA kernel実行列をgraph化し、起動 overheadを減らす仕組み |
| prefix cache | 同じprefixを持つrequestでKV cacheを再利用する仕組み |
| RadixAttention | SGLangのprefix sharing/cache管理に関係する仕組み |
| speculative decoding | 小さいモデルや補助headで先のtokenを予測し、採用できた分だけ高速化する手法 |
| MTP | Multi Token Prediction。複数tokenを先読み予測する手法 |
| quantization | 重みやKV cacheを低精度化してメモリや計算を減らす手法 |
| FP8 / BF16 | 数値形式。FP8は低精度で軽い、BF16は学習・推論でよく使われる16bit形式 |
Framework / Tool
| 用語 | 説明 |
|---|---|
| SGLang | 高性能LLM serving framework |
| Dynamo | NVIDIAの分散推論serving framework |
| TensorRT-LLM | NVIDIA GPU向けLLM推論最適化ライブラリ |
| vLLM | LLM serving framework。PagedAttentionなどで知られる |
| AIPerf | AI推論性能測定ツール。Dynamo docsで利用例がある |
| NIXL | NVIDIAのKV転送などで使われる通信/転送ライブラリ |
| Mooncake | SGLangのPD disaggregationで使えるKV transfer engineの一つ |