19cb89b29a052c4e38eaefa5a80a975c.ppt
- Количество слайдов: 58
Лекция 7 Последовательности псевдослучайных чисел для многопроцессорных вычислительных систем Учебный курс Введение в параллельные алгоритмы Якобовский Михаил Владимирович проф. , д. ф. -м. н. Институт прикладной математики им. М. В. Келдыша РАН, Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 1 из 51
Задачи, решаемые с применением последовательностей псевдослучайных чисел q Численное моделирование – Методы молекулярной динамики – Генетические алгоритмы q Численные методы – Многомерная многоэкстремальная оптимизация – Определение многомерных интегралов q Принятие решения q Игры q Лотереи Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 2 из 51
Определение площади фигуры Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 3 из 51
Последовательный алгоритм M=0; For(i=0; i
Параллельный алгоритм для P процессоров Каждый процессор определяет число mrank «своих» N/P точек, попавших внутрь фигуры 2. Найдем общее число точек, попавших внутрь фигуры 1. 3. S=M/N; Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 5 из 51
Другой параллельный алгоритм, на основе метода геометрического параллелизма q Возможен большой дисбаланс нагрузки Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 6 из 51
Вопросы Должен ли ответ параллельной программы в точности совпадать с ответом последовательной версии? НЕТ Где взять нужное количество разных «своих» точек? ДА Каким образом на каждом из процессоров вычислить координаты именно «своих» точек, не вычисляя координаты чужих? Физический генератор? Нельзя обеспечить вопроизводимость. Как обеспечить уверенность в сохранении свойств генератора? Москва, 2012 г. Брать на процессоре с номером rank числа с номерами rank+P*I Как вычислять каждое P-ое число? Вычислять на процессоре с номером rank точки из диапазона (2 N/P)*rank … (2 N/P)*(rank+1)-1 Как попасть в начало диапазона? Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 7 из 51
Нарушение идентичности размещения точек q Если брать на процессоре с номером rank числа с номерами rank+P*j, то – При P=1: (0, 1), (2, 3), (4, 5), (6, 7), (8, 9), (10, 11) – При P=2: • У первого процесса: (0, 2), (4, 6) (8, 10) • У второго процесса: (1, 3), (5, 7), (9, 11). q Идентичность точек нужна: – Для получения одинакового результата – Для упрощения отладки – Для сохранения свойств последовательности • x 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 … • x 2 x 4 x 6 x 8 x 10 … Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 8 из 51
9
Решетка p=100% Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 10 из 51
Перколяционная решетка p=90% Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 11 из 51
Перколяционная решетка p=80% Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 12 из 51
Перколяционная решетка p=70% Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 13 из 51
Перколяционная решетка p=60% Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 14 из 51
Перколяционная решетка p=50% Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 15 из 51
Перколяционная решетка p=40% Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 16 из 51
Перколяционная решетка p=30% Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 17 из 51
Перколяционная решетка p=20% Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 18 из 51
Перколяционная решетка p=10% Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 19 из 51
Перколяционная решетка p=0% Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 20 из 51
Генерация псевдослучайных чисел • Достаточная длина периода последовательности псевдослучайных чисел q Согласованность определения множества открытых ребер при параллельной обработке § Возможность определения любого элемента последовательности за короткое, не зависящее от номера элемента, время Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 21 из 51
Генерация псевдослучайных чисел q линейные конгруэнтные генераторы [Лемер, 1948] q с=1 mod 2, a=1 mod 4, m=2 k -> T=m Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 22 из 51
, Вычисление элемента с номером n Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 23 из 51
Использование для векторных компьютеров Номер шага 0 1 2 3 . . . . 0+P 0+2 P 0+3 P 0+4 P 1+P 1+2 P 1+3 P 1+4 P 2+P 2+2 P 2+3 P 2+4 P 3+2 P 3+3 P 3+4 P 4+2 P 4+3 P 4+4 P. . . Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 24 из 51
Как быстро вычислить? Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 25 из 51
Вычислить a^n q За log(n) шагов Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 26 из 51
Бинарное умножение Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 27 из 51
, Как вычислить быстро? Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 28 из 51
, Разложение дроби Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 29 из 51
, Разложение дроби ? ? Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 30 из 51
Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 31 из 51
Другой способ Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 32 из 51
Другой способ Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 33 из 51
Линейные конгруэнтные генераторы [Лемер, 1948] q При с=0 d-мерные точки расположены не более чем в гиперплоскостях [G. Marsaglia 1968] q Для RANDU(IBM 360/370) a=216+3, m=231, c=0 q Не более 16 -ти плоскостей [Richard P. Brent, 1992] Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 34 из 51
Случайные точки Последовательность 512 точек вида лежат на нескольких прямых Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 35 из 51
Случайные точки Последовательность Москва, 2012 г. 1024 точки вида Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 36 из 51
Случайные точки 1024 точки вида Последовательность все точки 9000 8000 7000 6000 5000 4000 3000 2000 1000 0 0 Москва, 2012 г. 2000 4000 6000 8000 10000 Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 37 из 51
М-последовательности q Генератор на сдвиговом регистре [П. Хоровиц, У. Хилл, 1983] q М-последовательности [И. М. Соболь, 1973] Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 38 из 51
Генерация псевдослучайных чисел A ABCD F=(A+D)mod 2 D=C C=B B=A A=F B C D (A+D)mod 2 15 1 1 0 2 14 0 1 1 3 13 1 0 1 1 0 4 10 0 1 1 5 5 1 0 1 6 11 1 1 0 7 6 0 1 1 0 0 8 12 0 0 1 1 1 9 9 1 0 0 10 2 0 1 0 0 0 11 4 0 0 12 8 0 0 0 1 1 13 1 1 0 0 0 1 14 3 1 1 0 0 1 15 Москва, 2012 г. 1 7 1 1 1 0 1 16 15 Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 1 1 0 39 из 51
Генерация псевдослучайных чисел A ABCD F=(A+D)mod 2 D=C C=B B=A A=F B C D (A+D)mod 2 15 1 1 0 2 14 0 1 1 3 13 1 0 1 1 0 4 10 0 1 1 5 5 1 0 1 6 11 1 1 0 7 6 0 1 1 0 0 8 12 0 0 1 1 1 9 9 1 0 0 10 2 0 1 0 0 0 11 4 0 0 12 8 0 0 0 1 1 13 1 1 0 0 0 1 14 3 1 1 0 0 1 15 Москва, 2012 г. 1 7 1 1 1 0 1 16 15 Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 1 1 0 40 из 51
Связь между и фрагментом M последовательности Если то Richard P. Brent On the period of generalized Fibonacci recurrences, 1992 Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 41 из 51
Генерация элемента с произвольным номером k Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 42 из 51
Проверка примитивности полинома простые делители числа Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 43 из 51
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 x x^2 x^4 x^8 x^16 x^4+x x^8+x^2 x^16+x^4 x^8+x^4+x x^16+x^8+x^2 x^16+x x^4+x^2+x x^8+x^4+x^2 x^16+x^8+x^4+x^2+x x^16+x^8+x^2+x x^16+x^2+x x^4+x^2 20 21 22 23 24 25 26 27 28 29 30 31 x^8+x^4 x^16+x^8 x^16+x^4+x x^8+x^4+x^2+x x^16+x^8+x^4+x^2 x^16+x^8+x x^16+x^4+x^2+x x^8+x^2+x x^16+x^4+x^2 x^8+x x^16+x^2 x x x^2 x^4 x^8 x^16 x^29+x x^28+x^27+x^24+x^21+x^18+x^15+x^12+x^9+x^6+x^3+x^2+1 x^30+x^29+x^25+x^24+x^23+x^22+x^20+x^19+x^18+x^16+x^13+x^12 x^11+x^10+x^8+x^7+x^6+x+1 x^30+x^29+x^28+x^27+x^23+x^22+x^21+x^19+x^18+x^14+x^12+x^9+x^7+x^6+x^5+x^4+x^3 x^28+x^27+x^26+x^25+x^22+x^21+x^19+x^16+x^14+x^12+x^11+x^10+x^7+x^6+x^4+x x^29+x^25+x^24+x^23+x^21+x^18+x^17+x^15+x^13+x^10+x^9+x^8+x^6+x^3+x^2+x+1 x^29+x^28+x^27+x^26+x^24+x^21+x^20+x^19+x^17+x^14+x^13+x^12+x^10+x^7+x^6+x^5+x^3+x x^30+x^28+x^27+x^26+x^25+x^23+x^22+x^19+x^16+x^14+x^13+x^12+x^11+x^9+x^8+x^5 x^28+x^25+x^24+x^21+x^16+x^13+x x^29+x^26+x^25+x^22+x^17+x^14+x^2+x x^27+x^24+x^19+x^16+x^4+x^3+x^2+1 x^23+x^20+x^8+x^7+x^6+1 x^16+x^15+x^14+1 x^30+x^29+x^28+x+1 x^30+x^28+x^27+x^26+x^25+x^24+x^23+x^22+x^21+x^20+x^19+x^18+x^17+x^16+x^15+ x^14+x^13+x^12+x^11+x^10+x^9+x^8+x^7+x^6+x^5+x^4+x^3+x x^28+x^25+x^24+x^21+x^20+x^17+x^16+x^13+x^12+x^9+x^8+x^5+x x^29+x^26+x^25+x^24+x^22+x^18+x^17+x^16+x^14+x^10+x^9+x^6+x^2+x x^29+x^27+x^24+x^20+x^19+x^18+x^17+x^16+x^14+x^12+x^11+x^8+x^4+x^3+x^2+x+1 x^30+x^27+x^23+x^22+x^21+x^20+x^18+x^16+x^15+x^12+x^8+x^7+x^6+x^5+x^3 x^30+x^29+x^26+x^24+x^16+x^15+x^14+x^13+x^11+x^8+x^7+x^6+x^4 x^30+x^28+x^27+x^24+x^23+x^22+x^20+x^16+x^14+x^12+x^8+x x^30+x^28+x^26+x^25+x^24+x^22+x^19+x^17+x^15+x^14+x^12+x^11+x^8+x^5+x x^30+x^29+x^28+x^26+x^25+x^24+x^23+x^21+x^20+x^18+x^16+x^15+x^13+x^12+x^9+x^6+x^2 x^30+x^27+x^25+x^23+x^22+x^20+x^18+x^15+x^11+x^8+x^4+x x^29+x^26+x^22+x^19+x^15+x^12+x^8+x^5 x^30+x^27+x^16+x^13 x
- разреженные полиномы q q q q x^31+x^3+1 x^31+x^7+x^3+x+1 x^31+x^15+x^3+x+1 x^127+x^1+1 x^127+x^63+1 x^127+x^3+x+1 x^127+x^63+x^15+x+1 Москва, 2012 г. • x^255+x^15+x^7+x^3+1 • • x^255+x^31+x^7+x+1 x^255+x^31+x^7+x^3+1 • • x^255+x^63+x^7+x^3+1 x^255+x^63+x^31+x^15+1 • • • x^255+x^127+x^3+1 x^255+x^127+x^3+x+1 x^255+x^127+x^31+x^7+1
Publication Date: 2002 Number of Pages: 236 pp. Publisher: AMS Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 46
Перколяционный кластер Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 47 из 51
Перколяционный кластер Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 48 из 51
Перколяционный кластер Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 49 из 51
Перколяционный кластер Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 50 из 51
Порог перколяции размер сетки 800 х 800 1 000 х 1 000 1 100 х 1 100 [ Ю. Ю. Тарасевич, 2002] Точное значение 0. 2488126(5) размер сетки 1 000 х 1 000 10 000 х 10 000 Точное значение 0. 5 Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. Ю. Ю. Тарасевич Н. Н. Медведев 51 из 51
Батарея тестов Diehard P=0 LRND 32 0 123456789 SWBMWC MIXRNDXY BRND RAND Москва, 2012 г. P < 0. 00001 P < 0. 01 a 0 0 0 0 12 12 74 146 b c d 0 1 3 0 1 0 0. 01 ≤ P ≤ 0. 99 P > 0. 99999 P=1 D C B 309 5 1 0 4 312 2 0 0 0 6 309 4 0 0 0 1 5 312 1 0 0 2 311 6 0 0 4 312 3 0 0 1 0 5 307 6 0 0 8 8 5 263 3 9 11 10 5 5 262 4 7 14 5 2 13 187 2 11 18 A 0 0 0 0 0 7 117 0 0 32 2 18 Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 52 из 51
Парковочный тест Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 53 из 51
Тестируемые последовательности q BRND q MIXRND рандомизация перемешиванием q MWC генератор на основе метода умножения с переносом MWC, период 4*10^18 q SWBMWC комбинированный генератор на основе методов умножения с переносом MWC и Фибоначчи с запаздыванием SWBG, период 4*10^364 Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 54 из 51
Батарея тестов Diehard P=0 LRND 32 0 123456789 SWBMWC MIXRNDXY BRND RAND Москва, 2012 г. P < 0. 00001 P < 0. 01 a 0 0 0 0 12 12 74 146 b c d 0 1 3 0 1 0 0. 01 ≤ P ≤ 0. 99 P > 0. 99999 P=1 D C B 309 5 1 0 4 312 2 0 0 0 6 309 4 0 0 0 1 5 312 1 0 0 2 311 6 0 0 4 312 3 0 0 1 0 5 307 6 0 0 8 8 5 263 3 9 11 10 5 5 262 4 7 14 5 2 13 187 2 11 18 A 0 0 0 0 0 7 117 0 0 32 2 18 Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 55 из 51
Заключение q Сформулированы требования к генераторам псевдослучайных чисел для многопроцессорных сиcтем q Рассмотрены параллельные алгоритмы генерации псевдослучайных чисел Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 56 из 51
Литература q q q q q И. М. Соболь. Численные методы Монте-Карло. – М. : Наука, 1973. Richard P. Brent, Uniform Random Number Generators for Supercomputers, Computer Sciences Laboratory; Australian National University Appeared in Proceedings Fifth Australian Supercomputer Conference (Melbourne, December 1992), 95 -104. c 1992, 5 ASC Organising Committee. Кнут Дональд Эрвин, искусство программирования, том. 2. Получисленные алгоритмы, 3 -е издание. : Пер с англ. , : Уч пос - М. : Издательский дом <Вильямс>, 2001. - 832 с. , ил. G. Marsaglia, "Random numbers fall mainly on the planes", Proc. Nat. Acad. Sci. USA 61, 1 (1968), 25 -28. П. Хоровиц, У. Хилл. Искусство схемотехники: В 2 -х томах. Пер. с англ. – М. : Мир, 1983. - Т. 2 590 с. Тарасевич Ю. Ю. Перколяция: теория, приложения, алгоритмы. 2002. 112 с. Л. Ю. Бараш. Алгоритм AKS проверки чисел на простоту и поиск констант генераторов псевдослучайных чисел, Безопасность информационных технологий, 2 (2005) 27 -38. В. Жельников. Криптография от папируса до компьютера – М. , ABF, 1996, ил. , 336 с. Якобовский М. В. Библиотека генерации псевдослучайных чисел lrnd 32. Дистрибутив. 2007, http: //www. imamod. ru/projects/Fond. Programm/Rnd. Lib/lrnd 32_v 02 Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 57 из 51
Контакты Якобовский М. В. проф. , д. ф. -м. н. , зав. сектором «Программного обеспечения многопроцессорных систем и вычислительных сетей» Института прикладной математики им. М. В. Келдыша Российской академии наук mail: lira@imamod. ru web: http: //lira. imamod. ru Москва, 2012 г. Введение в параллельные алгоритмы: Последовательности псевдослучайных чисел для МВС © Якобовский М. В. 58 из 51