Поточное распараллеливание и оптимизации программной реализации 128 битного мультипликативного конгруэнтного датчика случайных чисел

Not scheduled
20m

Speaker

Mr Александр Николаевич Дворников (ИВМиМГ СО РАН)

Description

Работа посвящена построению оптимизированных параллельных реализаций генератора случайных чисел на основе алгоритма rnd128 [1]. Данный алгоритм используется в программе поддержки статистических расчетов PARMONC, разработанной более 15 лет назад [2,3]. С тех пор произошли существенные изменения в архитектуре вычислительных систем. Процессоры получили развитые векторные расширения (AVX2, AVX-512), в массовом сегменте появились графические ускорители общего назначения с тысячами параллельных потоков и десятками гигабайт быстрой памяти HBM/GDDR, реализовано разделение на P\E ядра процессоров и т.д.

Разработана эталонная программная реализация генератора и проведено профилирование на современной архитектуре. Реализована серия оптимизаций, использующих упакованное представление состояния, нативные intrinsics 128-битной арифметики и AVX2 на этапе упаковки и записи результатов в сочетании с явной развёрткой инструкционного параллелизма. Дополнительно разработана реализация генератора на платформе NVIDIA CUDA с использованием warp-coalesced размещения состояний потоков для согласованного доступа к памяти.

Проведенное статистическое тестирование средствами пакета PractRand [4] и набора стандартных статистических критериев [5] показало корректность исполнения. Тестирование производительности и масштабируемости продемонстрировало результаты сопоставимые с результатами современных генераторов splitmix64 [6], xoshiro256++ [7], mt19937_64 [8] и превосходящие эталонную программную реализацию.

Исследования выполнены в рамках государственного задания ИВМиМГ СО РАН FWNM-2025-0002.

Литература:
[1] Dyadkin I.G., Hamilton K.G. A study of 128-bit multipliers for congruential pseudorandom number generators // Computer Physics Communications. 2000. - Vol. 125 (2000). - P. 239 -258.
[2] Михайлов Г. А., Марченко М. А. Параллельная реализация статистического
моделирования и генераторов случайных чисел // Препринт / РАН. Сиб. отд-ние. ИВМиМГ.
2001. № 1154.
[3] Параллельная библиотека PARMONC (PARallel MONte Carlo). Документация по
программной библиотеке PARMONC. - URL: https://sscc.ru/information/parmonc.html (дата
обращения: 30.06.2026). - Текст : электронный.
[4] Doty-Humphrey C. PractRand (Practically Random): Library of Practical Random Number Generation Tests. - URL: http://pracrand.sourceforge.net/ (дата обращения: 01.04.2026). - Текст : электронный.
[5] L'Ecuyer P., Simard R. TestU01: A C Library for Empirical Testing of Random Number Generators // ACM Transactions on Mathematical Software. - 2007. - Vol. 33, No. 4. - Article 22. - 40p.
[6] Steele, G. L., Lea, D., & Flood, C. H. (2014). Fast splittable pseudorandom number generators. Proceedings of the 2014 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications, 453–472.
[7] Marsaglia, G. (2003) “Xorshift RNGs”, Journal of Statistical Software, 8(14), pp. 1-6. doi: 10.18637/jss.v008.i14.
[8] Matsumoto, M. Mersenne Twister: a 623-dimensionally equidistributed uniform pseudorandom number generator / M. Matsumoto, T. Nishimura // ACM Transactions on Modeling and Computer Simulation. — 1998. — Vol. 8, no. 1. — P. 3—30.

Primary authors

Presentation materials

There are no materials yet.