Оптимизация программы

Message boards : Cafe : Оптимизация программы
Message board moderation

To post messages, you must log in.

1 · 2 · 3 · 4 . . . 5 · Next

AuthorMessage
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17410 - Posted: 24 Aug 2025, 13:59:47 UTC
Last modified: 24 Aug 2025, 14:00:51 UTC

gris опубликовал программу и советы GPT, которые прислал мне Макс Алексеев
https://dxdy.ru/post1699535.html#p1699535

Ой, gris, берегитесь! :)))

Ядряра писал:
gris, а вы не в курсе, что нельзя быть её рупором? Нам это чётко объяснили.

И далее
И что мы здесь сейчас будем по-новой объяснять как ускорить эту программу??

Нет, конечно вы, Ядряра, не будете объяснять.
Кто же в этом сомневался?!

Может быть, другие люди найдутся, форум ведь не из вас одного состоит.
ID: 17410 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17411 - Posted: 24 Aug 2025, 14:14:57 UTC
Last modified: 24 Aug 2025, 14:21:42 UTC

Г. Петухов подробно прокомментировал советы GPT.

И пришёл к выводу
Собственно бесспорно лишь 1.

Очень умный (прям гениальный) совет даёт г. Петухов
Итог: любые советы ИИ надо обязательно перепроверять! В том числе и на правильность вычислений, галлюцинации ИИ никто не отменял.

Анализ советов GPT мы с gris тоже сделали, разумеется.
И пришли к выводу, что ни один совет не является действенным.
То есть оптимизировать программу, используя эти советы, не стоит.

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

Цитирую

1 Работа с китайской системой сравнений
Сейчас каждый раз считается
gp
Copy code
bpt = lift(chinese([...]));

Это дорогая операция.
Можно вынести все константные модули ( 2,3,5,7,11,13,17,19,... ) в один общий
модуль
gp
Copy code
M = lcm([2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61]);

и заранее посчитать обратные элементы для каждого модуля (CRT через Garner или
precomputed inverses). Тогда вместо chinese вы делаете быстрый ручной CRT на
базе предвычислений.

Я вычислила
M = lcm([2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61]);

Он оказался равен 61#.

И что делать дальше?
Тогда вместо chinese вы делаете быстрый ручной CRT на
базе предвычислений.

Какой такой "быстрый ручной CRT"?

Что такое "обратные элементы для каждого модуля"?
ID: 17411 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17412 - Posted: 24 Aug 2025, 14:29:52 UTC
Last modified: 24 Aug 2025, 14:48:28 UTC

Ядряра писал
Что означает слово "ключ" в названии нынешней темы?

Боже мой!
gris,
куда вы свалились!!

Надежда только на то, что придут другие форумчане.
Кстати, написала Максу письмо и пригласила прокомментировать.
ID: 17412 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17413 - Posted: 24 Aug 2025, 14:45:54 UTC
Last modified: 24 Aug 2025, 14:51:13 UTC

Ядряра писал
Ну так я внёс. И довольно давно: Разбиение на группы по чистоте. И недавно здесь же чуть выше напомнил об этом.

При чём здесь это?

Кстати, чуть выше г. Петухов писал
Т.е. искать начиная с чистых групп всё же должно быть выгоднее ... Хорошо.

Мне не надо начинать с более выгодных групп!
Предложенная программа выполняет тотальную проверку.

Задан вопрос по оптимизации конкретной программы с целью убыстрения.

Ядряра же про свои "чистые группы" опять и снова.
Нет в предложенной программе никаких "чистых" и "грязных" групп!
Это понятно, гений вы наш?
ID: 17413 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17414 - Posted: 24 Aug 2025, 14:59:16 UTC
Last modified: 24 Aug 2025, 18:29:52 UTC

Ядряра писал
Да и по смыслу видно. Кстати, можем скорость счёта теперь сравнить.

Хи-хи-хи!

Могу доложить: предложенная программа выполняется на черепашке 28 минут.

Если мы добавим в программу всего одну строку, которая ускорит её в 14 раз, программа будет выполняться всего 2 (две) минуты!

Закавыка только в том, что нам эту строку упорно не хотят сказать.
ID: 17414 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17415 - Posted: 24 Aug 2025, 16:20:40 UTC
Last modified: 24 Aug 2025, 16:37:28 UTC

Г. Петухов писал
Кстати, посмотрев внимательнее на код, обнаружил что он в принципе не может найти кортежи длиной 15 с кодами, в которых старшие три или младшие три бита нулевые. Забавно.

???
С какими такими "кодами"?
У центральной 15-ки только один код: 8191.

Цитирую проверку центральной 15-ки

 \\кортеж 15
      if(ispseudoprime(bpt) && ispseudoprime(bpt+pt[15]),
      l=0;
      forprime(p=bpt,bpt+pt[15], l++; vmy[l]=p;  );
      if(l==15,
      for(m=2,15, pat15[m]=vmy[m]-vmy[1]; );
      if(pat15==pt,
      w1=strprintf("%d: %d\n",vmy[1],pat15);
      print(w1);
      filewrite(fout,w1); );
      pat1=vector(15,i,(pat15[i]==pt[i]));
       vlds=vecsum(pat1);
      if(vlds>9,
      code=fromdigits(pat1[2..14],2);
      w1=strprintf("%d: %d\n %d\n",vmy[1],pat15,code);
      filewrite(fout,w1);
      print(w1); );

Кстати, эта же программа (только в другом диапазоне) работает в ручном проекте.
Как ни странно, центральную 15-ку программа нашла.
Ну, наверное не с таким "кодом", о котором пишет г. Петухов.

Г. Петухов изменил своё сообщение. процитированное выше
Кстати, посмотрев внимательнее на код, обнаружил что он в принципе не может найти кортежи длиной 15, в которых 2,3,4,12,13,14 числа кортежа составные (эти биты в коде будут нулевыми). Забавно.

По-моему, забавный бред сивой кобылы.

При чём здесь составные числа???
"...в которых 2,3,4,12,13,14 числа кортежа составные..."

В кортежах, которые ищутся, нет составных чисел.
ID: 17415 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17416 - Posted: 24 Aug 2025, 16:26:40 UTC
Last modified: 24 Aug 2025, 16:32:16 UTC

Г. Петухов писал
...ну и зачем тогда это нам?

Гений, супермен, не понимает, что ему это никто не предлагает.
На форуме есть другие люди.
Или вы с Ядрярой - два пупа Земли и больше никого в упор не видите и не признаёте?

В том, что вы, г. Петухов, не будете помогать, никто уже давно не сомневается.
ID: 17416 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17417 - Posted: 24 Aug 2025, 16:39:48 UTC

Г. Петухов писал
Я так вообще не понимаю какую задачу решает запуск этого приложения. Вот не понимаю.

Потому что ... (самоцензура).

Есть хорошее правило: не понимаешь - не лезь, не твоё!
ID: 17417 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17418 - Posted: 24 Aug 2025, 16:58:01 UTC

Цитата из моего письма gris

Советы GPT только выбросить в мусорную корзину.
Я сейчас вникла во второй пункт.
Там такая фигня!
Не буду подробно описывать, если вам это интересно, посмотрите сами второй пункт, что он там насоветовал.
ID: 17418 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17419 - Posted: 24 Aug 2025, 17:00:49 UTC
Last modified: 24 Aug 2025, 18:35:46 UTC

Цитирую второй пункт советов GPT

2 Использование primepi вместо forprime
Сейчас у вас:
forprime(p=bpt+pt[4], bpt+pt[1S2k]i,p tlo+ c+o;n tvemnyt[l]=p; );
Но forprime — это перебор всех простых в интервале. Если интервал узкий и
нужно только число простых и их позиции, лучше:
Сначала проверить, что количество простых равно нужному
( primepi(bpt+pt[12]) - primepi(bpt+pt[4]-1) == 9 ),
И только если совпало — тогда уже реально получать список простых через
vecPrimes(bpt+pt[4], bpt+pt[12]) .
Это уберёт 99% ненужных проходов.

Вот пример

{19636136869136960600121728443,
19636136869136960600121728473, 19636136869136960600121728491, 19636136869136960600121728497,
19636136869136960600121728521, 19636136869136960600121728527, 19636136869136960600121728533,
19636136869136960600121728557, 19636136869136960600121728563, 19636136869136960600121728581,
19636136869136960600121728611}
Это центральная 11-ка.

Требуется определить, сколько последовательных простых чисел находится в интервале [19636136869136960600121728443,19636136869136960600121728611].

Мой код делает это мгновенно

forprime(i=19636136869136960600121728443,19636136869136960600121728611, print1(i,", "); k++; ); print(k); 

Получаем

19636136869136960600121728443, 19636136869136960600121728473, 196361368691369606
00121728491, 19636136869136960600121728497, 19636136869136960600121728521, 19636
136869136960600121728527, 19636136869136960600121728533, 19636136869136960600121
728557, 19636136869136960600121728563, 19636136869136960600121728581, 1963613686
9136960600121728611, 11

А теперь попробуйте сделать так, как советует GPT.

Я попробовала, результата не дождалась :)
Код просто завис.
ID: 17419 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17420 - Posted: 24 Aug 2025, 17:16:18 UTC
Last modified: 24 Aug 2025, 18:05:14 UTC

Г. Петухов писал
С другой стороны, откуда Вы взяли цифру 5%, её реально измеряли или это просто прикидка на глазок?

Так ведь это ежу понятно, хоть на глазок, хоть не на глазок.
Вычислить добавку по известным разрешённым остаткам - это не то что 5%, скорее даже меньше.

Можно измерить время выполнения функции

bpt=lift(chinese([Mod(1,2),Mod(2,3),Mod(4,5),Mod(2,7),Mod(9,11),Mod(4,13),Mod(rost17,17),Mod(rost19,19),Mod(rost23,23),Mod(rost29,29),Mod(rost31,31),Mod(rost37,37),Mod(rost41,41),Mod(v43[i43],43),Mod(v47[i47],47),Mod(v53[i53],53),Mod(v59[i59],59),Mod(v61[i61],61)]));

и сравнить со временем всей остальной программы, то есть с проверкой кортежей.
ID: 17420 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17421 - Posted: 24 Aug 2025, 17:25:34 UTC
Last modified: 24 Aug 2025, 17:26:18 UTC

gris,
ау, вы живы? :)
Как вам ваши друзья сильно помогли! :))
Прям сердце радуется.

Ну, Макс письмо не скоро увидит, а и увидит, не факт, что будет комментировать.
Ему это тоже (как и г. Петухову) совсем не нужно.

Кстати, он мне ещё прислал оптимизированную программу от Дипсика.
Так эта программа вообще не работает, вылезает ошибка.

Макс убеждён, что ИИ способны писать хорошие программы.
Я пока в этом совсем не убеждена, скорее убеждена в обратном.
ID: 17421 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17422 - Posted: 24 Aug 2025, 18:00:16 UTC
Last modified: 24 Aug 2025, 18:22:39 UTC

Ну вот, Макс пришёл в тему
https://dxdy.ru/post1699559.html#p1699559

Значит, письмо моё увидел.

Но... комментарий о параллелизации.
Нафиг он мне нужен.
Параллелизацию я уже сделала достаточную для конечной программы.

А кранчеры в BOINC-проекте загружают сразу несколько заданий (таких конечных программ).
Они выполняются одновременно, насколько позволяет машина, на которой программы работают.
Это автоматически делает BOINC-менеджер.
Кранчеры вводят соответствующие настройки.

То же самое я делаю в ручном проекте.
Запускаю пакеты программ; на одном компьютере пакет из 20 программ, на другом компьютере - из 7 программ.
Всё прекрасно работает!
Никакая параллелизация не нужна.
ID: 17422 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17425 - Posted: 25 Aug 2025, 1:18:01 UTC
Last modified: 25 Aug 2025, 1:35:13 UTC

У г. Петухова словесный понос о параллелизации.

На этом, кажется. всё и закончится.
gris пишёл какой-то пришибленный, прямо горем убитый :)
Чтобы ответить на вопрос пупа Земли - г. Петухова.
А как же, нельзя не отвечать!

Это г. Петухову можно не отвечать.
Ему gris задал вопрос по первому совету GPT.
И где ответ?

Цитирую вопрос gris

Dmitriy40, у меня небольшое непонимание.
В программе в цикле вычисляются по-китайски все кандидаты на первый элемент кортежа. А затем кортеж проверяется. Даже если проверка проходит хорошо, всё равно основное время работы уходит на неё. Применение chinese занимает от силы 5%. Есть ли смысл делать это врукопашную с предвычислениями? Или же сосредоточиться на оптимизации проверки кортежа, тогда и оптимизация китайской части сыграет.

https://dxdy.ru/post1699539.html#p1699539

Макс тоже, похоже, откомментировался.
Ну, спасибо!
О параллелизации я не спрашивала, она мне совсем не нужна.
У меня, в частности, тоже вопрос по первому совету GPT.

Что, никто не знает ответ?
Или все знают, просто не считают нужным отвечать глупой Макаровой?

Ссылку в эту тему я Максу отправила.
Два пупа Земли сами прекрасно знают.
ID: 17425 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17426 - Posted: 25 Aug 2025, 1:31:40 UTC
Last modified: 25 Aug 2025, 1:56:43 UTC

gris,
не расстраивайтесь вы так!
Прямо больно смотреть на ваше последнее сообщение.

Они гении, а мы глупые.
Пусть наслаждаются своей гениальностью и радуются до пенсии, что глупая Макарова не знает, как ускорить программу :)))

Ядряра о своей гениальной идее с "чистыми" и "грязными" группами рассказал на форуме уже раз 10.

И не бойтесь сильно, что осмелились опубликовать мою программу на форуме.
Ну, не убьют же они вас за это.

Напомню гениям, что глупая Макарова уже почти 11 лет ведёт проект.
Созданы уникальные БД.
Работает BOINC-проект
https://boinc.mak.termit.me/odlk2025/
Работает ручной проект.
Новые алгоритмы разрабатываются и программно реализуются (и в BOINC-проекте, и в ручном проекте).

Гении никак не могут понять, что же я считаю в BOINC-проекте.
Так ведь гении дураков не понимают!

Попросила Макса оптимизировать программу.
Он ответил, что ему надо разбираться в алгоритме.
GPT разобрался в алгоритме превосходно!
Сколько он времени на это потратил?

Процитирую изложение алгоритма, сделанное GPT

Я посмотрел на вашу программу на PARI/GP (файл 15_61_0period_boinc.txt ). Она
довольно тяжёлая: вложенные циклы по ~28×32×38×44×46 ≈ 67 миллионов
итераций, и внутри каждой проверяются условия на простоту, формируются кортежи
и сравниваются с шаблонами.

Всё предельно ясно, прямо во всех деталях.
ID: 17426 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17427 - Posted: 25 Aug 2025, 4:47:53 UTC
Last modified: 25 Aug 2025, 5:13:37 UTC

Пришёл полицейский с допросом

Где используется, кем используется? И почему надеетесь? Зачем это вам надо, чтобы более опытные товарищи разобрались, да ещё и подробно?

Не так давно он допрашивал

gris, планируете отвечать на мой вопрос по поводу "минималок Дмитрия"?

А прогнозирование количества кортежей вам интересно?

Про "минималки Дмитрия" это было выше несколько раз.
Прямо пристал, как банный лист к одному месту.

Бедный gris уже не знает, как от него отделаться.
Ну, есть хороший русский метод...

Вот процитирую

Как я мог что-то ещё найти, если заказ был подтвердить иным способом данные, которые я у Дмитрия же и взял, но неправильно их распаковал. Смотрите отчёт в известном вам месте. Я подготовил прогу, которая по некоторым паттернам (они приведены, кстати в том же самом месте) находила минималку и сразу же переходила к другой группе паттернов. Заказ я выполнил не на своём компе. Заказчик удовлетворён. Вопрос, по которому я ощущал свою вину, закрыт. Иные запросы рассматриваются отдельно. Вы пробуете вызвать у меня подобное чувство вины? А скорее действуете по криминальным обычаям наезда на терпилу.

https://dxdy.ru/post1696087.html#p1696087

Почитайте, почитайте, господа тему несколько страниц назад!
Максу не мешает почитать!
Хотя ему давно уже до лампочки, что творится в моей теме о кортежах и в теме gris.

Я тему gris давно не читаю (как и свою тему о кортежах).
А сейчас вот глянула...
Боже мой!
Опять сплошной флуд!

https://dxdy.ru/post1698205.html#p1698205

Сколько можно из штанов выпрыгивать?!
Неприлично голой ж... светить на весь форум!
ID: 17427 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17428 - Posted: 25 Aug 2025, 5:21:12 UTC

Ах!
Даже и пруф дан

https://boinc.progger.info/odlk/forum_thread.php?id=325&postid=17357

Ядряра, а вы в курсе ... что нельзя быть "её рупором" ???!!!
ID: 17428 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17429 - Posted: 25 Aug 2025, 5:25:31 UTC
Last modified: 25 Aug 2025, 5:25:51 UTC

Г. Петухову, если он читает эту тему,
цитата

Г. Петухову необходимо исправить дезинформацию!
Просто надо вернуть прежнюю запись, которая была правильная.
Если необходимо указать название BOINC-проекта, можно указать с уточнением: BOINC-проект закрыт.
Если необходимо дать ссылку, где можно посмотреть этот результат, можно дать ссылку на проект TBEG
https://boinc.tbrada.eu/spt/tuples.php?spt=17&p=1

https://boinc.progger.info/odlk/forum_thread.php?id=259&postid=17384

Ещё немного подожду, если не исправит, сама буду исправлять.
ID: 17429 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17433 - Posted: 25 Aug 2025, 12:35:47 UTC
Last modified: 25 Aug 2025, 12:49:35 UTC

Как же всё предсказуемо!

Стёб, хамство, словесный понос...
И что же можно читать в этой теме?

По существу ничего не сказано.
Ответ на свой вполне конкретный вопрос gris не получил.

Макс не сказал по сути вопроса (оптимизация программы) ничего!
Параллелизация...
О ней никто не спрашивал.
Г. Петухов оторвался по полной программе (с параллелизацией)!
Очень любят такие типы наезжать на разработчиков - сплошные ошибки, мол, у них.
Свинья под дубом! (басня Крылова)

Вот это
Где используется, кем используется? И почему надеетесь? Зачем это вам надо, чтобы более опытные товарищи разобрались, да ещё и подробно?

прямо хамский допрос Ядряры.

Он же прекрасно знает, где используется, кем используется.

gris даже не нашёл в себе сил ответить на это хамство.
Я бы ответила, по-русски!
Даже если бы меня за это забанили навечно.
Считайте, что я ответила (самоцензура не позволяет озвучить ответ; ну, всем ответ по-русски хорошо известен) - за своего друга!
ID: 17433 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile Natalia Makarova
Project scientist
Avatar

Send message
Joined: 6 Apr 17
Posts: 16405
Credit: 0
RAC: 0
Message 17434 - Posted: 25 Aug 2025, 12:57:18 UTC

У Достоевского очень давно прочитала высказывание о таких типах, как Ядряра.

Суть помню, точно воспроизвести не могу.

Тысячу раз вспомнила Мунина...
Он раскусил Ядряру сразу!
ID: 17434 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
1 · 2 · 3 · 4 . . . 5 · Next

Message boards : Cafe : Оптимизация программы


©2025 (C) Progger