Message boards :
Cafe :
Готовимся к запуску нового BOINC-проекта
Message board moderation
Author | Message |
---|---|
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Репост Открыла тему на форуме boinc.ru. _____________________ конец репоста Господа! Читаем все, готовимся все! Новому BOINC-проекту быть! Я сделал несколько сообщений по данному вопросу в теме "Поиск КПППЧ в нулевом периоде". Загляните в эту тему, не буду все сообщения сюда переносить. Ещё, пожалуйста, посмотрите тему https://boinc.termit.me/adsl/forum_thread.php?id=74 В этой теме обсуждалась возможность запуска второго Приложения в работающем BOINC-проекте SPT. Demis вынес вердикт: код, созданный SerVal, опасен для кранчеров. Я не поняла. чем конкретно он опасен. В Герасиме этот код прекрасно работал, и не было ни одной жалобы от кранчеров. Хорошо, не будем запускать второе Приложение в BOINC-проекте SPT. Будем запускать новый BOINC-проект. Без него мы, скорее всего, не найдём 19-ку с минимальным диаметром. А это всё-таки суперзадача, которая решается десятый год! Кортеж безусловно существует, надо его найти. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Ну вот, на форуме boinc.ru мило побеседовали с Виталием Кочурой (крупный спец, работает в команде разработчиков BOINC). Я предложила ему: а) попробовать запустить второе Приложение в работающем BOINC-проекте SPT; б) попробовать запустить новый BOINC-проект на другом сервере. Он не согласился ни на одно предложение. Беседа закончилась тем, что Виталий присвоил мне статус рекордсмена по количеству запущенных и заброшенных BOINC-проектов. Очень смешно! Не правда ли? Я посетила ресурс по ссылке, данной Виталием. Там есть видео, оно прекрасно переводится на русский язык. В самом начале сказано, что будем устанавливать BOINC под Linux. Но мне не надо под Linux, я работаю в Windows. К тому же, моя рабочая программа, написанная на PARI/GP, тоже работает в Windows. В PARI/GP можно и в Linux работать, но нужна предварительная компиляция. И ещё: мой аналогичный алгоритм работал в Герасиме тоже в Windows. Поэтому установка BOINC под Linux нам не подходит. Нам надо устанавливать BOINC под Windows. В чём будет разница, я без понятия. Ну, в видео ещё услышала информацию: для установки BOINC потребуется сервер с ОЗУ 4 ГБ и с диском 25 ГБ. Дальше не стала смотреть видео, так как всё равно ничего не понимаю, что там рассказывается. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Господа! У меня большая просьба ко всем, кто с форума dxdy.ru. Там есть один форумчанин, кажется, в его нике содержится слово Андрей (по-английски). На аватарке у него кто-то прыгает, Винни-Пух, кажется. Этот товарищ разбирается в BOINC. Пожалуйста, напишите ему ЛС и дайте ссылку на эту тему. Я ищу везде, где только можно. Ищу уже много месяцев. Очень трудно найти того, кто может запустить BOINC-проект и согласится это сделать на голом энтузиазме. Progger давно (почти сразу же после запуска BOINC-проектов ОДЛК и ODLK1) категорически отказался запускать мои новые алгоритмы. Это было очень печально, но что же я могла поделать? Он даже перестал отвечать на мои письма и на сообщения на форуме. Впрочем, не только на мои сообщения перестал отвечать, но и на сообщения кранчеров. Потом я долго искала, где мне запустить новый алгоритм по ОДЛК, проект ведь должен развиваться. Нашла Tomas Brada; он заинтересовался обоими проектами - и по ОДЛК, и по кортежам. И запустил два подпроекта. К сожалению, он быстро устал, проекты-то бесконечные! Кстати, это к тому, что я, якобы, много BOINC-проектов забросила. Я ни одного проекта не забросила! Их забросили администраторы. К остановке BOINC-проекта SPT призывала, да, но для этого было несколько причин. Несмотря на мой призыв, проект продолжает работать. Не знаю, разобрался ли Demis со всеми ошибками в результатах. Или БД результатов по-прежнему недостоверна (?) |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Итак, напоминаю, что мой новый подпроект совершенно аналогичен тому подпроекту, который работал в BOINC-проекте Gerasim@Home. Только рабочая программа другая. Рабочая программа опубликована в сообщении https://boinc.termit.me/adsl/forum_thread.php?id=74&postid=828 Продублирую {pt=[0, 6, 24, 36, 66, 84, 90, 114, 120, 126, 150, 156, 174, 204, 216, 234, 240]; w=37; tin = fileopen("in"); np1=eval(filereadstr(tin)); np2=eval(filereadstr(tin)); fileclose(tin); pl=#pt; nw=primepi(w); prs=primes(nw); period=vecprod(prs); vp=vector(np2-np1+1, i, period*(np1-1+i)); lvp=#vp; vmy=vector(40); pat1=vector(17); pat2=vector(17); lpr=1; wd=vector(nw); for( ip=1,nw, rip=[]; for( r=1,prs[ip]-1, for( i=1,pl, if( (r+pt[i])%prs[ip]==0, next(2))); rip =concat(rip,r) ); lpr=lpr*#rip; wd[ip]=rip; ); \\for ip fout = fileopen("out","w"); k=0; forvec(v=vector(#wd,i,[1,#wd[i]]), k++; form=lift(chinese( vector( #wd,j,Mod( wd[j][v[j]], prs[j]) ) )); \\ начало проверки кортежа foreach(vp,bpp, bpt=form+bpp; if(ispseudoprime(bpt) && ispseudoprime(bpt+240), l=0; forprime(p=bpt,bpt+240, l++; vmy[l]=p; ); if(l==17, for(m=2,17, pat1[m]=vmy[m]-vmy[1]; ); pat2=vector(17,i,(pat1[i]==pt[i])); vlds=vecsum(pat2); if(vlds>9, w=strprintf( "%d: %d\nvalids=%d\n",vmy[1],pat1,vlds ); print(w); filewrite(fout,w); );\\if vlds>9 ); \\ if l==17 );\\ if ispseudoprime );\\ foreach \\ конец проверки кортежа );\\ forvec w=strprintf("end "); print(w); filewrite(fout,w); fileclose(fout) } quit Напомню: программа написана в соавторстве с gris. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Комментарии к программе В программе ищется ключевая 17-ка (и приближения к ней) по паттерну на периоде 37#, в заданном диапазоне (7858321551080267055879090, 557940830126698960967415390). Для поиска в заданном диапазоне необходимо проверить следующие периоды nps=1058967640189 (номер начального периода) npf=75186702453419 (номер конечного периода) Паттерн ключевой 17-ки 0, 6, 24, 36, 66, 84, 90, 114, 120, 126, 150, 156, 174, 204, 216, 234, 240 |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Вушки представляют собой текстовые файлы из двух строк: номер начального периода - номер конечного периода. Я сделала лёгкие вушки, проверяется всего 10 периодов. gris написал по моей просьбе программу генерации вушек. Примеры вушек wu_101_get_sym_tuples.txt 1058967641000 1058967641009 wu_102_get_sym_tuples.txt 1058967641010 1058967641019 wu_103_get_sym_tuples.txt 1058967641020 1058967641029 wu_104_get_sym_tuples.txt 1058967641030 1058967641039 wu_105_get_sym_tuples.txt 1058967641040 1058967641049 wu_106_get_sym_tuples.txt 1058967641050 1058967641059 wu_107_get_sym_tuples.txt 1058967641060 1058967641069 wu_108_get_sym_tuples.txt 1058967641070 1058967641079 wu_109_get_sym_tuples.txt 1058967641080 1058967641089 wu_110_get_sym_tuples.txt 1058967641090 1058967641099 Смотрите https://boinc.termit.me/adsl/forum_thread.php?id=74&postid=828 Я сохранила даже имена файлов вушек, какими они были в Герасиме. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Программа генерации вушек (автор gris) {\\ 27.06.2024 i1=1058967641000; ln=10; nwu=101; kwu=100; pth="WUnew/"; \\*************** for( i=0,kwu-1, namewu=strprintf("%swu_%d%s ",pth,nwu+i,"_get_sym_tuples.txt"); i1wu=i1+i*ln; i2wu=i1wu+ln-1; fout = fileopen(namewu,"w"); filewrite(fout,i1wu); filewrite(fout,i2wu); fileclose(fout) ); } Здесь генерируется 100 вушек по 10 периодов. Понятно, что можно генерировать хоть миллион вушек, параметр kwu в программе. Понятно и то, что в заданном диапазоне количество вушек вполне конечно (хотя и огромное). Неизвестно, существует ли в заданном диапазоне ключевая 17-ка. Если не существует, то результатом работы программы будут только приближения к ключевой 17-ке, которые пополнят спектр приближений, если будут с уникальными кодами. Если ключевая 17-ка (17-ки) найдётся (найдутся), проверим её (их) на продолжение до 19-ки с минимальным диаметром. 19-ка с минимальным диаметром невозможна без наличия ключевой 17-ки. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Теперь о программе клиент Код этой программы написал SerVal. Код был выложен на форуме boinc.ru в открытом доступе. Опубликован в сообщении https://boinc.termit.me/adsl/forum_thread.php?id=74&postid=824 Продублирую #pragma warning(disable : 4996) #include <iostream> #include <assert.h> #include <ctime> #include "boinc_win.h" #include "boinc_api.h" #include "win_util.h" #include "filesys.h" #include <windows.h> using namespace std; #define CHECKPOINT_FILENAME "checkpoint.txt" #define POLL_PERIOD 1.0 #define INPUT_FILENAME "in" #define OUTPUT_FILENAME "out" int read_checkpoint(int& percent_completed, double& cpu_time) { int nt; double c; percent_completed = 0; cpu_time = 0; FILE* f = fopen(CHECKPOINT_FILENAME, "r"); if (!f) return ERR_FOPEN; int n = fscanf(f, "%d %lf", &nt, &c); fclose(f); if (n != 2) return 0; percent_completed = nt; cpu_time = c; return 0; } void write_checkpoint(int percent_completed, double cpu_time) { boinc_begin_critical_section(); FILE* f = fopen(CHECKPOINT_FILENAME, "w"); if (!f) return; fprintf(f, "%d %f\n", percent_completed, cpu_time); fclose(f); boinc_checkpoint_completed(); } int start_process_gp() { fprintf(stderr, "\nStarting child process \'gp\' and waiting until process exits.\n"); fprintf(stderr, "Command line : %s\n", "gp.exe spt.txt"); char* cmdArgs = (char*)"gp.exe spt.txt"; PROCESS_INFORMATION pInfo; STARTUPINFO sInfo; ZeroMemory(&sInfo, sizeof(sInfo)); sInfo.cb = sizeof(sInfo); sInfo.dwFlags = STARTF_USESHOWWINDOW; sInfo.wShowWindow = SW_HIDE; // Start the child process. if (!CreateProcess(NULL, // No module name (use command line) cmdArgs, // Command line NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE CREATE_NEW_CONSOLE, // No creation flags NULL, // Use parent's environment block NULL, // Use parent's starting directory &sInfo, // Pointer to STARTUPINFO structure &pInfo) // Pointer to PROCESS_INFORMATION structure ) { fprintf(stderr, "CreateProcess failed (%d).\n", GetLastError()); return 1; } fprintf(stderr, "Process gp started.\n"); // wait until child process exits. WaitForSingleObject(pInfo.hProcess, INFINITE); fprintf(stderr, "Process gp finished.\n"); CloseHandle(pInfo.hProcess); CloseHandle(pInfo.hThread); return 0; } int main( int argc, char *argv[]) { _CrtSetDbgFlag(0); // Memory Leaks Detected BOINC_OPTIONS boinc_options; BOINC_STATUS boinc_status; char buf[256]; int retval = 0; memset(&boinc_options, 0, sizeof(boinc_options)); boinc_options.main_program = true; boinc_options.check_heartbeat = true; boinc_options.handle_process_control = true; retval = boinc_init_options(&boinc_options); if (retval) { fprintf(stderr, "boinc_init_options error. Exiting. \n"); boinc_finish(4); return 4; } retval = start_process_gp(); if (retval) { fprintf(stderr, "Error starting process gp.exe. Exiting.\n"); boinc_finish(retval); return retval; } fprintf(stderr, "Program completed.\n"); boinc_finish(0); return 0; } Насколько понимаю, код написан на языке С++. Из этого кода получается клиентская программа SymTuples.exe Программа выложена в архиве, сейчас найду ссылку. Вот (на Яшдекс.Диске) https://disk.yandex.ru/d/t7kHCpn1GbvNpg В архиве вы найдёте также рабочую программу spt.txt Эта программа должна быть заменена новой рабочей программой. Сохраним её имя. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Господа! Всё ли понятно до сих пор? Если есть вопросы, задавайте, пожалуйста. Адрес не изменился natalimak1@yandex.ru Отвечу, на что смогу. Непосредственно по запуску BOINC-проекта я ничего не знаю :( И очень надеюсь на вашу помощь! |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Господа! Если всё понятно, тогда ТЕСТИРУЕМ ! Пожалуйста, протестируйте хотя бы одну вушку и напишите мне. что у вас получилось.. Для тестирования вам нужна система Windows 64-bit. Скачайте и распакуйте архив по ссылке https://disk.yandex.ru/d/t7kHCpn1GbvNpg Выполните следующее: 1) замените рабочую программу spt.txt на новую рабочую программу, опубликованную в сообщении https://boinc.progger.info/odlk/forum_thread.php?id=290&postid=14667 Сохраните имя файла! 2) Удалите файлы in и out. 3) Создайте файл in.dat и запишите в него одну из вушек, например: 1058967641000 1058967641009 Обратите внимание на расширение файла in. Примеры вушек смотрите в сообщении https://boinc.progger.info/odlk/forum_thread.php?id=290&postid=14669 Всё готово для тестирования. Запустите программу SymTuples.exe обычным способом - двойной щелчок левой кнопки мыши. Если программа нормально отработает, появится выходной файл out.dat, в котором будут записаны результаты; а если результатов не найдётся, то будет записано одно слово end Вот и всё. Очень простой тест. И очень важный! Время выполнения программы примерно один час, зависит от производительности вашего компьютера. Я выполнила тест. У меня не возникло никаких ошибок, всё нормально отработало. Не понимаю страшилок Demis, что программа несёт какую-то опасность для кранчеров. Надо полагать, что он в этой программе разобрался. Я не разбиралась, потому что язык С++ не знаю. Но в Герасиме программа работала! Никаких жалоб от кранчеров не поступало. Результаты исправно выводились и сохранялись на сервере, откуда я их забирала. Новую рабочую программу я тестировала и на черепашке, и на Ахиллесе. На Ахиллесе она до сих пор работает. Ошибок в программе не обнаружено. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Ну допустим, что Demis увидел какие-то серьёзные ошибки в коде SerVal. Разве их нельзя исправить? Код ведь не есть что-то раз и навсегда данное. Любой код можно править. Если программист видит явную ошибку, так почему её не исправить? Что мешает? Плохому танцору ... ? Сказать, что код сырой - это ничего не сказать! Путь у нас один: запустить это Приложение на другом сервере (в новом BOINC-проекте) и посмотреть, как оно будет работать. Конечно, если за дело возьмётся опытный программист, он может и в коде заранее разобраться. Если найдёт ошибки, то и исправит их до того, как Приложение будет запущено в BOINC. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Покажу несколько первых элементов приближений к ключевой 17-ке, найденных рабочей программой 7858321551107411692988507 7858321551148066264762037 7858321551680148788639333 7858321552953437028262627 7858321552771672807975523 7858321553226935618992537 7858321553272773627624667 7858321554175075784856443 7858321554527172450557663 7858321555463062084410397 7858321555719549481597117 7858321555356359107009663 7858321555811363089152527 7858321557821273008986343 7858321557760862817408713 7858321557855138190884737 7858321557971601818906023 7858321558013419551840323 7858321558127481462080887 Здесь есть очень хорошее приближение с valids=14 и с уникальным кодом 7858321555811363089152527: [0, 6, 24, 36, 66, 84, 90, 104, 120, 144, 150, 156, 174, 182, 216, 234, 240] 7858321555811363089152527: [0, 0, 0, 0, 0, 0, 0, -10, 0, 18, 0, 0, 0, -22, 0, 0, 0] 7858321555811363089152527: [1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1] valids=14 code=32443 Обратите внимание: здесь начальные элементы приближений следуют строго в порядке возрастания, потому что сначала я проверяла периоды по порядку. Затем пришла идея проверять периоды не по порядку. Разбила все периоды на 10 частей и проверяю по 11 периодов в каждой части за один проход программы. То есть за один проход программы проверяется 110 периодов. Отлично получается: проверка идёт сразу по всему диапазону. Вот время Ахиллеса на один проход программы . . . . . . search in 502146747115215640898429970 (5.0 E26) - 502146747115297269017912880 (5 .0 E26) central 3: [114,120,126] prove by 37#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37] 2 1 [1] 3 2 [1,2] 5 2 [2,3] 7 2 [2,3] 11 2 [3,10] 13 2 [9,11] 17 4 [6,7,8,9] 19 8 [1,3,4,6,8,9,17,18] 23 8 [4,6,7,9,15,16,20,21] 29 14 [1,4,6,7,8,9,10,11,12,13,14,15,17,20] 31 14 [2,6,11,15,16,17,18,19,20,21,22,23,24,28] 37 20 [2,3,4,5,7,9,10,12,14,15,16,17,20,23,24,26,30,32,33,36] 32112640 formulae to generate time = 17h, 56min, 35,771 ms. Покажу два приближения, найденные в других частях. 278970415067676315766664423: [0, 6, 24, 36, 44, 78, 80, 114, 120, 126, 150, 156, 180, 204, 218, 230, 240] valids=11 number form=28178194 55794083020205563516332677: [0, 2, 24, 36, 66, 80, 90, 114, 126, 146, 150, 182, 192, 200, 216, 224, 240] valids=9 number form=16082736 Понятно, что этот приём можно использовать и в BOINC-проекте: генерировать вушки сразу в 10 частях и параллельно их обсчитывать. Конечно, на общее время обсчёта всех вушек это не повлияет, но можно быстрее найти первую ключевую 17-ку, если она есть в заданном диапазоне. А ключевая 17-ка может оказаться матрёшечной - именно для 19-ки с минимальным диаметром. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Покажу 10 частей, которые у меня сейчас проверяются на Ахиллесе 1-я часть np1=1058967641166; np2=1058967641176; 2-я часть np1=7518670246361; np2=7518670246371; 3-я часть np1=15037340491597; np2=15037340491607; 4-я часть np1=22556010736822; np2=22556010736832; 5-я часть np1=30074680982058; np2=30074680982068; 6 часть np1=37593351227304; np2=37593351227314; 7-я часть np1=45112021472540; np2=45112021472550; 8-я часть np1=52630691717776; np2=52630691717786; 9-я часть np1=60149361963012; np2=60149361963022; 10-я часть np1=67668032208248; np2=67668032208258; В каждой части проверяется 11 периодов, в одном проходе программы. Изменяю интервалы (номера периодов) вручную для каждого нового прохода программы. Это несложно и делается быстро. Можно, конечно, оптимизировать этот процесс, но лень. В BOINC-проекте можно прямо от этих интервалов (докуда я досчитаю) продолжить. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Итак, у меня готовность полная к запуску BOINC-проекта. Жду, когда подключится к работе Corporal. Я предложила ему для начала попробовать запуск нового BOINC-проекта на Ахиллесе-3. Это сервер, 20 ядер, диск большой. Про ОЗУ не нашла информацию, но думаю, что 4 ГБ уж точно есть. Если с Ахиллесом-3 не получится, тогда есть ещё вариант: Corporal предложил создать новый сервер. Напомню: в данный момент у меня работает рабочая программа только в один поток на Ахиллесе. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Господа! Я по-прежнему ищу человека, готового попробовать запуск нового BOINC-проекта. Пожалуйста, помогите мне в этом. Мой адрес: natalimak1@yandex.ru |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Вспомнила Томаша. Забросила сообщение на его форум https://boinc.tbrada.eu/forum_thread.php?id=3160&postid=4802 Может быть, он откликнется. У него был отличный проект по кортежам. Жалко, что он его остановил. Огромное спасибо ему за доступность БД результатов! |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Репост https://boinc.tbrada.eu/forum_thread.php?id=3160&postid=4803 In the BOINC project SPT |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
Рабочая программа у меня продолжает работать, один поток на Ахиллесе. Вот найдено новое приближение к ключевой 17-ке 446352664103648341796185817: [0, 20, 26, 50, 66, 84, 90, 114, 126, 150, 152, 156, 174, 180, 216, 234, 240] valids=10 3867 Я добавила в программу вычисление кода, чтобы сразу видеть код. В этом приближении код не уникальный. Напомню: приближения выводятся только для valids>9. |
Send message Joined: 6 Apr 17 Posts: 14123 Credit: 0 RAC: 0 |
У нас есть продвижение в подготовке к запуску нового BOINC-проекта. Corporal начал работать над созданием нового сервера для BOINC-проекта. Вот только спеца для запуска BOINC-проекта я пока не нашла. Ищу! Помогите мне, пожалуйста, господа! |
Send message Joined: 17 Oct 22 Posts: 6 Credit: 442,039 RAC: 22 |
I compiled the PARI/GP program for Linux and started running ...test_4 through ...test_11 simultaneously on one of my larger systems. the ...test_6 program ended after 7 hours. Programs 4,5,7,8,9,11 continue to run (11 hours so far). Here is the output from the results_6.txt file: [logfile is "results_6.txt"] 0 from number 0 to � number [0,6,12,30,42,72,90,96,120,126,132,156,162,180,210,222,240,246,252] patterns length 19 557940830126698960967415390 period search in 0 (0.E-19) - 557940830126698960967415390 (5.6 E26) central 3: [120,126,132] prove by 71#: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71] 3822059520 formulae to generate 201210320071817509379420161: [0, 6, 40, 42, 70, 76, 90, 96, 118, 126, 132, 162, 178, 196, 198, 210, 222, 246, 252] valids=8 number form=423734170 268710736779238753759355131: [0, 6, 12, 18, 42, 48, 72, 106, 120, 126, 130, 156, 162, 196, 198, 210, 246, 250, 252] valids=9 number form=771145973 520185588494747469608998897: [0, 6, 10, 16, 36, 42, 76, 90, 96, 126, 132, 156, 180, 184, 210, 222, 232, 246, 252] valids=9 number form=1190255518 |
©2024 (C) Progger