2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1 ... 117, 118, 119, 120, 121, 122, 123 ... 215  След.
 
 Re: Пентадекатлон мечты
Сообщение28.08.2022, 21:26 
Выложил к себе в облако комплект x64 AVX2 ускорителей для всех 6 строк первой таблицы:
https://cloud.mail.ru/public/XooH/tkK4SCZ1Z — далее папка M12n15, далее папка x64 AVX2 Table1, там 6 архивов.
Компилилось под себя, так что совместимость с переборными PARI программами обеспечивайте сами, это несложно.

 
 
 
 Re: Пентадекатлон мечты
Сообщение29.08.2022, 06:41 
Аватара пользователя
Dmitriy40 в сообщении #1563653 писал(а):
Обратите внимание, и шестую и пятую таблицы я считал совсем недавно, неделю назад. То что я об этом не сказал - ну так и не было найдено ничего интересного (14-ки или 15-ки или хоть 13-ки). Хотя, ведь сказал же.

Вы сказали именно про пятую таблицу, а я — именно про шестую.

Dmitriy40 в сообщении #1563680 писал(а):
Выложил к себе в облако комплект x64 AVX2 ускорителей для всех 6 строк первой таблицы:

Вот радости-то должно прибавиться у обладателей AVX2. Теперь это не только VAL и Ахиллес, но ещё и Демис. И ещё Артём, вроде бы.

Только настоятельно прошу: если соберётесь считать, расскажите что именно собираетесь считать и с какими параметрами. Потому что, например, в 19-м комплекте счёт уже дошёл до 18000е30.

 
 
 
 Re: Пентадекатлон мечты
Сообщение29.08.2022, 11:42 
Аватара пользователя
Кстати, надеюсь, что ещё и gris подключится к счёту.

Итак, что уже посчитано на данный момент:

17 _____________ 14000 е30
19 _____________ 22000 е30 ?
23 ______________ 7000 е30 ?
29 ______________ 1500 е30
31 ______________ 1500 е30
37 ______________ 1600 е30

Я перезапустил 31-й комплект с 1500 до 2000 в пять кругов по 100.

Демис считает 19-й и 23-й комплекты. До куда уже досчитал, точно не знаю.

Дмитрий счёт прекратил.

Ахиллес хочет считать 37-й комплект. В 4 потока. А ведь можно и не париться с разбиением на потоки, а просто считать 4 комплекта(17, 29, 31 и 37). По одному в каждом потоке. Как раньше, когда 234-й и 259-й считались в разных потоках.

Перпат с новыми настройками выложу позже.

17-й комплект самый шустрый. 37-й почти в 5 раз медленнее. Но зато в 37-м вероятность встретить находку(14-ку или 15-шку) примерно в те же 5 раз больше.

Остальные комплекты промежуточные. То есть 19-й не так быстро считается как 17-й, но быстрее всех остальных.

 
 
 
 Re: Пентадекатлон мечты
Сообщение29.08.2022, 12:54 
Аватара пользователя
Важно, чтобы хотя бы в одном потоке заработало, а там хоть допотопным, хоть антипотопным способом :-)

Вот такой сделали PerPat37.gp

Код:
write("begin.tmp","is begin");\\файл-метка, по нему смотрим когда начали
\\Перебор всех паттернов в каталогах от текущего и глубже
t0=getwalltime();
allocatemem(2^29);
start=1600*10^30;\\Откуда начать
stop=2000*10^30;\\Где закончить (не включая)
step=  200*10^30;\\Сколько отвести на каждый круг перебора паттернов
\\! kppat=0;kpop=0;
pat=externstr("dir /a-d /b /s *.pat");\\Получаем в вектор список всех паттернов в текущей папке и всех подпапках
if(#pat==0, print("Not found patterns!"); quit);
for(i=1,#pat, s=strsplit(pat[i],"."); pat[i]=strjoin(s[1..#s-1],"."));\\Отрезаем им всем расширение
ff=vector(#pat,i, s=strsplit(pat[i],"\\");s[#s-1..#s]);\\Отрезаем путь оставляя только последнее имя папки и имя файла
ff2=vector(#ff,i, ff[i][1]);\\Имя папки запомним отдельно, для заголовка окна
for(i=1,#ff, ff[i]=strjoin(ff[i],"-"));\\Объединим папку и файл в полное имя паттерна
step10=logint(step,10);\\Вынес из цикла для ускорения
{forstep(h=start,stop-1,step,\\Цикл по всему диапазону
  for(g=1,#pat,\\Цикл по каждому паттерну
\\!  kppat=kppat+1;print();print();print1(kppat,"   ",kpop,"      ");
system(strprintf("title %de%d:%s",h\10^step10,step10,ff2[g]));\\Меняем заголовок окна на 21e34:N2-36, это по желанию, на работу не влияет
      read(concat(pat[g],".pat"));\\Читаем параметры паттерна
       \\Теперь            z=vector(#v,i,!issquare(v[i]));\\Сформируем вектор флагов squarefree в паттерне, какие места проверять
forstep(ii=floor(h/pp.mod),ceil((h+step-1)/pp.mod),ceil(step/pp.mod)+35000,\\Идём по интервалу
         vi=extern(strexpand(pat[g],".exe ",ii," ",ceil(step/pp.mod)+35000," 2>nul"));\\Фильтруем цепочки
         for(t=1,#vi,\\Все найденные на перепроверку
            n=lift(pp)+pp.mod*vi[t];\\Получаем число начала цепочки из индекса
            if(n<h || n>=h+step, next);\\Не допускаем дублирования цепочек найденных на границе шагов
\\!        kpop=kpop+1;
                   if(
            \\!   (z[1]>0 && !ispseudoprime((n+0)/v[1])) ||
            \\!   (z[2]>0 && !ispseudoprime((n+1)/v[2])) ||
            \\!   (z[3]>0 && !ispseudoprime((n+2)/v[3])) ||
               (z[4]>0 && !ispseudoprime((n+3)/v[4])) ||
               (z[5]>0 && !ispseudoprime((n+4)/v[5])) ||
               (z[6]>0 && !ispseudoprime((n+5)/v[6])) ||
               (z[7]>0 && !ispseudoprime((n+6)/v[7])) ||
               (z[8]>0 && !ispseudoprime((n+7)/v[8])) ||
               (z[9]>0 && !ispseudoprime((n+8)/v[9])) ||
               (z[10]>0 && !ispseudoprime((n+9)/v[10])) ||
               (z[11]>0 && !ispseudoprime((n+10)/v[11])) ||
               (z[12]>0 && !ispseudoprime((n+11)/v[12])) ||
           \\!   (z[13]>0 && !ispseudoprime((n+12)/v[13])) ||
           \\!   (z[14]>0 && !ispseudoprime((n+13)/v[14])) ||
           \\!   (z[15]>0 && !ispseudoprime((n+14)/v[15])) ||
           0,               next;
            );
            s=vector(15,d,numdiv(n+d-1)); k=#select(x->(x==12),s);
            if(k>=10,\\С меньшим количеством совпадений не выводить
               w=strprintf("%d:%s:",n,ff[g]); f=", ALL";
               for(j=1,#v, if(v[j]>1 && s[j]!=12 && !issquare(v[j]), f=""; break));
               if(k==#v, f=concat(f,", FOUND!!!"));
               foreach(s,d, w=concat(w,strprintf("%3d,",d)));
               w=concat(w,strprintf(" valids=%d%s", k,f));
               print(w); write("Process.out",w);\\Печать на экран и сохранение в файл лога Process.out, который должен быть свой (или в своей папке) для каждого потока
               if(k==14, write("..\FOUND14.txt",w));
               if(k==15, write("..\PENTADECATHLON.txt",w));
            );
         );
      );
   );
)}
system("title All end.");\\Информируем что закончили
tob=getwalltime()-t0;
print();
printf("TIME = %0.0f seconds",tob/1000);
write("Process.out","TIME = ",(tob-tob%1000)/1000, " seconds");
write("Process.out","kolshag = ",ceil(step/pp.mod)+35000);
print();
write("end.tmp","is end");\\файл-метка, по нему смотрим когда закончили
quit;


Для других комплектов свои три строчки.

Для PerPat17.gp:

Код:
start=14000*10^30;\\Откуда начать
stop=20000*10^30;\\Где закончить (не включая)
step=1000*10^30;\\Сколько отвести на каждый круг перебора паттернов

Здесь огромный круг, но зато кратный 10-ти.


Для PerPat29.gp:

Код:
start=1500*10^30;\\Откуда начать
stop=2000*10^30;\\Где закончить (не включая)
step=  250*10^30;\\Сколько отвести на каждый круг перебора паттернов



Для PerPat31.gp:

Код:
start=2000*10^30;\\Откуда начать
stop=3000*10^30;\\Где закончить (не включая)
step=  200*10^30;\\Сколько отвести на каждый круг перебора паттернов

 
 
 
 Re: Пентадекатлон мечты
Сообщение29.08.2022, 13:56 
Аватара пользователя
Прежде чем запускать Перпат, надо попытаться запустить любой .exe из комплекта с параметрами типа 0 1000000 — вылетит по ошибке или что-то найдёт. Потому что работать должно только на архитектуре Haswell (именно в ней появилось AVX2) и новее.

Я не смотрел какие там в AVX2-комплекте имена файлов, у меня запуск из консоли cmd такого теста выглядел бы так:

012345.exe 0 1000000

И обычно в результате за пару секунд появляются 5-10 16-ричных чисел.

 
 
 
 Re: Пентадекатлон мечты
Сообщение29.08.2022, 19:00 
После довольно затяжной паузы попалась пара цепочек.
$M(384)\ge 12$

(Оффтоп)

108243025201986055047327070890777924762942365378005697817705427078505694128120

$M(360)\ge 11$

(Оффтоп)

5816914294386055132378833906022140708086228731815909975824045947775167894219563906141664945012680249403132900237427536436117498

И еще парочка на подходе.

 
 
 
 Re: Пентадекатлон мечты
Сообщение29.08.2022, 20:09 
Yadryara
А зачем Вы оставляете в публикуемых файлах явно отладочные вещи? Типа kppat,kpop?

А про эту строку я уже говорил, тут я недоправил:
for(j=1,#v, if(v[j]>1 && s[j]!=12 && !issquare(v[j]), f=""; break));
Она должна быть такой:
for(j=1,#v, if(z[j]>0 && s[j]!=12, f=""; break));
На нахождение цепочек не влияет, только на простановку им метки ALL.

Yadryara в сообщении #1563725 писал(а):
Я не смотрел какие там в AVX2-комплекте имена файлов,
Вот такие: M12-S2-56-123450.exe.
Потому запоминать имя папки в ff2[] нет нужды, вся необходимая информация есть прямо в имени файла и вырезать её в ff[] довольно просто.

Ну и запуск именно AVX2 ускорителей выдаёт результат в виде десятичных чисел, не 16-ричных.

 
 
 
 Re: Пентадекатлон мечты
Сообщение30.08.2022, 04:45 
$M(240)\ge 12$

(Оффтоп)

70997300271362475048479054274659013243552184375207141912016025447332586966887030369088061041098750

 
 
 
 Re: Пентадекатлон мечты
Сообщение30.08.2022, 07:17 
Аватара пользователя
Dmitriy40 в сообщении #1563746 писал(а):
А зачем Вы оставляете в публикуемых файлах явно отладочные вещи? Типа kppat,kpop?

Могут пригодиться. Я как раз недавно думал снова посчитать эти параметры. Стараюсь называть их понятно.

kppat — Количество Проверенных ПАТтернов

kpop — Количество ПОПыток

Это ещё весной считалось. Для оценки вероятностей.

Dmitriy40 в сообщении #1563746 писал(а):
На нахождение цепочек не влияет, только на простановку им метки ALL.

Да, и метка ALL тоже нужна была для оценки вероятностей. Так что я сознательно оставил пока старый вариант. Пусть пореже попадается на глаза, ибо я ей пока не пользуюсь. Так же как и maxlen.

Зато я сделал другую удобную вещь. И Ахиллес, на котором наконец-то заработал 31-й комплект, видимо, может это подтвердить:

Сначала идёт первое число цепочки, а потом уже имя паттерна. И по первым цифрам числа легко видеть, на какой высоте идёт счёт.

Кстати, в 31-м комплекте Ахиллесу тоже надо бы проверку сделать, не прерывая счёта. Для проги из совсем другой группы. Например, если считается N2-группа, то запустить экзешник из S9-группы в отдельном окне:

M12-S9-56-643210.exe 0 1000000

 
 
 
 Re: Пентадекатлон мечты
Сообщение30.08.2022, 09:27 
Yadryara в сообщении #1563773 писал(а):
Кстати, в 31-м комплекте Ахиллесу тоже надо бы проверку сделать, не прерывая счёта. Для проги из совсем другой группы. Например, если считается N2-группа, то запустить экзешник из S9-группы в отдельном окне:
Не нужно, все проги в этом смысле одинаковы, заработала любая одна (хоть в том же 234-м комплекте) - заработают и остальные.

Yadryara в сообщении #1563773 писал(а):
И по первым цифрам числа легко видеть, на какой высоте идёт счёт.
Для этого у меня была (и везде есть) команда
Код:
system(strprintf("title N31:%de%d",h\10^step10,step10)); \\Вывести текущий прогресс в заголовок окна консоли, чисто для удобства
for(g=1,#pat, \\Перебор всех паттернов
...
Очень удобно смотреть, даже не открывая логи, просто по заголовку окна консоли (PARI).
А в последнее время стал ещё и процент перебранных паттернов выводить в окно консоли (здесь ОС для заголовка окна лучше лишний раз не трогать, будет тормозить):
Код:
system(strprintf("title N31:%de%d",h\10^step10,step10)); \\Вывести текущий прогресс в заголовок окна консоли, чисто для удобства
for(g=1,#pat, \\Перебор всех паттернов
ii=floor(h/p[g].mod); p0=lift(p[g]); pm=p[g].mod;
printf("%0.1fe30: %0.2f%%\t\t%c", (p0+pm*ii)/1e30,100.0*g/#pat,13); \\Вывод прогресса на экран, чисто для удобства
vi=extern(strexpand("\"",pat[g],".exe\" ",ii," ",ceil((h+step-1)/pm)-ii+1));
...

Yadryara в сообщении #1563773 писал(а):
я ей пока не пользуюсь. Так же как и maxlen.
Зря, по maxlen очень удобно фильтровать цепочки из больших логов (findstr /S "maxlen=12 maxlen=13" *.out) и не выискивать глазами сколько там непрерывных 12-ок с списке делителей.

 
 
 
 Re: Пентадекатлон мечты
Сообщение30.08.2022, 12:17 
Аватара пользователя
Сравнительно недавно в 23-м комплекте были найдены ещё две 14-ки. Итого, уже 8 новым способом.

Единственным пустым в этом смысле комплектом остаётся 31-й. Кстати, Ахиллес нашёл непрерывную 13-ку в 37-м, а не в 31-м комплекте.

Итак, что уже посчитано на данный момент:

17 _____________ 14000 е30
19 _____________ 29000 е30 ?
23 _____________ 13000 е30 ?
29 ______________ 1500 е30
31 ______________ 1700 е30
37 ______________ 1600 е30 ?

17-й и 29-й комплекты вроде бы никто не считает.

 
 
 
 Re: Пентадекатлон мечты
Сообщение30.08.2022, 17:00 
Аватара пользователя
Yadryara в сообщении #1563794 писал(а):
Сравнительно недавно в 23-м комплекте были найдены ещё две 14-ки. Итого, уже 8 новым способом.

Единственным пустым в этом смысле комплектом остаётся 31-й.

И ещё две 14-ки найдены! Сегодня урожайный день. И 31-й распечатали. Итого, уже 10 новым способом.

Ахиллесу нужно брать старт равный предыдущему стопу. На круг брать столько же, сколько было для данного комплекта, то есть 200е30 для 31-го и 37-го.

А вот новый стоп надо выбирать, исходя из собственного удобства. Например, чтобы счёт не закончился посреди ночи. Пример для следующего запуска 37-го комплекта:

Код:
start=2000*10^30;\\Откуда начать
stop=2800*10^30;\\Где закончить (не включая)
step=  200*10^30;\\Сколько отвести на каждый круг перебора паттернов

Этот пример на 4 круга. Можно взять от одного и чуть ли не до 450 кругов.

 
 
 
 Re: Пентадекатлон мечты
Сообщение31.08.2022, 13:13 
Yadryara
Чтобы не городить петрушки с кучей файлов только для получения даты начала и конца счёта, проще писать их сразу в лог, получая саму дату в удобном формате через powershell винды (работает начиная вроде бы с XP):
Код:
write("Process.out", "Start at ",externstr("powershell -Command Get-Date -Format {dd.MM.yyyy HH:mm:ss}")[1]);
...
write("Process.out", "End at ",externstr("powershell -Command Get-Date -Format {dd.MM.yyyy HH:mm:ss}")[1]);

Как вариант, код externstr("powershell -Command Get-Date -Format {dd.MM.yyyy HH:mm:ss}")[1] можно заменить на strjoin(externstr("cmd.exe /E:ON /C \"date /t && time /t\"")," "), будет без секунд, зато без powershell. Или даже на externstr("cmd.exe /E:ON /C echo %date% %time%")[1], будет до сотых секунды.

-- 31.08.2022, 13:15 --

Кстати тогда уж и правильную сортировку логов по возрастанию чисел тоже можно на powershell сделать.

 
 
 
 Re: Пентадекатлон мечты
Сообщение31.08.2022, 13:35 
Аватара пользователя
Я сегодня в запарке, так что прошу меня простить тех, кто ждёт от меня более подробной инфы.

Вчера были найдены ещё 2 14-ки(всего 6 за день). Сегодня -- ни одной. Пока.

В многопоточности я не смыслю ровным счётом ничего. Даже то, что два(а не 4) потока у Ахиллеса работают -- это здорово.

Демис для 23-комплекта на АВХ2 развил прекрасную скорость: 110 минут на круг в 1000е30.

На завтра планирую эксперимент с самым отстающим, 29-м комплектом...

 
 
 
 Re: Пентадекатлон мечты
Сообщение01.09.2022, 05:31 
Аватара пользователя
Илья Ильф писал(а):
Решено было не допустить ни одной ошибки. Держали двадцать корректур. И все равно на титульном листе было напечатано: «Британская энциклопудия»

Стартовый пост нынешней темы правился 130 раз. Соответствующая Марафонская страница — навряд ли меньше.

И почему же Абсолютный мировой рекорд — мировой рекорд длины и там и там записан как

VAL в сообщении #1547645 писал(а):
\begin{tabular}{|c|c|c|l|r|l|}
\hline 48 & \textbf{20} & 31 & Владимир Лецко & May 2022 & Current WR of lenth \\
\hline \end{tabular}

И молчат ведь все, включая Hugo...

Это ж вам не Мюнхгаузен, где "г" то есть, то нет.

 
 
 [ Сообщений: 3218 ]  На страницу Пред.  1 ... 117, 118, 119, 120, 121, 122, 123 ... 215  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group