Форум » Команда GIMPS.Russia - место для общения участников АКТУАЛЬНО » Команда GIMPS.Russia - Помощь новичкам + ИНСТРУКЦИЯ » Ответить

Команда GIMPS.Russia - Помощь новичкам + ИНСТРУКЦИЯ

Alex_soldier: Здесь я буду публиковать некоторые секреты, позволяющие вычислять быстрее, а также - отвечать на всегда в изобилии возникающие вопросы. Итак, что мы умеем: 1) Вычислять на CPU в несколько потоков (разные типы вычислений, либо ускорение TF-задач) 2) Ускорение вычислений в рамках одного потока (особенно актуально для долгих LL и LL-D) 3) Вычисления на GPU - видеокарте (ускорение TF-задач в 20-50 раз!) 4) Выбор заданий для получения наиболее продуктивных результатов Ну а теперь начнем потихоньку... Инструкция - самое начало Перво-наперво необходимо завести аккаунт в проекте GIMPS (если еще нет). Это делается здесь: http://www.mersenne.org/update/ (Никаких уведомлений и подтверждений по e-mail не приходит, так что запишите свои данные для входа) Далее - ссылка на присоединение к нашей Команде: http://www.mersenne.org/jteam/?229=Join (Думаю, до этого места уже все добрались ) Теперь самое время скачать программу Prime95 - для выполнения расчетов на CPU: http://www.mersenne.org/download/ Кто-то со временем обязательно захочет считать быстрее на видеокарте (GPU). Программы mfaktc/mfakto для TF-расчетов доступны здесь (но о них позже): http://download.mersenne.ca Получение заданий Запустив ПО Prime95.exe первый раз, появится окошко с выбором варианта использования. Нам нужен, разумеется, "Join GIMPS!" - тем самым мы присоединяемся к Проекту. Во втором окошке необходимо ввести логин аккаунта и по желанию - имя компьютера (все на английском). Убедитесь также, что вверху стоит галочка "Use PrimeNet to get work and report results" (получать и отправлять задачи через сервер Проекта) В третьем окошке нас попросят указать некоторые параметры: Сколько часов в сутки будет работать компьютер (Это нужно для прогноза срока завершения уже выданных задач и ограничения количества новых при выдаче) Сколько Мб памяти выделять под ресурсоемкие задачи P-1 и ECM днем, и сколько ночью (Ставьте побольше - около 1024+, это влияет на скорость расчетов) Когда начинается и заканчивается дневное время (Я обычно ставлю 0:01 и 23:59 соответственно) В нижней части будут приведены технические сведения о компьютере. Запомните количество ядер (cores) в строке CPU speed - оно еще понадобится! И наконец в четвертом окне программа попросит задать настройки для расчетов: Number of worker windows to run (Сколько параллельных потоков запустить под расчеты - от 1 до cores, если забыли количество ядер, ставьте 99 - она сама уменьшит) Priority (С каким приоритетом от 1 до 10 будет работать программа) (Приоритет 1 - расчет будет вытесняться почти под ноль любым процессом, даже скринсейвером) (Приоритет 4 - если ставить выше, начнется сильное замедление загрузки страниц в браузере, вплоть до блокировки интернета) (Приоритет 8 - если ставить выше, начнется сильное торможение компьютера, невозможно больше ни с чем нормально работать) Ниже идет группа настроек для каждого параллельного потока (Worker-а): Worker number - в выпадающем списке выбираем по очереди каждый номер потока. Type of work to get - какие именно расчеты должны выдаваться текущему Worker-у: Whatever makes the most sense - на усмотрение Проекта (Крайне нежелательный вариант, т.к. все время выдаются задания LL-D - перепроверка экспонент после других участников) World record sized number to test - LL - первичная проверка экспоненты, превышающей мировой рекорд (Вот как раз такое задание при везении и принесет искателю славу и денежный приз ) First time tests - LL - первичная проверка экспоненты, но мирового рекорда может и не быть (В принципе, почти равноценно предыдущему - вдруг найдется простое число чуть меньше рекордного) Double-check tests - LL-D - как раз перепроверка после других участников, на случай ошибки (Хотя экспоненты здесь меньше и тест выполняется быстрее, шанс обнаружить простое число мизерный) Trial factoring - TF - поиск делителя, чтобы доказать составной характер экспоненты "малой кровью" (Здесь тоже можно получить славу - каждый делитель подписывается именем своего открывателя) (Этот вариант крайне полезен для Проекта - если типовой LL занимает месяц, то делители находятся чуть ли не каждый день, т.е. составные экспоненты отсеиваются гораздо быстрее) P-1 factoring - PM1 - поиск делителя по алгоритму Полларда (Если TF ищет делитель, перебирая бит за битом, то P-1 движется огромными шагами, перепрыгивая интервалы, но тоже иногда приводит к успеху) Trial factoring to low limits - TF - тоже поиск делителя, но только по нижней границе диапазона (Проект циклически обходит все экспоненты примерно каждые 1,5-2 года, сейчас идет проверка уже 67-го бита) (Здесь самый большой шанс быстро найти делитель какой-либо экспоненты и войти в историю ) ECM on small Mersenne numbers - ECM - поиск еще одного делителя у малых и уже проверенных экспонент (ECM - метод эллиптических кривых, как и P-1, способен находить весьма большие и далекие делители) (На мой взгляд, особой ценности не имеет, т.к. экспоненты не отсеивает и успех не приближает) (Делитель найти очень сложно - у нашей Команды получилось всего 2 за 2 года - оба у Conductor) ECM on Fermat numbers - ECMF - поиск делителя, но не числа Мерсенна, а числа Ферма, совсем другой тест (Весьма жуткий трудоемкий тест, очки дает, но рейтинг по данному типу расчетов не ведется) (Для этого поиска еще подойдут программы Fermat и mmff) 100,000,000 digit numbers to test - LL - поиск 100-миллионзначного простого числа, за более крупный приз (Все мечтают его найти, но счет идет уже не на недели, а на месяцы - 200+ дней в круглосуточном режиме) CPU affinity - как распределять вычисления по ядрам: Run on any CPU - выбирается любое свободное ядро Smart assignment - точно не понял (возможно - наименее загруженное по статистике) CPU #1,2,3... - привязка к конкретному ядру (оптимально, потоки не прыгают все время друг за другом) CPUs to use (multitheading) - ускорение вычислений одного потока за счет содействия других (Таким способом можно ускорить в несколько раз какой-либо длительный тест) Внимание! После этого окна программа сразу подключится к серверу и начнет набирать задачи выбранных типов! Что делать, если указали неправильные настройки? Не волнуйтесь - каждое окно можно снова вызвать через меню программы: Окно 1 - Меню Advanced - Quit GIMPS... (При следующем запуске ПО снова спросит, хотим ли мы присоединиться к GIMPS) Окно 2 - Меню Test - PrimeNet... Окно 3 - Меню Options - CPU... Окно 4 - Меню Test - Worker Windows... Что делать, если уже выданы неинтересные задания? Вы можете в любой момент отказаться от любой выданной задачи двумя способами: 1) В самой программе - Меню Advanced - Unreserve Exponent... (Запомнить и ввести номер экспоненты) 2) В аккаунте на сайте: http://www.mersenne.org/workload/ (Найти задачу в списке и отметить галочкой, затем поставить еще галочку внизу и нажать Unreserve checked exponents) Внимание! Если посчитан уже приличный процент задания, пришлите, пожалуйста, его файл мне (Alex_soldier@mail.ru), я досчитаю сам! Как самому выбрать себе задачу? Вас может не устроить, что система выдает задачи автоматически из весьма ограниченного диапазона. Вы можете самостоятельно зарезервировать понравившуюся экспоненту, при условии что она свободна. Причем резервировать экспоненты возможно сразу оптом: http://www.mersenne.org/manual_assignment/ (Там нужно указать, сколько ядер - от 1 до 12, сколько задач выдать на каждое, тип задач, и диапазон экспонент) (Если нужна всего одна экспонента, то заполните только начальное поле диапазона) Внимание! Система выдаст строки с задачами, которые необходимо самостоятельно добавить в файл worktodo.txt Что лучше выбрать? В плане рейтинга и очков (GHz-days) наибольший прирост дают задания TF. TF дает больше до 25%, чем TF-to-low-limits (т.е. выгоднее проверять большие биты). TF дает больше очков в единицу времени за меньшие экспоненты, чем за большие и далекие. В плане получения быстрого результата и славы лучше всего искать делители через TF-to-low-limits. Чем больше экспонента, тем быстрее она считается и находятся делители, но тем меньше приносит очков. Если интересует только слава и денежный приз, то следует считать только LL или даже LL-100.000.000. Компьютер, к которому есть постоянный непосредственный доступ, лучше занять под GPU (чуть ниже). Компьютер, к которому только эпизодический доступ, но он регулярно подключается к интернету, можно занять чем угодно, например чем-то быстрым (TF, P-1, ECM, ECMF). Компьютер, к которому только эпизодический доступ, и он редко подключается к интернету, можно занять чем-то долгим (LL-D, LL). Если периодичность подключения к интернету неизвестна, можно подстраховаться от простоя, задав побольше очередь: (Меню Options - Preferences... - Days of work to queue up - Мах = 30 суток) Обязательно настройте 2 или 3 бекап-файла, т.к. при резком выключении результат может сохраниться с искажением: (Меню Options - Preferences... - Number of backup files) Периодичность отправки на сервер % готовности задачи лучше задать ежедневно: (Меню Options - Preferences... - Days between sending new end dates - Min = 1 сутки) Периодичность сохранения текущего результата на диск лучше задать почаще: (Меню Options - Preferences... - Minutes between writing save files - Min = 10 минут) Внимание! Обязательно убедитесь, что компьютеру не запрещено обращаться к серверу для отправки результатов и получения новых заданий! (Меню Advanced - Manual Communication... - убрать галочку Do not contact PrimeNet server automatically) Как увеличить диапазон проверяемых бит для TF? Иногда пользователю хочется проверять TF не по одному биту, как выдает система, а сразу широкой полосой. К примеру, система выдала несколько заданий: Factor=00000000000000000000000000000000,299999023,67,68 Factor=00000000000000000000000000000000,299999083,66,67 Factor=00000000000000000000000000000000,299999087,68,69 ... А пользователь хотел бы все "подровнять" до 70-го бита. В этом случае, ему нужно вручную исправить последний параметр в каждой строке файла worktodo.txt: Factor=00000000000000000000000000000000,299999023,67,70 Factor=00000000000000000000000000000000,299999083,66,70 Factor=00000000000000000000000000000000,299999087,68,70 ... И все - код привязки (группа нулей в примерах) сохраняется верным и для расширенного диапазона! Как ускорить долгий тест? Некоторые задания (например, LL) приходится считать неделями. В этом случае, если задействовано несколько ядер (Worker-ов), то это не дает прироста производительности, а просто пропорционально растягивает время (одно задание, к примеру, занимает 80 дней, а два параллельно уже по 160 - никакой выгоды)! Существует интересный прием: оставить только 1 Worker под LL,  а остальные поставить ему в поддержку, тогда срок может сократиться более значительно! Попробуйте у себя сделать следующее: 1) Скопируйте всю папку с файлами где считаются долгие задачи - для бекапа. 2) Из worktodo.txt удалите все Workers и задачи, кроме самого первого 3) В настройках программы задайте такое:  Меню Test - Worker Windows Number of worker windows to run - поставьте "1" CPU affinity - поставьте "Run on any CPU" CPUs to use (multitheading) - поставьте "8" После этого вся ядра будут использовать свои мощности, чтобы ускорить расчет на основном Worker-е. Внимание! Лучше не переназначайте в worktodo.txt все ранее выданные задания на первый Worker - у программы есть нехорошая черта делать без разрешения Unreserve exponents, если она сочтет, что они будут считаться слишком долго. Что делать, если система "отняла" недосчитанную задачу? Иногда считаешь-считаешь, отправляешь результат, а система пишет - "Result was not need..." (или что-то подобное). Такое может происходить в нескольких случаях: 1) Задача слишком долго считалась (Срок аннулирования варьируется от 2 месяцев до 1 года - потом задачу могут отдать другому) Посмотреть и продлить срок любой своей экспоненты можно здесь: http://www.mersenne.org/manual_extension/ (Столбец Expires (days) - сколько осталось до аннулирования резервирования задачи) 2) Задача уже была выполнена кем-то другим, или более неактуальна (К примеру, нет смысла продолжать LL-тест, если кто-то уже нашел делитель этой экспоненты) 3) Пользователь сам добавил (вручную или через длину очереди в днях) в файл worktodo.txt много заданий, и система сочла, что для него их слишком много - "лишние" она отрезает без какого-либо предупреждения! 4) Пользователь сам случайно удалил в аккаунте задачу или компьютер, на которой она считалась В случае, если вычисление еще актуально, можно вернуть себе резервирование экспоненты: http://www.mersenne.org/manual_assignment/ (Главное - не затягивать, т.к. задача может быть вскоре перепоручена другому) Либо, если задача посчитана, но сервер ее не принял по причине истечения срока резервирования, можно попытаться "впихнуть" ему ее вручную (скопируйте результирующую строку из файла results.txt) и отправьте под своим логином через эту форму: http://www.mersenne.org/manual_result/ Памятка охотнику за призами Денежные призы предусмотрены только за нахождение нового простого числа, т.е. нужно считать только LL (First time tests, World record sized numbers to test, 100,000,000 digit numbers to test) Все прочие вычисления держатся исключительно на энтузиазме! Памятка охотнику за делителями Делители можно находить разными способами: ECM - ECM on small Mersenne numbers (самый сложный, дает большие делители, для малых экспонет) P-1 - P-1 factoring (тоже дает большие делители, чаще чем ECM, и для любых экспонент) TF - Trial factoring, Trial factoring to low limits (дает небольшие делители очень часто) Чтобы находить максимум делителей, надо стараться считать Trial factoring to low limits наименьшие биты (сейчас это 67-68). Экспоненты лучше брать самостоятельно где-нибудь в далеких миллионах (например, еще есть обширные диапазоны в 800-х). Еще как вариант - тестировать уже разложенные экспоненты, чтобы найти в них новые малые делители (таким путем идет TJAOI - он абсолютный чемпион по делителям, правда, поиску нового простого числа это не способствует). Памятка охотнику за рейтингом Очки (GHz-day) начисляются за разные типы задач в разных количествах. Если все пересчитать на непрерывное время работы CPU, то TF идет с опережением остальных примерно вдвое! Причем, больше очков приносят небольшие экспоненты и высокие биты (т.е. что-то вроде 76227551,75,76). К тому же TF можно считать на GPU с реактивной скоростью Как считать TF на GPU (видеокарте) в 20-50 раз быстрее? Вот теперь самое время скачать программы mfaktc/mfakto : http://download.mersenne.ca/index.html Они работают с технологией CUDA (могут попросить обновить драйвер), и то что раньше считалось на CPU сутки, может быть выполнено на GPU менее чем за час! Правда, задания нужно получать и отправлять вручную через форму на сайте, но можно набирать сразу большими пачками или брать из своего текущего резервирования :) По некоторым поддерживаемым видеокартам есть статистика производительности: http://mersenne.ca/mfaktc.php Главный риск, что видеокарта основательно греется от непрерывной работы. Так я уже почти убил свой старый ноутбук в августе 2015. Но потом написал программу, которая запускает задачи дозированно - по 2 шт., и можно задать временной интервал запуска, чтобы часть времени GPU отдыхала. Это очень удобно для маленьких заданий TF 67-68 - за день их обрабатывается большое количество, и получается неплохой урожай делителей. Могу поделиться Обязательно пишите, если требуется любая помощь!

Ответов - 21, стр: 1 2 All

byte916: Alexander Tsupko пишет: А как обновить драйвер видеокарты? Скачать его с сайта производителя чипа видеокарты - ати, нвидия, интел итд



полная версия страницы