OpenMP
説明
OpenMPは、共有メモリ型アーキテクチャでのマルチスレッド並列化を行うための API であり、主に共通メモリ上の CPU コア並列に利用される。OpenMP では、プラグマ指示を用いてループ構造などを並列化し、実行時に複数のスレッドが自動的に仕事を分担する。例えば、for ループに #pragma omp parallel for を付与すると、ループ反復がスレッド間で均等に割り当てられ並列実行される。CFDでは、単一ノード内の並列(SIMD的なドメイン分割やベクトル化)に OpenMP が使われるケースが多く、MPI とのハイブリッド並列でマルチノード・マルチコア性能を引き出すアプローチも一般的である。OpenMP は実装が容易だが、メモリ帯域の競合やスレッド間同期に注意が必要である。