272-7(1) ускорение ?
272-7(1) ускорение 16х, 18х, 8х, 9х.
Пока не пытался вникнуть, как для 12-15 реальное ускорение в тысячу раз превратилось в нереальное в 17 тысяч раз. Кто-нибудь разобрался?
Считаем общее количество попыток как отношение интервала (1e35) к шагу (4.4e26) умножить на количество паттернов (11520), коэффициент фильтрации это отношение к N, общее время это умножить на время в PARI, ускорение поделить это на полное время. Метод так себе, явно предполагается что скорость в PARI останется неизменной и равной N поделить на время в PARI, что вообще говоря совершенно не обосновано, и чем выше коэффициент фильтрации, тем менее обосновано (время будет расти медленнее из-за более частых отказов на ранних проверках isprime). Вот для малой разницы между общим временем и временем в PARI ускорение ближе к реальному так как основная работа выполняется как раз в PARI и ускорение приближается к коэффициенту фильтрации.
Вспомнил про вариант с 10-ю проверяемыми местами: 36 делителей, 10 проверяемых мест из 15-ти, 5760 паттернов, шаг 2.48e77, N=4211214, 716.039s (263.049s in PARI) per round 9e85 - 4e7 попыток на паттерн, 2.32e11 попыток всего, 4.2e6 кандидатов, коэффициент фильтрации 55150, 16010 кандидатов в секунду в PARI, проверка 2.32e11 кандидатов заняла бы 14.5млн.с (полгода), ускорение 20235х.
Специально ради Вас запустил измерение реальной скорости
без ускорителей по всем паттернам (тупо заменил вызов ускорителей на перебор всех чисел, как будто ускоритель мгновенно вернул их все без фильтрации вообще), только интервал взял сильно поменьше (ждать 3 года влом): 12 делителей, 11 проверяемых мест из 15-ти, 46080 паттернов, шаг 4.4e26, N=105523200, 1246.490s (1148.330s in PARI) per round 50050816e30 - 2273 попыток на паттерн, 1e8 попыток всего, 91900 кандидатов в секунду в PARI. Сравните с 2.615e12/2574с=1e9/с с ускорителями, т.е. фактическое ускорение составило 11050х. А тысяча раз была видимо по сравнению с перебором по одному конкретному паттерну по немного другому алгоритму проверок (специально же сравнивал с исходной программой VAL, она 1e35 считала 169.1с, т.е. 1.34млн/с, от неё ускорение лишь порядка 750х) и на более старой программе (7.03 вместо выложенной 21.03, не буду вспоминать/искать чем отличались).
Вот кстати и ещё одна неувязка в Вашем вопросе: ускорение по отношение к чему Вам интересно, только от применения ускорителей (11050х) или по отношению к исходной программе VAL (750х). Разница между 11050х и 750х — видимо плата за множество паттернов. Проверил, запустил по ровно одному паттерну:
N=197563, 16.962s (3.666s in PARI) per round 5e37 - с ускорителями, 1.34e9/с, почти ровно 1000х от исходной программы VAL;
N=2272800, 22.281s (22.090s in PARI) per round 50050e33 - без ускорителей, 1e5/с, в 13400 раз медленнее ускорителей и в 13 раз медленнее исходной программы VAL, вот столько накладных расходов в PARI на организацию перебора паттернов и прочие циклы.
Разницу в 1.3 раза можно списать на замедление счёта из-за больших объёмов массивов для 46080 паттернов (не влезают в кэши).