もそれとも私と、私は、ハードの各试験を勉强する私には普通の人を行うために努力された爱の脱落、恋に落ちます

サイズ N (1 MN) の母集団から置換なしで K>>1 の単純なランダム長 M のサンプルを生成する

問題の定義と詳細は、[] を参照してください。

部分 Fisher-Yates シャッフル?アルゴリズム [] の次の実裝とインテル? MKL 乱数ジェネレーター (RNG) を使用して各サンプルを生成します

アルゴリズムを実装するプログラムは 11 969 664 の実験を行います。各実験 (1 から N までの M の一様なランダム自然数のシーケンスを生成) は、実際には N 要素の母集団から部分長 M をランダムにシャッフルしますアルゴリズムのメインループは実際に抽選を行うため、プログラムで各実験は「N から M の抽選」と呼ばれています。

プログラムは M=6 および N=49 を使用して、結果のサンプル (長さ M のシーケンス) を単一配列 RESULTS_ARRAY に格納し、利用可能な並列スレッドをすべて使用します

フォルダーを参照してください。

/* このスレッドの RNG ストリームを初期化 */

は利用可能なスレッド数で、各スレッド (並列領域) は配列の個別の部分を処理します

インテル? MKL 基本乱数ジェネレーターは、VSL_BRNG_MT2203 パラメーターを指定することにより、各スレッドで並列の独立したストリームをサポートします。

/* 次の抽選サンプルを生成 (ステップ 、、): */

このコードは各スレッドでを実装します

多くの実験をシミュレーションする場合、は各実験の最初に 1 回のみ必要です。(実際の抽選のように) PERMUT_BUF 配列の自然数 1...N の順序は重要ではありません

ループ A2.2 の各反復は、実際に抽選を行います。残りのアイテム PERMUT_BUF[i], ..., PERMUT_BUF[N] を含む箱からランダムなアイテム X を取り出し、アイテム X を結果行 PERMUT_BUF[1],...,PERMUT_BUF[i] の最後に追加します長さ N の完全な置換ではなく、一部の長さ M のみを生成するため、アルゴリズムは部分的です。

アルゴリズムで説明した擬似コードと異なり、プログラムはゼロベースの配列を使用します

ステップ で、プログラムは Next_Uniform_Int 関数を呼び出して次のランダム整数 X を生成し、{i, ..., N-1} で一様にします (詳細はソースコードを参照)。インテル? MKL のベクトル化された RNG の能力を引き出しつつ、ベクトル化のオーバーヘッドを最小限に抑えるため、ジェネレーターは L1 キャッシュに収まるサイズ RNGBUFSIZE のベクトル D_UNIFORM01_BUF を生成する必要があります各スレッドは、独自のバッファー D_UNIFORM01_BUF およびそのバッファーで最後に使用された乱数の後を指すインデックス D_UNIFORM01_IDX を使用します。Next_Uniform_Int 関数の最初の呼び出しでは (あるいはバッファーの乱数がすべて使用された場合は)、長さ RNGBUFSIZE とインデックス D_UNIFORM01_IDX をゼロにセットして vdRngUniform 関数を呼び出し、乱数バッファーを生成し直します

インテル? MKL は同じ分布の乱数値ジェネレーターのみ提供しますが、ステップ A2.3 では異なる範囲のランダム整数が必要なため、[0;1) で一様に分布された倍精度乱数をバッファーに格納した後、ステップで、これらの倍精度値を必要な整数範囲に収まるように変換します。

(前の M ステップを繰り返す) (前の M ステップを再喥繰り返す)
/* 整数スケーリング?ステップ */

このコードに関するパフォーマンスの注意点は [] を参照してください

RNG ストリームを作成して初期化する

区間 [0;1) に一様に分散された倍精度数を生成する

RNG ストリームを削除する

64 ビット境界でアライメントされたメモリーバッファーを割り当てる

mkl_malloc で割り当てられたメモリーを解放する

最適化に関する注意事項

インテル? コンパイラーでは、インテル? マイクロプロセッサーに限定されない最適化に関して、他社製マイクロプロセッサー用に同等の最適化を行えないことがあります。これには、インテル? ストリーミング SIMD 拡張命令 2、インテル? ストリーミング SIMD 拡張命令 3、インテル? ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当しますインテルは、他社製マイクロプロセッサーに関して、いかなる最適化の利用、機能、または効果も保証いたしません。本製品のマイクロプロセッサー依存の最適化は、インテル? マイクロプロセッサーでの使用を前提としていますインテル? マイクロアーキテクチャーに限定されない最適化のなかにも、インテル? マイクロプロセッサー用のものがあります。この注意事項で言及した命令セットの詳細については、該当する製品のユーザー?リファレンス?ガイドを参照してください

国家有利的话性命进行的自己嘚祸福理由避开那个之类的,不

是不是可以理解为 “苟利国家生死以岂因祸福避趋之?

你对这个回答的评价是

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

我要回帖

更多关于 それとも私 的文章

 

随机推荐