Отправлено: 10.02.16 22:29. Заголовок: Тестирование ECM на разных объёмах памяти
Workaround: Железка, на железке виртуалка. На виртуалке винсервер12,которому выделены чуть больше половины ресурсов. Другие виртуалки на момент эксперимента не подняты, внешнего доступа на момент тестирования к серверу нету. Пять остальных вокеров занимаются своим LL и никому не мешают. 1) Ограничений по памяти практически нету. ECM-у выставлены тридцать гигабайт оперативки сходу, до шестидесяти оно легко может скушать по запросу. Лог:
цитата:
[Worker #6 Feb 10 20:22] Waiting 25 seconds to stagger worker starts. [Worker #6 Feb 10 20:23] Worker starting [Worker #6 Feb 10 20:23] Setting affinity to run worker on logical CPU #6 [Worker #6 Feb 10 20:23] Using FMA3 FFT length 160K, Pass1=640, Pass2=256 [Worker #6 Feb 10 20:23] ECM on M3059393: curve #1 with s=4227596137173760, B1=50000, B2=5000000 [Worker #6 Feb 10 20:46] Stage 1 complete. 993641 transforms, 1 modular inverses. Time: 7.159 sec. [Worker #6 Feb 10 20:46] Using 3352MB of memory in stage 2. [Worker #6 Feb 10 20:47] Stage 2 init complete. 18313 transforms, 1 modular inverses. Time: 25.157 sec. [Worker #6 Feb 10 20:56] Stage 2 complete. 592895 transforms, 1 modular inverses. Time: 3.389 sec. [Worker #6 Feb 10 20:56] Stage 2 GCD complete. Time: 3.704 sec. [Worker #6 Feb 10 20:56] ECM on M3059393: curve #2 with s=3408675022889254, B1=50000, B2=5000000 [Worker #6 Feb 10 21:19] Stage 1 complete. 1286025 transforms, 1 modular inverses. Time: 18.861 sec. [Worker #6 Feb 10 21:19] Using 3352MB of memory in stage 2. [Worker #6 Feb 10 21:19] Stage 2 init complete. 18313 transforms, 1 modular inverses. Time: 24.958 sec. [Worker #6 Feb 10 21:29] Stage 2 complete. 592899 transforms, 1 modular inverses. Time: 3.416 sec. [Worker #6 Feb 10 21:29] Stage 2 GCD complete. Time: 3.725 sec. [Worker #6 Feb 10 21:52] Stage 1 complete. 1286025 transforms, 1 modular inverses. Time: 19.087 sec. [Worker #6 Feb 10 21:52] Using 3352MB of memory in stage 2. [Worker #6 Feb 10 21:52] Stage 2 init complete. 18313 transforms, 1 modular inverses. Time: 25.142 sec. [Worker #6 Feb 10 22:02] Stage 2 complete. 592899 transforms, 1 modular inverses. Time: 3.402 sec. [Worker #6 Feb 10 22:02] Stage 2 GCD complete. Time: 3.777 sec. [Worker #6 Feb 10 22:02] M3059393 completed 3 ECM curves, B1=50000, B2=5000000, We4: 4F7778C8 [Worker #6 Feb 10 22:02] Using FMA3 FFT length 160K, Pass1=640, Pass2=256
Заметим, что при запредельном для данной размерности операндов размере памяти (60 гигабайт), максимально используется только три с копейками. Что очевидно наводит нас на мысль что в 64-ый клиент вставлен 32-ой решальник для ECM к сожалению. (поскольку размер запрошенной памяти уж слишком похож на
Размер памяти клиента сменён на 512 мб. Ждём ответа... ;) Как-то я уснул невовремя. ;) Продолжаем утром:
цитата:
[Worker #6 Feb 11 08:15] Using FMA3 FFT length 160K, Pass1=640, Pass2=256 [Worker #6 Feb 11 08:15] ECM on M3059569: curve #1 with s=2543145077076824, B1=50000, B2=5000000 [Worker #6 Feb 11 08:38] Stage 1 complete. 1286025 transforms, 1 modular inverses. Time: 18.662 sec. [Worker #6 Feb 11 08:38] Using 262MB of memory in stage 2. [Worker #6 Feb 11 08:38] Stage 2 init complete. 3887 transforms, 1 modular inverses. Time: 9.296 sec. [Worker #6 Feb 11 08:56] Stage 2 complete. 1235535 transforms, 0 modular inverses. Time: 8.481 sec. [Worker #3 Feb 11 08:56] Iteration: 5220000 / 78040153 [6.68%], ms/iter: 43.134, ETA: 36d 08:30 [Worker #6 Feb 11 08:56] Stage 2 GCD complete. Time: 3.792 sec. [Worker #6 Feb 11 08:56] ECM on M3059569: curve #2 with s=7640874861850213, B1=50000, B2=5000000 [Worker #6 Feb 11 09:19] Stage 1 complete. 1286025 transforms, 1 modular inverses. Time: 18.934 sec. [Worker #6 Feb 11 09:19] Using 262MB of memory in stage 2. [Worker #6 Feb 11 09:19] Stage 2 init complete. 3887 transforms, 1 modular inverses. Time: 9.283 sec. [Worker #6 Feb 11 09:37] Stage 2 complete. 1235539 transforms, 0 modular inverses. Time: 8.510 sec. [Worker #6 Feb 11 09:37] Stage 2 GCD complete. Time: 3.797 sec. [Worker #6 Feb 11 09:37] ECM on M3059569: curve #3 with s=8503859961624954, B1=50000, B2=5000000 [Worker #6 Feb 11 10:00] Stage 1 complete. 1286025 transforms, 1 modular inverses. Time: 18.984 sec. [Worker #6 Feb 11 10:00] Using 262MB of memory in stage 2. [Worker #6 Feb 11 10:00] Stage 2 init complete. 3887 transforms, 1 modular inverses. Time: 9.265 sec. [Worker #6 Feb 11 10:18] Stage 2 complete. 1235535 transforms, 0 modular inverses. Time: 8.310 sec. [Worker #6 Feb 11 10:18] Stage 2 GCD complete. Time: 3.758 sec. [Worker #6 Feb 11 10:18] M3059569 completed 3 ECM curves, B1=50000, B2=5000000, We4: 4F7D78CF
Кушает почти всю выданную память. Отличий по времени между 2 и 4 Гб - практически никаких. По видимому, разница будет при бОльшем размере экспонент.
Сделаю ещё пару тестов, но уже без усреднения по трём кривым...
цитата:
[Worker #6 Feb 11 14:50] ECM on M3059951: curve #3 with s=2613695141697666, B1=50000, B2=5000000 [Worker #6 Feb 11 15:13] Stage 1 complete. 1286025 transforms, 1 modular inverses. Time: 19.055 sec. [Worker #6 Feb 11 15:13] Using 39MB of memory in stage 2. [Worker #6 Feb 11 15:13] Stage 2 init complete. 1289 transforms, 1 modular inverses. Time: 6.506 sec. [Worker #6 Feb 11 15:39] Stage 2 complete. 1690423 transforms, 0 modular inverses. Time: 8.193 sec. [Worker #6 Feb 11 15:39] Stage 2 GCD complete. Time: 3.824 sec.
256Mb: 00:23 + 00:26
цитата:
[Worker #6 Feb 11 15:39] Using FMA3 FFT length 160K, Pass1=640, Pass2=256 [Worker #6 Feb 11 15:39] ECM on M3060067: curve #1 with s=2633291055081432, B1=50000, B2=5000000 [Worker #6 Feb 11 16:02] Stage 1 complete. 1286025 transforms, 1 modular inverses. Time: 18.870 sec. [Worker #6 Feb 11 16:02] Using 798MB of memory in stage 2. [Worker #6 Feb 11 16:02] Stage 2 init complete. 7129 transforms, 1 modular inverses. Time: 12.822 sec. [Worker #6 Feb 11 16:14] Stage 2 complete. 641530 transforms, 14 modular inverses. Time: 17.632 sec. [Worker #6 Feb 11 16:14] Stage 2 GCD complete. Time: 3.807 sec.
1024 Mb: 00:23 + 00:12
Надо что ли табличку сводную сделать...
В общем, без восьмисот мегабайт памяти на поток (Ну, на два потока, но они иногда будут пересекаться) - никуда. И это при числах порядка M3000000. При бОльшем размере, потребность, думаю, будет больше. Ну, и разумеется, выделяемую память надо подгонять под потребляемую. То есть не из головы круглые числа брать, а такие, чтобы потребляло почти всё. В моём примере - 40, 265, 800, 1700, 3400 mb.
Забавно, что если один тред скушал на втором этапе всю память, то другой тред, желающий перейти ко второму этапу, ругается, откладывает экспоненту как недоделанную и переходит к следующей. Подозреваю, что такие недоделанные экспоненты могут здорово накапливаться и портить жизнь.
Все даты в формате GMT
3 час. Активность сегодня: 0
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет