エンジン (基本乱数生成器)#
oneMKL RNG は、データ並列 C++ (DPC++) 用の疑似乱数、準乱数、非決定論的乱数生成器を提供します。
ルーチン |
説明 |
|---|---|
複合多重再帰擬似乱数生成器 |
|
Philox4x32-10 カウンタベースの擬似乱数生成器 (周期 \(2^{128}\)) |
|
31 ビット乗法合同型疑似乱数生成器 MCG (\(1132489760, 2^{32} - -1\)) [L’Ecuyer99a]。 |
|
32 ビット一般化フィードバック・シフト・レジスター疑似乱数生成器 |
|
NAG Numerical Libraries [NAG] の 59 ビット乗法合同型疑似乱数ジェネレータ |
|
NAG Numerical Libraries [NAG] の Wichmann-Hill 疑似乱数生成器 (273 個の基本生成器のセット)。 |
|
生成されたシーケンスの周期長 \(2^{19937} - -1\) を持つメルセンヌツイスター擬似乱数生成器 |
|
6024 個のメルセンヌツイスター疑似乱数生成器のセット |
|
SIMD 指向の高速メルセンヌツイスター擬似乱数生成器 |
|
任意の次元で動作する Sobol 準乱数生成器 [Sobol76]、[Bratley88]。 |
|
任意の次元で動作する Niederreiter 準乱数生成器 [Bratley92]。 |
|
ARS-5 カウンターベースの擬似乱数生成器。周期は \(2^{128}\) で、AES-NI セット |
|
非決定性乱数生成器 (RDRAND ベース) [AVX]、[IntelSWMan]。 |
いくつかの基本生成器で oneMKL RNG は、マルチプロセッサー計算で独立した状態を作成する 2 つの方法 (リープフロッグ法とブロック分割法) を提供します。これらのシーケンス分割方法は、シーケンシャル・モンテカルロでも役立ちます。これらの関数の説明については、サービスルーチンのセクションを参照してください。
さらに、MT2203 疑似乱数生成器は、並列モンテカルロ・シミュレーションで使用できる最大 6024 個の独立したランダムシーケンスを作成するように設計された 6024 個の生成器のセットです。同じ機能を備えた別の生成器には Wichmann-Hill があります。最大 273 個の独立したランダムストリームを作成できます。並列計算用に設計された生成器の特性については [Coddington94] で詳しく説明されています。
詳細については VS ノートを参照してください。