Message boards :
Science :
PARI/GP и новый эксперимент
Message board moderation
Author | Message |
---|---|
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
walli знаете ли вы программную оболочку PARI/GP? Эта программная оболочка, кажется, работает и в Windows, и в Linux. Я работаю в Windows 64-bit, программа моя написана для этой ОС, хотя, как мне кажется, она будет работать и в ОС Linux. В Windows 32-bit программа тоже будет работать, но медленнее. Надо устроить быстрый штурм :) Вам можно такой штурм устроить, имея хорошую технику. Требуется проверить некоторые последовательности из 15 натуральных чисел в интервале (2973879756088065948, 9887353188984012120346). Смотрите https://boinc.progger.info/odlk/forum_thread.php?id=196&postid=9953 и далее. Как вы оцениваете реальность такой проверки - по времени, если устроить проверку на вашей мощной технике? Проверку можно выполнять в двух направлениях: вперёд и назад. То есть проверяются два интервала: (2973879756088065948, Х] и (X, 9887353188984012120346). При этом в первом интервале выполняется проверка вперёд, а во втором интервале - назад. Хотя можно определить X и в обоих интервалах выполнять проверку вперёд. Далее, можно разбить каждый из интервалов (2973879756088065948, Х] и (X, 9887353188984012120346) пополам и проверять уже 4 интервала - в 4 потоках. Ну, и так далее. Если имеется, скажем, 56 ядер, то интервалы можно разделить на 56 маленьких интервалов и запустить проверку каждого из них в отдельном потоке. Думаю, что такой штурм удастся выполнить за реальное время. Конечно, идеальный способ - выполнить вычисления на кластере. Если кто-то имеет доступ к кластеру, можно попробовать. А ещё, говорят, есть суперкомпьютеры :) Эта задача для всех. Если кто-то заинтересовался, пожалуйста, пишите мне по адресу natalimak1@yandex.ru. PS. Последовательности из 15 чисел составляются не подряд, а с шагом 32р, р - простое число. Ахиллес штурмует :) ![]() У меня проверка выполняется назад от конца интервала 9887353188984012120346. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Прежде чем подробно описывать новый эксперимент, напишу про PARI/GP. Цитирую сообщение https://dxdy.ru/post120724.html#p120724 Буду предполагать, что с установкой PARI/GP вы справитесь. Берется он на официальной страничке. Ссылку на официальную страницу ещё раз дам http://pari.math.u-bordeaux.fr/download.html Итак, для Windows нет никаких проблем, так как Под винду он поставляется в скомпилированном виде Вопрос работы PARI/GP в Linux надо решать. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Напоминаю: о данном эксперименте также пишется в теме https://boinc.progger.info/odlk/forum_thread.php?id=196 Начинайте читать с последней страницы (19-й), так как тема очень большая, в ней о нескольких экспериментах рассказывается. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Итак, если у вас есть ОС Windows 64-bit, вы можете прямо сейчас начать участие в эксперименте. Напишите мне о вашем желании, я пришлю вам подробные инструкции. Контакт: natalimak1@yandex.ru PS. Программа будет работать и в ОС Windows 32-bit, но медленнее. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Господа! Нет, я не забыла об этом эксперименте. Автор задачи, которую мы будем решать в данном эксперименте, Hugo van der Sanden. Смотрите статью в OEIS https://oeis.org/A292580 На данный момент имеются следующие оценки для цепочек длин 10-15 с 12 делителями T(6,10) 2973879756088065948 Hugo van der Sanden 2022-09-03 T(6,11) <= 9887353188984012120346 Hugo van der Sanden 2022-07-14 T(6,12) <= 120402988681658048433948 Hugo van der Sanden 2022-09-25 T(6,13) <= 586683019466361719763403545 Dmitry Petukhov 2022-08-19 T(6,14) <= 1966089440441196672524986345512345 Dmitry Petukhov 2022-09-30 T(6,15) <= 80215613469168729088982885848674841 Natalia Makarova 2022-09-18 Смотрите https://oeis.org/A292580/a292580_7.txt Минимальность цепочки длины 10 Hugo доказал. Теперь требуется доказать минимальность цепочки длины 11. В соответствии с теоретическими и эмпирическими данными, полученными Hugo, минимальную 11-ку надо искать в следующем интервале (2973879756088065948, 9887353188984012120346). Я уже некоторое время ищу минимальную 11-ку, используя алгоритм грубой силы – брутфорс. Мои программы работают и сейчас. И этот эксперимент можно продолжить всем вместе. Это для тех, у кого ОС Windows. Я пока не знаю, могут ли работать мои программы на PARI/GP в ОС Linux. Думаю, что могут, но для этого надо компилировать PARI/GP для Linux. Недавно я написала Hugo и предложила помочь ему в поиске минимальной 11-ки. Он согласился, но… есть проблема. Его программа работает в ОС Linux, а для ОС Windows программы нет, никто ещё не пытался скомпилировать код Hugo для Windows. Вот эту проблему предстоит решить, чтобы начать выполнять эксперимент, используя более эффективный алгоритм Hugo. Задача минимизации цепочек с 12 делителями решается также на форуме dxdy.ru https://dxdy.ru/topic148829.html Я в этом форуме не участвую по причине вечного бана. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Господа! Пожалуйста, прочитайте сообщение https://boinc.progger.info/odlk/forum_thread.php?id=196&postid=10036 Не буду дублировать. Если у кого-то есть возможность попробовать компиляцию, пожалуйста, помогите. Особенно прошу walli посмотреть это сообщение. Очень нужна помощь с компиляцией! PS. Код скомпилировал коллега и помощник corporaltermit. Огромное спасибо! |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Репост https://boinc.progger.info/odlk/forum_thread.php?id=196&postid=10102 Господа! Я начинаю эксперимент с распределёнными вычислениями. Паттернов много, хватит всем :) Думаю, что здесь не нужно напоминать, кто автор этого эксперимента. Для начала скачайте архив с программой для ОС Windows https://disk.yandex.ru/d/tow3YsSIviBpvw Яндекс.Диск, 1,82 МБ Исполняемая программа имеет имя pcoul.exe Она запускается с помощью пакетного файла start.bat В архиве есть пример файла start.bat В этом примере запускается проверка паттерна b109 pcoul.exe -rb109.txt -x9887353188984012120346 -f11 -g3 -b109 12 11 pause Обратите внимание на то, что паттерн указывается в двух местах командной строки: -rb109.txt и -b109. Все остальные параметры и аргументы командной строки (кроме паттерна) для данного эксперимента неизменны. Исполняемая программа pcoul.exe работает в ОС Windows 64-bit. Продолжение следует |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Итак, 1. Вы имеете ОС Winows 64-bit. 2. Вы скачали архив с программой https://disk.yandex.ru/d/tow3YsSIviBpvw 3. Вы выбрали паттерн для проверки из диапазона b160-b199, например, b160. 4. Измените файл start.bat следующим образом pcoul.exe -rb160.txt -x9887353188984012120346 -f11 -g3 -b160 12 11 pause Всё готово для запуска проверки паттерна b160. Когда программа отработает, на экране появится запись "Для продолжения нажмите любую клавишу . . ." Результаты запишутся в файл b160.txt. Этот файл вы пришлёте мне. Пожалуйста, задавайте ваши вопросы здесь, или в ЛС (для кого форум доступен), или по адресу natalimak1@yandex.ru Ахиллес выполняет эксперимент ![]() |
Send message Joined: 11 Jul 17 Posts: 174 Credit: 4,930,486 RAC: 2,521 ![]() ![]() ![]() ![]() ![]() |
Поскольку тема в https://boinc.progger.info/odlk/forum_thread.php?id=196 перекрыта, Напишу комментарий по поводу сообщения https://boinc.progger.info/odlk/forum_thread.php?id=196&postid=11061#11061 Строку: lena=128 Лучше заменить на строку: lena=#a; Тогда не придется каждый раз подставлять руками правильное значение из переменного массива a=[1,2,3, ...]. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Demis спасибо! Не знала такую команду. Попробую её использовать. Тема закрыта для комментариев по известной вам причине: очень любит эту тему спамер cittera, мне надоело удалять за ним мусор. А вы можете сделать программу формирования текста программы, которую я сейчас формирую вручную? На форуме MHP один форумчанин обещал попробовать. Жду его результат, если получится. По этому вопросу можно писать в теме "К штурму 19-ки" https://boinc.progger.info/odlk/forum_thread.php?id=237 Это открытая тема. Кстати, цитата из сообщения https://boinc.progger.info/odlk/forum_thread.php?id=196&postid=11064 В теме один форумчанин согласился посмотреть мою проблему с формированием текста программы. Это и есть задание для формирования программы по данному исходнику с переменными блоками. В этом задании 261 паттерн с соответствующими формулами. Это задание и пытается выполнить форумчанин с форума MHP. Demis возможно, вы это уже видели. Задание скачано с Яндекс.Диска 2 раза. Один раз - форумчанин с MHP. Кто второй? :) |
Send message Joined: 11 Jul 17 Posts: 174 Credit: 4,930,486 RAC: 2,521 ![]() ![]() ![]() ![]() ![]() |
Одна закачка точно моя. Из нее и родилась идея с подсказкой про "lena=#a"... А вторая идея была - использовать нечто вроде функции или процедуры, поскольку навскидку не нашел как пари-гп может исполнять подгружаемый код. Хотя один трюк там вроде есть, но у меня он не получился. Мне "казалось", что в статьях Дмитрия или МахАлл это где-то встречалось, но тоже на вскидку не нашел. А потом просто не было времени, как у меня это часто бывает... |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Понятно. Кстати, вашу подсказку успешно использовали с форумчанином с MHP, всё замечательно работает. Он сформировал программу на 261 паттерн и прислал её мне. Но у меня проблема с копированием на удалённые компьютеры. Проблема недавно возникла, когда владелец взял другую программу подключения к удалённым компьютерам. Прежняя начала глючить. Теперь никак не могу отправить на удалённый компьютер файл с программой. Не копирует! Может, там какой-то хитрый есть финт для копирования, но мы его не знаем. Программа подключения rustdesk.exe Вам не приходилось с этой программой работать? Запускать эту программу на 261 паттерн на черепашке - это будет очень долго, за рабочий день не выполнится. Не могли бы вы попробовать эту программу у себя? Программа, как вы понимаете, работает в PARI/GP. Путём всяких ухищрений мне удалось скопировать часть этой программы (34 паттерна из 261) в имеющийся файл на удалённом компьютере. Дальше - хоть застрелись - не копируется. Вот эту часть (на 34 паттерна) запустила, наблюдаю. Пока работает, ошибок не выдала. Хотелось бы опробовать программу на все 261 паттерн. Но и это ещё не все паттерны. Их более 4000 для диаметра 420. Я дала форумчанину немножко паттернов, чтобы попробовать. Кстати, он пишет, что делал формирование программы в Матлабе. Вы пользуетесь Матлабом? Он мне и ссылку прислал, но предупредил, что дистрибутив 22 ГБ. Ну, я даже и не стала пытаться скачать. Такие объёмы не для моего ПК. Программа у него сформировалась за несколько секунд. Да а что там особо делать-то? Процедура очень простая. |
Send message Joined: 11 Jul 17 Posts: 174 Credit: 4,930,486 RAC: 2,521 ![]() ![]() ![]() ![]() ![]() |
С rustdesk не сталкивался. Но обычно, при поиске подобных проблем подключения (из разных программ), нужно не забывать про механизмы работы виндовс (да и не виндовс тоже) по сети (и не забывать про smb, и не забывать про защиту оного). По сути, для работы того-же "ctrl+c;ctrl+v" (это почти "копирование") через сеть, нужно помнить "буфер копирования" будет работать через порт 445. Соответственно необходима настройка правильного доступа на этом порту по всей цепочке соединения от "хоста клиента" (откуда) до "хоста сервера" (куда) и обратно. В винде есть правила в настройке файервола для этого порта, для программы rustdesk. Правда излишне полные (слишком широко открытые). Хотя начиная с виндовс виста, уже неплохо работающие даже для полностью открытых, для сети, систем. На вскидку: 1. Нужно проверить доступность для локальной программы rustdesk локального порта 445 на "компьютере сервере". 2. Нужно проверить доступность для локальной программы rustdesk локального порта 445 на "компьютере клиенте". 3. Нужно проверить доступность на "компьютере клиенте" порта 445 на "компьютере сервере". 4. Нужно проверить доступность на "компьютере клиенте" порта связи (я не знаю какой/какие она использует) и на "компьютере сервере". 5. Нужно проверить аналогичное для RDP (порт 3389) протокола. 6. Нужно проверить доступность "локалхост, 127.0.0.1" для программы на обоих машинах. 7. Нужно проверить не происходит-ли блокировка таких подключений каким-нибудь антивирусом (имеется ввиду не проверка антивирусом, а влияние антивируса). В большинстве своем программы вида "rustdesk" делают именно эти проверки и устанавливают нужные значения или "связки", если это "действо по установке" не запрещено самой системой. Чем упрощают выше перечисленные проверки и нужно меньше думать как это работает. Важно ничего не напутать, иначе станет хуже. Скорее всего проблема где-то на уровне 3,4. Есть еще проблема 8. (условно, что-то еще). Например, никак не связана с п.1-7, и это просто промежуточные соединения в сети. На которые мы никак не можем повлиять. В последние 12 месяцев наблюдается явное вмешательство в нестандартные соединения, причем в совершенно конкретное время, типа с 8:00 до 18:00 и в разных регионах по разному. Что есть бред, но является техническим фактом. Тут уже нужны более изощренные трюки. У меня пока нет ресурсов для запуска. Матлабом не пользуюсь. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Demis спасибо за ответ. Что вы можете сказать о такой проблеме: есть текст, состоящий из переменных блоков (текстовый файл); требуется после каждого переменного блока вставить постоянный блок - фрагмент текста в этот же текстовый файл. Есть ли какой-то инструмент для такой вставки? Сейчас я делаю это банально вручную: открываю текстовый файл с переменными блоками, копирую постоянный блок в буфер обмена и начинаю вставлять. Всё просто, но, конечно, долго и нудно. Сегодня, например, сделала таким макаром программу для обработки 62 паттернов (обработка одного паттерна - это и есть два блока: переменный и постоянный). Сделать это для 4000 паттернов вручную нереально. Нужно как-то автоматизировать эту процедуру. Вопрос - как? Ну, форумчанин с форума MHP применил для автоматизации этой процедуры Матлаб. У меня нет Матлаба. Мне нужен какой-то другой инструмент. PS. Задание подробно описано здесь https://boinc.progger.info/odlk/forum_thread.php?id=237&postid=11113 |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Demis вашу кашу я не читала и скрыла её от других пользователей. Если вы хотите не умничать и не критиканствовать, а чем-то помочь, читайте внимательно тему "К штурму 19-ки", вникайте в мой путь и в то, что уже сделано на этом пути на данный момент. Есть предложения по оптимизации достигнутых результатов, постарайтесь сформулировать это кратко и конкретно. Пишите здесь в этом случае. Подобные скрытому посту винегреты будут снова скрыты. Как я понимаю, желания помогать у вас не имеется. Ваша сумбурная критика мне не нужна, как-нибудь разберусь сама или с участием других помощников. Задача моя была сформулирована абсолютно чётко. Её понял форумчанин с форума MHP и решил с помощью вставок в Матлабе; её понял также gris и решил с помощью написания функции. Только вы считаете, что задача сформулирована не точно. |
Send message Joined: 11 Jul 17 Posts: 174 Credit: 4,930,486 RAC: 2,521 ![]() ![]() ![]() ![]() ![]() |
Я представил Вам решение задачи. А по поводу "42дня + 3819 дней = 3861 день" https://boinc.progger.info/odlk/forum_thread.php?id=237&postid=11263 Просто ЕЩЕ раз просто напоминаю: Оптимизированная программа работает более чем в 10 раз быстрее. 3861 / 10 = 386 дней один поток. Например, представленный код нагенерировал с 06.03.2023 по "сейчас" - 62.475 pattern-all.txt (диаметр тот-же 756) а оптимизированный код с 09.03.2023 по "сейчас" - уже 301.478 pattern-all-d756.txt Пропорцию в разнице можете посчитать сами. Если на компьютере 8 ядер, то: 386 / 8 потоков = 48 дней на одном компьютере. Т.е. 2 компа по 8 потоков посчитают за 24 дня, вполне разумный и подъемный срок. Какие миллионы лет??? |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Т.е. 2 компа по 8 потоков посчитают за 24 дня, вполне разумный и подъемный срок. Вы о решении какой задачи говорите? У меня задача - поиск симметричного кортежа длины 19 из последовательных простых чисел 1) с минимальным диаметром 252; 2) с любым другим диаметром. Вы понимаете, что диапазон поиска в этой задаче - до 1 с N нулями? Пожалуйста, поясните: вы о решении какой задачи говорите? Что посчитается за 24 дня? Вот те паттерны, которые вы насчитали (в пределах диаметра до 1000), их все надо обрабатывать моим алгоритмом в диапазоне до 1 с N нулями. Я сейчас обрабатываю паттерны с диаметрами до 456 и пока не все теоретически возможные, и диапазон поиска - небольшими интервальчиками. До вас доходит, откуда миллионы лет? Или пока нет? По поводу "оптимизированной программы" тоже нужно пояснение. Какую именно из программ, используемых в моём алгоритме, вы оптимизировали? Вы алгоритм хорошо понимаете? Всю схему, которая используется в алгоритме. Если хорошо понимаете, тогда напишите, пожалуйста, какой именно этап вы оптимизировали, и покажите конкретный код для конкретного диаметра (для всех теоретических паттернов) и для конкретного интервала поиска центральных 9-ок. Покажите, как работает ваш оптимизированный код - на небольшом интервале поиска (с замером времени). И как работает соответствующий код мой или gris в том же интервале поиска для того же диаметра - с замером времени. Вот так показывают оптимизацию программы! Иначе никак. Только бла-бла-бла - напустить туману. Кстати, gris оптимизировал мой код (этап поиска центральных 9-ок), я показывала тесты для оптимизированного кода. После чего, убедившись, что его программа работает быстрее, перешла на его программу. Это вам пример, как проверяется оптимизированный код. Всё это показано в теме "К штурму 19-ки". Читайте внимательно тему! К чему я вас уже призывала. Глядишь, и про миллионы лет поймёте, и о том, что задача решается уже девятый год, и о двух остановленных BOINC-проектах по этой задаче, в которых использовалась программа Белышева, что есть брутфорс. Когда прочитаете и сможете показать ваш оптимизированный код таким же образом, как я показала оптимизированный код gris, тогда поговорим. |
Send message Joined: 11 Jul 17 Posts: 174 Credit: 4,930,486 RAC: 2,521 ![]() ![]() ![]() ![]() ![]() |
Какой смысл мне что-то снова объяснять, показывать ссылки на Ваши просьбы по задаче, приводить текст из них, если мои посты все равно скрываются? Откроете пост тогда, возможно, продолжим это обсуждение... Пока суть да дело, цифирьки меняются: нагенерировал с 06.03.2023 по "сейчас" - 66.366 pattern-all.txt (диаметр тот-же 756) а оптимизированный код с 09.03.2023 по "сейчас" - 334.068 pattern-all-d756.txt |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13821 Credit: 0 RAC: 0 |
Так вот и я считаю, что в продолжении дискуссии нет никакого смысла. На этом её и прекращаю. Что и зачем вы там генерируете, мне абсолютно неинтересно. Прекращение дискуссии подразумевает, что вы прекращаете постить в этой теме свои сообщения. Предлагаю вам открыть свою тему и постить там свои простыни с рассказами о ваших оптимизациях сколько вам захочется. Участвовать в вашей теме я, разумеется, не буду. И скрывать ваши сообщения в вашей теме не буду. |
©2024 (C) Progger