Message boards :
Science :
New experiment PADLS for distributed computing
Message board moderation
Author | Message |
---|---|
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Запускаем новый эксперимент PADLS для добровольных вычислений в ручном проекте. Поясню, что такое PADLS. Это аббревиатура от Pseudo Associative Diagonal Latin Squares. Напомню, что алгоритм поиска ОДЛК 10-го порядка от псевдоассоциативных ДЛК, разработанный мной четыре года назад, был реализован в BOINC-проекте TBEG (Словакия). Были реализованы два варианта алгоритма - избранный и тотальный. К сожалению, этот эксперимент в указанном BOINC-проекте остановлен. Первый вариант алгоритма (избранный) был реализован для линейки 15 и выполнен частично. Второй вариант алгоритма (тотальный) был реализован для линейки 51 и тоже не выполнен до конца. Сейчас мы будем выполнять эксперимент в линейке 15 по второму варианту алгоритма. Я решила взять для нового эксперимента другую линейку, потому что трудно сейчас определить проверенную область линейки 51 и продолжить тот эксперимент. Что и как мы будем искать, я уже немного рассказала в теме https://boinc.progger.info/odlk/forum_thread.php?id=217 Пожалуйста, посмотрите эту тему. ПО эксперимента (две программы) разработано Алексеем Белышевым. При этом программа family_mar претерпела модификацию, выполненную Tomas Brada и Demis; они сделали эту программу многопоточной. Программа Алексея Белышева однопоточная. Далее я описала процесс поиска ОДЛК, а Demis написал по этому описанию скрипт. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
В моём алгоритме поиска применяется метод интервалов. В указанной выше теме https://boinc.progger.info/odlk/forum_thread.php?id=217 рассказано об этом методе. Не буду здесь повторять подробно. Покажу только начало и конец массива КФ ОДЛК, с которым мы будем работать #1 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 0 6 8 9 3 7 5 6 5 8 3 9 1 4 0 2 7 5 0 7 9 4 2 8 1 6 3 3 6 9 8 7 5 0 4 1 2 7 8 0 5 1 9 6 2 3 4 9 3 6 2 8 4 1 7 5 0 4 9 1 7 2 0 3 5 8 6 8 7 5 1 0 3 2 6 4 9 #2 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 0 6 9 8 3 7 5 5 6 8 3 9 1 4 0 2 7 7 8 1 9 4 2 3 5 6 0 6 0 9 8 7 5 2 4 1 3 9 7 0 5 1 8 6 2 3 4 4 3 6 1 8 0 9 7 5 2 3 9 5 7 2 4 0 1 8 6 8 5 7 2 0 3 1 6 4 9 #3 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 7 0 9 8 3 6 5 9 8 1 3 6 0 4 2 5 7 3 6 8 9 4 2 1 5 7 0 6 3 0 8 7 5 9 1 2 4 7 0 9 5 8 1 6 4 3 2 4 5 6 0 9 8 2 7 1 3 5 9 7 1 2 4 3 0 8 6 8 7 5 2 1 3 0 6 4 9 #4 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 7 8 0 9 3 5 6 9 7 0 3 1 8 4 2 6 5 6 8 1 9 4 2 0 5 7 3 3 6 9 1 7 5 8 4 2 0 7 3 8 5 0 9 6 1 4 2 5 0 6 8 9 1 2 7 3 4 4 9 5 2 6 3 1 0 8 7 8 5 7 0 2 4 3 6 1 9 #5 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 7 8 9 0 3 6 5 7 5 9 3 0 8 4 1 2 6 3 6 1 8 4 2 9 5 7 0 4 8 0 9 7 5 1 6 3 2 9 7 8 5 1 0 6 2 4 3 5 0 6 2 9 3 8 7 1 4 6 9 5 1 2 4 3 0 8 7 8 3 7 0 6 1 2 4 5 9 #6 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 8 6 0 9 3 5 7 6 5 8 3 9 1 4 2 7 0 3 8 9 7 4 2 0 1 6 5 4 3 1 9 7 5 8 0 2 6 9 7 0 5 1 8 6 4 3 2 5 0 6 2 8 9 3 7 1 4 7 9 5 1 0 4 2 6 8 3 8 6 7 0 2 3 1 5 4 9 #7 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 9 6 8 0 3 5 7 9 5 8 3 1 0 4 6 7 2 6 0 7 8 4 2 9 1 3 5 4 6 9 1 7 5 8 0 2 3 7 3 0 5 8 9 6 2 1 4 5 8 6 2 9 1 3 7 4 0 3 9 1 7 0 4 2 5 8 6 8 7 5 0 2 3 1 4 6 9 . . . . . #55443 0 2 8 9 5 7 3 4 6 1 3 1 9 8 2 4 7 6 0 5 7 6 2 4 1 8 5 3 9 0 6 8 5 3 9 0 4 1 2 7 1 7 3 0 4 2 8 9 5 6 2 3 0 6 7 5 9 8 1 4 9 0 7 5 8 1 6 2 4 3 5 4 6 2 0 9 1 7 3 8 4 9 1 7 6 3 0 5 8 2 8 5 4 1 3 6 2 0 7 9 #55444 0 2 9 4 6 7 5 8 3 1 3 1 7 8 5 6 9 2 0 4 4 5 2 6 0 9 7 3 1 8 1 8 5 3 9 0 4 6 2 7 7 3 8 0 4 2 1 9 5 6 2 6 1 9 7 5 8 0 4 3 9 0 4 5 3 8 6 1 7 2 5 4 6 1 8 3 2 7 9 0 6 9 0 7 2 1 3 4 8 5 8 7 3 2 1 4 0 5 6 9 #55445 0 2 9 7 3 6 8 5 4 1 3 1 5 8 6 9 7 4 0 2 4 7 2 0 1 8 9 3 6 5 2 5 0 3 8 1 4 9 7 6 5 6 8 9 4 2 0 1 3 7 6 8 3 1 7 5 2 0 9 4 7 4 1 5 9 0 6 8 2 3 9 3 6 2 0 4 1 7 5 8 1 9 7 4 2 3 5 6 8 0 8 0 4 6 5 7 3 2 1 9 #55446 0 2 9 8 3 4 7 6 5 1 9 1 7 4 2 6 3 5 0 8 6 5 2 0 1 8 9 3 7 4 7 8 5 3 6 0 4 1 9 2 5 7 8 9 4 2 1 0 6 3 3 0 4 2 7 5 8 9 1 6 4 3 0 5 9 1 6 8 2 7 2 4 6 1 8 9 0 7 3 5 1 9 3 6 5 7 2 4 8 0 8 6 1 7 0 3 5 2 4 9 Из этого массива каждый участник эксперимента будет брать интервалы для поиска. Интервал №1 - это все КФ СН ДЛК, заключённые между следующими КФ ОДЛК #1 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 0 6 8 9 3 7 5 6 5 8 3 9 1 4 0 2 7 5 0 7 9 4 2 8 1 6 3 3 6 9 8 7 5 0 4 1 2 7 8 0 5 1 9 6 2 3 4 9 3 6 2 8 4 1 7 5 0 4 9 1 7 2 0 3 5 8 6 8 7 5 1 0 3 2 6 4 9 #2 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 0 6 9 8 3 7 5 5 6 8 3 9 1 4 0 2 7 7 8 1 9 4 2 3 5 6 0 6 0 9 8 7 5 2 4 1 3 9 7 0 5 1 8 6 2 3 4 4 3 6 1 8 0 9 7 5 2 3 9 5 7 2 4 0 1 8 6 8 5 7 2 0 3 1 6 4 9 Интервал №2 - это это все КФ СН ДЛК, заключённые между следующими КФ ОДЛК #2 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 0 6 9 8 3 7 5 5 6 8 3 9 1 4 0 2 7 7 8 1 9 4 2 3 5 6 0 6 0 9 8 7 5 2 4 1 3 9 7 0 5 1 8 6 2 3 4 4 3 6 1 8 0 9 7 5 2 3 9 5 7 2 4 0 1 8 6 8 5 7 2 0 3 1 6 4 9 #3 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 7 0 9 8 3 6 5 9 8 1 3 6 0 4 2 5 7 3 6 8 9 4 2 1 5 7 0 6 3 0 8 7 5 9 1 2 4 7 0 9 5 8 1 6 4 3 2 4 5 6 0 9 8 2 7 1 3 5 9 7 1 2 4 3 0 8 6 8 7 5 2 1 3 0 6 4 9 И так далее. Таким образом, мы имеем 55445 интервалов. Мы с Demis тестировали несколько интервалов. Время обработки интервала зависит от 1. длины интервала; 2. производительности компьютера. Например, интервал №1 я обрабатывала несколько дней, а Demis обработал в течение суток. Demis обработал ещё и нулевой интервал, это все КФ СН ДЛК с начала линейки до первой КФ ОДЛК. Массив квадратов будет включён в архив. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Итак, вы выбрали некоторый интервал для обработки, например, интервал №5 #5 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 7 8 9 0 3 6 5 7 5 9 3 0 8 4 1 2 6 3 6 1 8 4 2 9 5 7 0 4 8 0 9 7 5 1 6 3 2 9 7 8 5 1 0 6 2 4 3 5 0 6 2 9 3 8 7 1 4 6 9 5 1 2 4 3 0 8 7 8 3 7 0 6 1 2 4 5 9 #6 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 8 6 0 9 3 5 7 6 5 8 3 9 1 4 2 7 0 3 8 9 7 4 2 0 1 6 5 4 3 1 9 7 5 8 0 2 6 9 7 0 5 1 8 6 4 3 2 5 0 6 2 8 9 3 7 1 4 7 9 5 1 0 4 2 6 8 3 8 6 7 0 2 3 1 5 4 9 В файл start.txt запишите начальный квадрат интервала (#5), а в файл what.txt запишите конечный квадрат интервала (#6). Программа будет генерировать КФ СН ДЛК и проверять их пока не будет достигнут конец интервала. По достижении конца интервала скрипт остановится, будет выдано сообщение Found compared LS from what.txt. Exit to end script. Обработка интервала завершена. Важно не пропустить это сообщение. После завершения обработки интервала необходимо взять результаты из файла result.txt и сохранить их в другой файл, например, в файл result5.txt - в соответствии с номером обработанного интервала. Эти результаты вы пришлёте мне. После сохранения результатов в новый файл необходимо очистить файл result.txt перед обработкой нового интервала. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Файл конфигурации для генерации КФ СН ДЛК Как написано в описании процесса поиска, первый этап - это генерация КФ СН ДЛК. Для программы генерации необходим файл config.txt, в который записывается номер линейки и количество генерируемых КФ СН ДЛК, так 15 100000 Здесь записан номер линейки 15, количество генерируемых КФ СН ДЛК 100000. Таким образом, за один цикл скрипта будет генерироваться 100000 КФ СН ДЛК. Вы можете увеличить или уменьшить это количество, записав другое количество в файл config.txt. Например, я работаю с 30000 КФ СН ДЛК, а Demis работает с 200000 КФ СН ДЛК за один цикл. Количество циклов скрипта Для одного выполнения скрипта задаётся количество циклов. Сейчас в скрипте записано количество циклов равное 10. Вы можете увеличить количество циклов. Например, Demis работает со 100 циклами. Количество циклов записывается в следующей строке скрипта FOR /L %%i IN (1,1,10) DO ( Если вы хотите изменить, например, на 50 циклов, измените эту строку на такую FOR /L %%i IN (1,1,50) DO ( Многопоточность программы family_mar Сейчас в скрипте задано 4 потока. Это значит, что ваш компьютер должен иметь не менее 4-х ядер и при этом не выполнять никаких других приложений, потому что программа family_mar загружает 4 ядра полностью. Количество потоков можно увеличить, но как это сделать, может показать и рассказать Demis, я не вникала в процесс изменения количества потоков. Скрипт выполняется в ОС Windows. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Точка возврата в аварийной ситуации Новый стартовый квадрат, который записывается в файл start.txt, автоматически изменяется и записывается в этот файл программой. Если во время работы скрипта возникла аварийная ситуация и скрипт не завершил работу, надо воспользоваться точкой возврата. Точка возврата - это последний квадрат в выполняющемся цикле скрипта (на момент аварии); этот квадрат записывается программой в файл start_copy.txt. Если случилась авария и скрипт не завершил работу, возьмите квадрат из файла start_copy.txt, запишите его в файл start.txt и снова запустите скрипт. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Вроде я всё рассказала. Пожалуйста, задайте ваши вопросы, если что-то непонятно. Потом я выложу архив с массивом квадратов и ПО. PS. Вы можете писать по-русски и по-английски. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Покажу окно программы в момент завершения скрипта по достижении конца интервала ![]() Выполнялось тестирование интервала №1. Здесь я генерировала по 20000 КФ СН ДЛК, так как конец интервала был уже близко. Для выхода из программы нажмите любую клавишу. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Выложила архив на Яндекс.Диск https://disk.yandex.ru/d/U7FyxeNWPjgD_w 5,7 МБ Файл с данными имеет имя CFODLS_from_rule15.txt. Пакетный файл (скрипт) имеет имя PADLS_rule15.bat. Если вы не хотите изменять файл config.txt и количество циклов в скрипте, то вам осталось только: 1) записать в файл start.txt начальный квадрат выбранного интервала; 2) записать в файл what.txt конечный квадрат выбранного интервала. Сейчас в этих файлах ничего не записано. После этого запускаете скрипт PADLS_rule15.bat обычным способом (двойной щелчок левой кнопки мыши). В файле config.txt сейчас записано 100000 - количество генерируемых КФ СН ДЛК за один цикл скрипта. Количество циклов в скрипте сейчас записано 10. Таким образом, за одно выполнение скрипта вы обработаете 1000000 КФ СН ДЛК. Мне осталось сказать, что: интервал №1 был протестирован мной и Demis; интервалы №2 - №10 находятся в обработке у Demis; я протестировала также интервал №31. Таким образом, вы выбираете интервалы, начиная с интервала №11 #11 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 5 2 9 6 0 8 3 7 4 6 0 9 3 2 8 4 5 1 7 5 7 1 8 4 2 9 0 3 6 9 3 8 2 7 5 1 4 6 0 7 4 0 5 8 9 6 1 2 3 4 8 6 1 9 3 0 7 5 2 3 9 7 0 1 4 2 6 8 5 8 6 5 7 0 1 3 2 4 9 #12 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 6 2 7 0 9 8 3 5 4 9 7 0 3 2 8 4 5 1 6 5 0 8 1 4 2 9 6 7 3 6 8 1 9 7 5 2 4 3 0 7 3 9 5 8 0 6 1 4 2 3 4 6 8 9 1 0 7 2 5 4 9 5 0 6 3 1 2 8 7 8 5 7 2 1 4 3 0 6 9 и далее, пропуская интервал №31. Если возникнут вопросы, пожалуйста, не стесняйтесь спрашивать. Лучше сразу всё выяснить. Процесс обработки довольно сложный. ПО и скрипт создавались не одним человеком. Что-то могло быть упущено из виду. Важно! Сообщайте о выбранных вами интервалах здесь или мне в ЛС. ПРОШУ НАЧИНАТЬ! |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Один из потенциальных участников эксперимента попытался разобраться в инструкциях процесса. Оказалось, что нигде явно не написано, что скрипт придётся запускать несколько раз, если за одно выполнение скрипта конец интервала не будет достигнут. Ну, наверное я не написала это как совершенно очевидное. Далее, он не понял, что новый стартовый квадрат для генерации КФ СН ДЛК в файле start.txt записывается программой автоматически. Это написано. Цитирую Новый стартовый квадрат, который записывается в файл start.txt, автоматически изменяется и записывается в этот файл программой. Я уже отметила выше, что процесс довольно сложный. И если вы не всё сразу поняли, это вполне естественно. Для чего я и предложила задать вопросы в теме. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Зачем надо варьировать количество циклов в скрипте и количество генерируемых КФ СН ДЛК в одном цикле? Это надо для того, чтобы часто не перезапускать скрипт. Как уже написано выше, Demis работает со 100 циклами и генерирует в одном цикле 200000 КФ СН ДЛК. Например, интервал №1 у него завершился на 57-м цикле. И не пришлось ни разу перезапускать скрипт. Я обрабатывала этот же интервал №1, работая с 10 циклами и генерируя 30000 КФ СН ДЛК в одном цикле. Вы легко можете посчитать, сколько раз мне пришлось перезапустить скрипт. Но мне такая "дискретность" необходима. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Кто-то, наверное, захочет иметь программу для Linux. Напомню: эксперимент работал в BOINC-проекте TBEG, только с другой линейкой. А Tomas Brada выкладывал все программы на гитхабе. К тому же, он и сам работал в Linux. Так что, опытные программисты могут извлечь с гитхаба источники. |
Send message Joined: 24 Dec 21 Posts: 59 Credit: 0 RAC: 0 |
Hi Natalia, could you please send me your result files for #1 and #31 for reference (or put them on Yandex) so I can compare them to my results? Just to see if I (hopefully don't) screw it up. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Hello walli! Да, конечно, я могу показать мои результаты из интервалов №1 и №31. Но я объединила все свои результаты в один файл. В этом файле результаты из интервалов №1 и №31 и ещё один или несколько результатов из других интервалов, сейчас не помню точно. Я пыталась тестировать некоторые другие интервалы (частично) и нашла какие-то результаты. Поэтому я включила в архив также результаты Demis из интервала №1. Скачать по ссылке https://disk.yandex.ru/d/1xcuT-DaW3qjhA Файл result1_Demis.txt - результаты Demis из интервала №1. Файл results_my.txt - мои результаты из интервалов №1 и №31, плюс. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Вот например, я проверяла частично интервал №55444, это было ещё до написания скрипта (запись в моём рабочем файле) #55444 0 2 9 4 6 7 5 8 3 1 3 1 7 8 5 6 9 2 0 4 4 5 2 6 0 9 7 3 1 8 1 8 5 3 9 0 4 6 2 7 7 3 8 0 4 2 1 9 5 6 2 6 1 9 7 5 8 0 4 3 9 0 4 5 3 8 6 1 7 2 5 4 6 1 8 3 2 7 9 0 6 9 0 7 2 1 3 4 8 5 8 7 3 2 1 4 0 5 6 9 нашла 100000 КФ (первая порция) найден ОДЛК 0 6 8 5 3 4 7 2 9 1 5 1 6 7 9 2 8 4 0 3 6 7 2 9 8 1 0 3 4 5 1 2 5 3 0 8 4 9 6 7 3 9 1 2 4 6 5 8 7 0 9 0 3 4 7 5 2 6 1 8 4 3 7 8 1 9 6 0 5 2 8 4 9 1 5 0 3 7 2 6 7 5 0 6 2 3 9 1 8 4 2 8 4 0 6 7 1 5 3 9 последняя КФ в этой порции 0 2 9 4 6 7 5 8 3 1 3 1 7 8 5 6 9 2 0 4 4 5 2 6 8 1 0 3 9 7 5 7 8 3 2 9 4 1 6 0 9 3 0 7 4 2 8 5 1 6 6 8 3 9 7 5 1 0 4 2 2 0 4 5 1 3 6 9 7 8 1 4 6 0 9 8 3 7 2 5 7 9 5 1 0 4 2 6 8 3 8 6 1 2 3 0 7 4 5 9 дальше нашла ещё 50000 КФ последняя КФ в этой порции 0 2 9 4 6 7 5 8 3 1 3 1 7 8 5 6 9 2 0 4 4 5 2 6 8 9 1 3 7 0 9 7 8 3 1 0 4 6 5 2 7 8 5 0 4 2 3 1 9 6 2 0 4 1 7 5 8 9 6 3 1 4 3 5 9 8 6 0 2 7 5 3 6 9 2 4 0 7 1 8 6 9 0 2 3 1 7 4 8 5 8 6 1 7 0 3 2 5 4 9 ОДЛК не найдены дальше нашла ещё 50000 КФ последняя КФ в этой порции 0 2 9 4 6 7 5 8 3 1 3 1 7 8 5 6 9 2 0 4 4 5 2 6 9 1 0 3 7 8 2 7 5 3 1 8 4 6 9 0 9 3 8 0 4 2 7 1 6 5 6 8 0 1 7 5 2 9 4 3 1 4 3 5 8 9 6 0 2 7 5 0 6 9 3 4 8 7 1 2 7 9 4 2 0 3 1 5 8 6 8 6 1 7 2 0 3 4 5 9 ОДЛК не найдены дальше нашла ещё 50000 КФ последняя КФ в этой порции 0 2 9 4 6 7 5 8 3 1 3 1 7 8 5 6 9 2 0 4 4 5 2 6 9 8 7 3 1 0 2 0 5 3 8 1 4 9 6 7 6 8 0 9 4 2 3 1 7 5 9 4 8 1 7 5 0 6 2 3 1 7 3 5 2 9 6 0 4 8 5 3 6 0 1 4 8 7 9 2 7 9 4 2 0 3 1 5 8 6 8 6 1 7 3 0 2 4 5 9 ОДЛК не найдены дальше нашла ещё 50000 КФ последняя КФ в этой порции 0 2 9 4 6 7 5 8 3 1 3 1 7 8 5 6 9 2 0 4 4 5 2 7 8 0 1 3 9 6 5 0 1 3 9 8 4 6 7 2 7 6 8 9 4 2 3 1 5 0 9 3 4 6 7 5 2 0 1 8 2 8 3 5 0 1 6 9 4 7 1 4 6 0 3 9 8 7 2 5 6 9 0 1 2 4 7 5 8 3 8 7 5 2 1 3 0 4 6 9 ОДЛК не найдены Дальше проверка остановлена. Таким образом, здесь найдено одно решение 0 6 8 5 3 4 7 2 9 1 5 1 6 7 9 2 8 4 0 3 6 7 2 9 8 1 0 3 4 5 1 2 5 3 0 8 4 9 6 7 3 9 1 2 4 6 5 8 7 0 9 0 3 4 7 5 2 6 1 8 4 3 7 8 1 9 6 0 5 2 8 4 9 1 5 0 3 7 2 6 7 5 0 6 2 3 9 1 8 4 2 8 4 0 6 7 1 5 3 9 Не помню, были ли найдены ещё решения при частичной проверке других интервалов. Скорее всего, нет. В рабочем файле нет записей о других найденных решениях в тестируемых интервалах. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Отмечу один нюанс: в файле с моими результатами нет решений, которые являются концом интервала №1 и концом интервала №31, вот этих #2 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 0 6 9 8 3 7 5 5 6 8 3 9 1 4 0 2 7 7 8 1 9 4 2 3 5 6 0 6 0 9 8 7 5 2 4 1 3 9 7 0 5 1 8 6 2 3 4 4 3 6 1 8 0 9 7 5 2 3 9 5 7 2 4 0 1 8 6 8 5 7 2 0 3 1 6 4 9 #32 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 4 0 2 7 8 1 9 3 5 6 9 7 8 3 2 0 4 1 6 5 3 6 9 8 4 2 0 5 1 7 6 8 1 9 7 5 3 0 4 2 1 4 0 5 9 8 6 2 7 3 5 3 6 0 1 9 8 7 2 4 7 9 5 1 6 3 2 4 8 0 8 5 7 2 0 4 1 6 3 9 Эти решения были найдены при обработке интервалов №1 и №31, но я их удалила из файла результатов, потому что эти решения не пойдут в БД - они повторены. Ведь массив исходных квадратов - это КФ ОДЛК. А в файле результатов из интервала №1 от Demis квадрат #2 присутствует, я его не удалила. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Есть и ещё один интересный нюанс. В файле результатов из интервала №1 от Demis после конечного квадрата интервала #2 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 4 2 0 6 9 8 3 7 5 5 6 8 3 9 1 4 0 2 7 7 8 1 9 4 2 3 5 6 0 6 0 9 8 7 5 2 4 1 3 9 7 0 5 1 8 6 2 3 4 4 3 6 1 8 0 9 7 5 2 3 9 5 7 2 4 0 1 8 6 8 5 7 2 0 3 1 6 4 9 следует ещё одно решение 0 3 5 4 8 9 2 6 7 1 4 1 3 6 0 8 5 9 2 7 5 8 2 9 7 1 0 3 6 4 1 2 0 3 6 4 7 8 9 5 7 5 1 8 4 6 9 2 0 3 2 7 6 0 9 5 3 1 4 8 9 4 8 5 3 7 6 0 1 2 6 9 4 1 2 3 8 7 5 0 3 0 9 7 5 2 1 4 8 6 8 6 7 2 1 0 4 5 3 9 Я удалила это решение из файла, который выложила. Что это за решение? Почему оно появилось за конечным квадратов интервала? Это решение уже из интервала №2. Такая особенность работы программы. Данное решение каким-то образом появилось раньше, чем была выполнена проверка результатов на конец интервала. Если вы будете обрабатывать интервал №1 точно с такими же параметрами, как у Demis (100 циклов и 200000 КФ СН ДЛК за один цикл), вы тоже, наверное, получите это решение, следующее за конечным квадратом интервала. Думаю, что это зависит не только от двух указанных параметров, но ещё и от количества потоков. Demis работает не в 4 потока, а больше. Кстати, у меня это решение, следующее за концом интервала, не появилось. У меня параметры другие и потоков 4. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
По поводу одного заданного в письме вопроса. В сообщении https://boinc.progger.info/odlk/forum_thread.php?id=221&postid=7923 написано, как выбрать интервал и записать начальный и конечный квадраты интервала в файлы start.txt и what.txt соответственно. Разумеется, вы можете объединить два или более интервалов в один интервал и обрабатывать сразу объединённый интервал. Например, можно взять такой объединённый интервал (#11,#12,#13). Здесь объединены два интервала №11: (#11,#12) и №12: (#12,#13). Тогда в файл start.txt надо записать квадрат #11, а в файл what.txt записать квадрат #13. Однако я не рекомендую это делать. Интервалы попадаются очень большие. Поэтому обрабатывать по одному интервалу удобнее. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Как уже сказано, сейчас в скрипте задано 4 потока. Выше было отмечено, что количество потоков можно изменить. Как это сделать, может рассказать Demis. Но есть и другой путь. Если ваш процессор имеет 8 или более ядер, вы можете запустить одновременно два скрипта в разных папках. Каждому скрипту задайте для обработки свой интервал. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Интервал №55444, который я немного тестировала (показано выше) огромный!! #55444 0 2 9 4 6 7 5 8 3 1 3 1 7 8 5 6 9 2 0 4 4 5 2 6 0 9 7 3 1 8 1 8 5 3 9 0 4 6 2 7 7 3 8 0 4 2 1 9 5 6 2 6 1 9 7 5 8 0 4 3 9 0 4 5 3 8 6 1 7 2 5 4 6 1 8 3 2 7 9 0 6 9 0 7 2 1 3 4 8 5 8 7 3 2 1 4 0 5 6 9 #55445 0 2 9 7 3 6 8 5 4 1 3 1 5 8 6 9 7 4 0 2 4 7 2 0 1 8 9 3 6 5 2 5 0 3 8 1 4 9 7 6 5 6 8 9 4 2 0 1 3 7 6 8 3 1 7 5 2 0 9 4 7 4 1 5 9 0 6 8 2 3 9 3 6 2 0 4 1 7 5 8 1 9 7 4 2 3 5 6 8 0 8 0 4 6 5 7 3 2 1 9 Когда я работала с методом интервалов, сделала классификацию уровней сложности интервалов по начальному и конечному квадратам. Так вот, показанный интервал самого высокого уровня сложности, то есть о-ч-е-н-ь длинный. Видимо, тут такая закономерность: чем больше номер интервала, тем он длиннее. В самом начала массива квадратов интервалы довольно короткие. Я тестировала интервал №31, он короткий. Demis уже обработал интервалы №1 - №4, все они короткие. Но даже и в начале массива попадаются длинные интервалы. Например, интервал №11 длинный; я посмотрела на этот интервал внимательно, когда Mynx начал его тестировать. Кстати, пока никто не сообщил о выбранных интервалах. Я попросила Mynx протестировать интервал №11, он начал вчера. Пока сообщений от него нет. Повторю: если вы решили принять участие в эксперименте, обязательно сообщите о выбранных вами интервалах, даже если вы хотите пока попробовать обработать один интервал. Это важно для того, чтобы не обрабатывались одни и те же интервалы. |
![]() ![]() Send message Joined: 6 Apr 17 Posts: 13752 Credit: 0 RAC: 0 |
Получила сообщение от Mynx. У него сейчас идёт 97-й цикл. Параметры заданы такие: 250 циклов, 200000 КФ СН ДЛК за один цикл. Думаю, что за 250 циклов этот интервал не обработается. Придётся перезапускать скрипт, ещё на 250 циклов. Тогда, может быть, обработается. Речь идёт об интервале №11 #11 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 5 2 9 6 0 8 3 7 4 6 0 9 3 2 8 4 5 1 7 5 7 1 8 4 2 9 0 3 6 9 3 8 2 7 5 1 4 6 0 7 4 0 5 8 9 6 1 2 3 4 8 6 1 9 3 0 7 5 2 3 9 7 0 1 4 2 6 8 5 8 6 5 7 0 1 3 2 4 9 #12 0 2 3 4 5 6 7 8 9 1 2 1 4 6 3 7 5 9 0 8 1 6 2 7 0 9 8 3 5 4 9 7 0 3 2 8 4 5 1 6 5 0 8 1 4 2 9 6 7 3 6 8 1 9 7 5 2 4 3 0 7 3 9 5 8 0 6 1 4 2 3 4 6 8 9 1 0 7 2 5 4 9 5 0 6 3 1 2 8 7 8 5 7 2 1 4 3 0 6 9 PS. Номера циклов выводятся программой, вы можете их увидеть в окне программы. |
©2024 (C) Progger