Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject Re: SAD Update. V1.0.10.4.17a30 Bug in TrackParticles with RAD and NPARA >1
Date: 2011/08/04(Thu) 11:21:02
ContributorAkio Morita

> Dear Users,
>
> 1. An almost stupid bug was found to forget to change the seed of random numbers in tracking for each thread. This causes degenerated random numbers in TrackParticles and DynamicPaertureSurvey when NPARA > 1 && RAD. It is temporarily tweaked by adding 2, 4, 6, .. for the seed of each thread, but a more rigorous solution is expected.
>
src/trackd.f, src/tftrack.f内で疑似乱数系列の調整に使っている tfaddseed()関数が、特定の疑似乱数生成器プラグインの実装に依存しています

例えば、SFMT PRNGプラグインだと SeedRandom[]の返すリストの第2要素は、乱数系列の固有識別子になっています
また、数列にシリアル化される PRNGプラグインの内部状態は、実装依存で Checksumや識別用の Magic Numberが
埋め込まれていることも有ります。

個人的には、NPARAが変わると TrackParticles[]の出力の同一性が損なわれるという点は、
計算の再現性という意味で evilだと思います。

例えば、疑似乱数発生を Master Process側で処理して、Shared Memory経由で Worker Processが自分の担当範囲に
対応する疑似乱数を拾うとか…
(Worker Process内で、粒子の並べ替えを行う場合、乱数を拾う場所も並べ替える必要が有りますが)


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)