Чего тут комментировать, я ж даже не вижу по какому паттерну и кто её запускал.
Так я же внятно сказал:
Я видел несколько сравнений тут в теме, но сходу не понял что с чем сравнивали. Было даже что-то про мои предыдущие программы, которые были с ошибкой. Соответственно так и не понял
что конкретно мне прокомментировать. Может быть Вы сформулируете вопрос чётко и обозримо?
А до логов Демиса я так ещё и не добрался, всё некогда было.
Зачем же бросать в тех частых случаях, когда Ваши программы явно быстрее??
Повторю, кажется уже в третий раз: я не вижу смысла считать столь медленным способом (даже если он в разы быстрее Hugo): доказательной силы он не имеет, соответственно паттерны по любому придётся пересчитывать, найти же меньшую 11-ку таким способом вряд ли получится, учитывая как именно её нашёл Hugo (я кстати выше писал что сделал так же) тоже думаю что она или минимальная или очень близка к ней.
Ещё одна причина: нет адекватной оценки времени работы программы Hugo по любому паттерну, даже по началу лога при запуске. И неясно как понять быстрее моя программа справится или медленнее, если они обе собираются считать несколько часов (если минуты и меньше, то наплевать какая быстрее).
Разумеется это моё личное мнение и я его никому не навязываю, считайте чем хотите, проги из облака я не отзывал.
Ну а версия "с хотя бы одним перебором" ведь скоро появится. Причём Вы ведь свои новые версии тестите на 64 AVX2 компе. И Маруся как раз такой комп. И уже почти свободна. Занято только 3 потока. Ведь можно уже и на ней запускать те или иные тесты?
Тестить конечно можно, а Демис готов выделять для этого время? И не компа, а своё личное? Мне проще самому тест запустить чем объяснять другому что и как надо запустить.
В принципе версию с максимум одним перебором я могу сделать, тут оценка момента переключения режимов относительно проста. Выйдет не слишком оптимально по скорости (критерии надо ещё уточнять), но и не слишком плохо. Но ведь Вы помните что работать оно будет только у Вас и у Демиса и всё? Потому что только вы двое разобрались с компиляцией моих исходников. Я конечно могу подготовить архив готовый к запуску, но как показала практика заранее предусмотреть все возможные ошибки человека при попытке запуска у меня просто не хватит фантазии.
Please could you email me the log file for one or both of these runs?
It may be that optimal -g varies for different patterns, but when I tested this for other cases in the past it seemed similar for most patterns. I found -g16 by testing with b1630.
Of course I will send it by mail, no question.
But when the third test, c-g16, is completed, I think it will be still tomorrow morning. Current status:
Код:
-g16:
305 3^2.5 2 131^2 2^2.3 7^2 2.5^2 3.11^2 2^5 17^2 2.3^2 5: 8272145 / 23350471 (47542.47s)
305 3^2.5 2 131^2 2^2.3 7^2 2.5^2 3.11^2 2^5 5268560303^2 2.3^2 5 (48138.73s)
305 3^2.5 2 137^2 2^2.3 7^2 2.5^2 3.11^2 2^5 3664592759^2 2.3^2 5 (48733.43s)
305 3^2.5 2 139^2 2^2.3 7^2 2.5^2 3.11^2 2^5 2133535777^2 2.3^2 5 (49327.27s)
-g3 for compare:
305 3^2.5 2 137^2 2^2.3 7^2 2.5^2 3.11^2 2^5 2297621071^2 2.3^2 5 (44669.15s)
305 3^2.5 2 139^2 2^2.3 7^2 2.5^2 3.11^2 2^5 853402493^2 2.3^2 5 (45265.78s)
It can be seen that the loss was almost leveled.
And yes, the value of -g should almost certainly depend on the parameters of the pattern (LCM). It is possible to set it the same for all patterns, but not quite optimal. However, I won't say anything for sure, I haven't watched how you use it to estimate time (to switch from linear to recursive iterate).
Я Вам больше скажу, имеет смысл уточнять скорость работы даже для перебора, который длится меньше секунды.
Нет, нету такого смысла. Оно полностью выполнится быстрее чем писать тест. И я таким заниматься точно не буду, в том числе для новых будущих прог. Ещё и из-за большого влияния случайных факторов на результаты таких тестов. Вообще, сравнивать (как минимум под виндой) времена менее единиц (а лучше десятков) секунд - гиблое дело без специальных ухищрений, причём в самом коде сравниваемых программ, корректно (с малой погрешностью) это сделать - отдельная нелёгкая задача.
Исключение: если такой код вызывается много тысяч раз, как второй и последующие переборы или окончание первого перебора, когда всё время уходит на компиляцию ускорителя, а не счёт с ним - и вот тут как раз и попытаюсь выиграть доли секунды, если это реально даст большой суммарный эффект.
-- 11.11.2022, 15:15 --Кстати поделюсь мыслью как ещё более правильно реализовывать в программе оценку момент переключения режимов с линейного на рекурсивный перебор, для своих программ. Они зависят от нескольких точек (простых чисел): момент когда время работы ускорителя становится меньше времени его компиляции, момент когда компиляция ускорителя медленнее линейной проверки в PARI, момент когда линейная проверка в PARI вырождается в проверку одного начального числа. Последним можно было бы пожертвовать если бы не тормознутость PARI и соответственно лучше эту проверку сделать отдельным коротким циклом, чем ровно тот же функционал более длинным кодом.
Так вот, для оценки первых двух точек можно взять и перед основной работой выполнить пару тестов, на реальную скорость перебора ускорителем и на точное время его компиляции, на конкретном компе (и для конкретного паттерна). Это займёт несколько секунд (ну или до пары минут если предварительная априорная оценка окажется слишком далёкой от реальности), зато потом можно будет более аккуратно переключать режимы уже без априорных оценок для совсем других компов и паттернов. И сравнивать скорости на разных компах вообще потеряет смысл.
Скорее всего именно так и сделаю в своих будущих прогах. Разумеется это будет выполняться только для паттернов с априорной оценкой времени в часы и более.
Так что сейчас лезть в бездны статистики скоростей работы моих выложенных прог ... Ну разве что из любопытства.