6-7-фигурный эндшпильный генератор. 2-я версия

Тема в разделе "Машинное отделение", создана пользователем Skipper_NORTON, 14 янв 2009.

Статус темы:
Закрыта.
  1. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Залил в интернет 2-ю версию генератора. Скачать можно по той же ссылке -

    http://generatorchess.qsh.ru/Default.aspx

    Работает существенно быстрее чем 1-я версия, если генерировать 5-6-7-фигурные. Распараллелил на 4 потока, но не всю обработку (некоторые части просто нет смысла распараллеливать). Памяти ест столько же.

    Главное. Если генерировать базы, то эффективнее всего запускать каждый генератор на отдельном винчестере, чем на одном - несколько. Генератор настолько активно использует винчестер, что процессор часто загрузить полностью не может (скорость чтения винчестера стала ограничивающим фактором в производительности), поэтому даже если у вас 1-2-ядерный процессор (сейчас уже и 4-ядерные стали доступными и дешевыми) - то лучше всего подключить до 3-х винчестеров и на каждом из них запустить генератор. Это если есть желание полностью загрузить процессор, чтобы он не простаивал. Далее, требуемый объем на винчестере должен присутствовать обязательно, а оперативки - не обязательно, но если не хватит оперативки, то будет использоваться своп, и время генерации увеличится в разы. Планки памяти сейчас по 2 ГБ стали довольно дешевыми и можно поставить 4 штуки. Если будет 8 ГБ, то можно одновременно 3 генератора запустить если создавать 6-фигурные. Для 7-фигурных нужны мощные серверы. У кого есть деньги на мощные серверы может первым в мире построить 7-фигурные шахматные базы. :) Если производители движков узнают, что появились в мире 7-фигурные, то скорее всего добавят у себя возможность их использовать. Я для этого предоставил dll с описанием. А пока можно для анализа использовать в моей программе, либо в своих движках, dll подключить очень просто.

    Тема закрыта по просьбе автора, в связи с выходом новой версии.
    Дальнейшее обсуждение здесь: http://kasparovchess.crestbook.com/viewtopic.php?id=5339
  2. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Я сам дома уже штук 40 сгенерировал 6-фигурных баз. За год-полтора досчитаю всю 6-фигурку. Это дешевле чем качать 1 терабайт по инету - у нас за 1 гиг траффика нужно платить 30 долларов. За 1 терабайт было бы
    30 000 долларов.
  3. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    Спасибо, Skipper_NORTON!

    Здравый смысл подсказывает распостранять генератор отдельным архивом, а не в одном архиве с 40 мегабайтами таблиц.

    Вопросы:
    Насколько мощные серверы нужны для создания 7-фигурных таблиц? (сколько памяти нужно)
    Есть ли ещё в планах генератор таблиц DTZ-50 или DTC-50?
    Есть ли надежда увидеть исходник?
    Есть ли в планах версия под Линукс?

    Хотелось бы погонять генератор, но для этого мне нужно чтобы он генерировал DTZ-50 и имел открытый исходник, чтобы я мог собрать его под нужную систему. (Доступные мне мощные машины работают под линуксом и солярисом).

    Можно было бы списаться с кем-то у кого уже есть все таблицы, и получить по почте полный винч таблиц за гораздо меньшие деньги (стоимость винта + пересылки). (Предвосхищая вопрос - у меня всей шестифигурки Налимова больше нет).
  4. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    насчет подключения dll не совсем понял. есть кусок рабочего кода?
  5. dan77790 Учаcтник

    • Участник
    Рег.:
    06.03.2008
    Сообщения:
    3.792
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    Skipper_NORTON

    А вот мне допустим надо проанализировать до мата определенную 7-фигурку, как это сделать?)
    по шагам)
    есть какие то минимальные технические требования к железу?
  6. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    да генерит быстрей, заметно. и винтом вроде не хрустит...
  7. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    dan77790 смотреть базу можно даже на слабом компе. типа пень-3 :D
  8. ProstoTak Старожил

    • Ветеран
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    5.479
    Симпатии:
    123
    Репутация:
    1
    Оффлайн

    Если надумаете генерить, начните с этой позиции. Уж больно интересно мог ли Штирлиц тут выиграть у меня?
  9. dan77790 Учаcтник

    • Участник
    Рег.:
    06.03.2008
    Сообщения:
    3.792
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    bankuss

    пасип) но все таки....
    че делать то)
    вот включаю я значит комп.... что дальше?)
  10. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    dan77790 интересный вопрос :) надо подумать...
  11. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Kirr

    Значит, для 7-фигурных беспешечных нужно, начиная от 20 ГБ оперативной памяти. Это может быть обычный комп и не сервер. Я видел в продаже материнские платы поддерживающие 24 ГБ (6 слотов и в каждый можно поставить планку 8 ГБ). 7-фигурные пешечные будут требовать в большинстве случаев около 140 ГБ оперативной памяти (некоторые больше).

    Предположим мы хотим из всех 7-фигурных посчитать штук 100 самых интересных. Не знаю, насколько мощные у вас компы, но время на любую 7-фигурку будет исчисляться месяцами по любому, но никак не днями. Чтобы за пару лет сгенерировать 100 штук - нужно за пару месяцев успевать генерировать 10. Т.е. нужно просто параллельно запустить 10 генераторов. Значит, нужно 10 таких мощных серверов со 140 ГБ оперативной памяти на каждом, и 10-ю сверхбыстрыми винчестерами. Ну или один суперкомп с 1,4 ТБ оперативки, я уж не знаю...

    Короче, львиную долю затрат будет съедать именно оперативная память, а процессорные мощности и 10 винчестеров - просто крохи. И по оперативной памяти там больше трудно что-то оптимизировать в программе.

    Сегодня спешу, завтра полнее отвечу на вопросы. Что касается Линукса - я и сам могу перевести генератор на эту систему. Может, позже займусь. Должны быть мощные компы и под Windows...
  12. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    ProstoTak ничо там нет. с 6-ти фигуркой оценка с -0.20 падает до -0.01, что говорит о том, что движок даже намека не видит на игру.
  13. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    bankuss

    Выше есть мой пост, как к dll обратиться. Какие функции. А подключается все стандартно.
  14. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    если бы я был заматерелым сишником, то конечно может быть бы и разобрался :) но увы, ошибки при компиляции...
  15. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    В этом случае я могу предложить ещё одно преимущество метрики DTZ-50 (как и DTZ): Для генерации таблиц с пешками потребуется _меньше_ памяти, чем для генерации таблиц без пешек. Фишка в том, что каждое разположение пешек можно считать независимо от остальных, так как каждый ход пешки необратим. То есть каждой расстановке пешек соответствует как бы своя отдельная таблица.

    Если из семи фигур одна - пешка, то вместо одной большой семифигурной таблицы генерим много шестифигурных, из которых каждая отличается от остальных положением пешки.

    Если использование метрики DTZ-50 позволит обойтись 20 ГБ во всех случаях, то это сильно приблизит день, когда семифигурка будет обсчитана. Что думаете об этом, Skipper_NORTON?
  16. Kirr Администратор

    • Команда форума
    Рег.:
    11.02.2006
    Сообщения:
    1.208
    Симпатии:
    22
    Репутация:
    8
    Оффлайн
    "Ещё одна" шестифигурка DTM сейчас никому не нужна. Нужна семифигурка, поэтому шестифигурку нужно рассматривать только как шаг на пути к семифигурке, и оценивать в этом контексте.

    Дальше имеем вопрос насколько далеко распостраняются ваши амбиции, Skipper_NORTON. Хотите ли вы чтобы ваши таблицы стали следующим стандаром, как сейчас таблицы Налимова? Чтобы они использовались во всех интерфейсах и движках? Чтобы параметр Skipper_NORTON_path был включен в стандарт протокола UCI? :)

    Открытый код доступа к таблицам необходим, чтобы таблицы получили распостранение среди авторов движков. Это - абсолютно необходимое условие популярности, так как большинство авторов движков не будут возиться с неизвестной dll, которая неизвестно что делает. Есть и другие причины, как перенос на другие языки или платформы. Представьте ситуацию. Микрософт обанкротился, windows больше нет, а Skipper_NORTON на письма не отвечает. Если исходника доступа нет, то всё, game over. (или дизассемблировать).

    Открытый код генератора нужен для того, чтобы больше народу смогло принять участие в генерации таблиц. Этот пункт не является строго необходимым, если необходимые вычислительные мощности есть у вас (и у ваших друзей, которые вам доверяют и готовы гонять ваш генератор с закрытым кодом). Если же у вас таких мощностей нет, то помощь сообщества будет очень кстати. Я знаю людей с мощными машинами, которые будут счастливы помочь считать семифигурку, но только если исходник открыт. (И я в их числе).

    Если такой генератор не создадите (и не откроете) вы, это сделает кто-то другой. Другое имя войдёт в историю. Спросите сейчас как много участников этого форума знают что такое таблицы Томпсона, таблицы Эдвардса, таблицы де Конинга? Есть ли смысл тратить столько сил и времени на создание генератора, если его ждёт забвение через пару-тройку лет? На этот вопрос ответить можете только вы. Буржуцкий и Коновал тоже вложили кучу сил и времени с нулевой полезной отдачей.
  17. ProstoTak Старожил

    • Ветеран
    • Старожил
    Рег.:
    12.02.2006
    Сообщения:
    5.479
    Симпатии:
    123
    Репутация:
    1
    Оффлайн
    А у кого это есть комп с подключёнными 6-ти фигурками к движку? :)
  18. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Kirr

    Насчет кода. Я когда-нибудь открою. Но по крайней мере в ближайшее время "светить" код я не могу. У меня еще есть много идей, что там можно совершенствовать, улучшать и т.д. Открой код - кто нибудь другой вместо тебя сделает, а потом и доказать что там мои разработки используются невозможно, и сам буду думать - что вот это мог бы сделать и я... :)

    Насчет использования. Если компания хочет использовать продукт другой компании, то как правило, предоставляются компоненты или dll, и интерфейс (методы), как с ним работать. Код так просто не предоставляет никто. Тем более, вы поймите, там у меня не какой-нибудь маленький проектик с тысячей строк. Там 50 тысяч строк кода, сложной алгоритмики и всяких оптимизаций. По размеру как корпоративный проект, я хоть делал и один но долго - полтора года.

    Код нужен только для одного - только СОВЕРШЕНСТВОВАТЬ и изменять сам этот проект. Если же его совершенствовать не собираются, а собираются использовать (авторы движков например), то код у них будет лежать грузом неизвестно зачем. Они просто будут вызывать методы предоставленного интерфейса, и тут нет разницы, делать это из dll или из компонента или иметь сам код. Если авторы движков узнают что впервые появилась в мире 7-фигурка, то они должны включить эти вызовы, и не имея кода.

    Чтобы сгенерировать и использовать 7-фигурку я уже все предоставил. Буду совершенствовать и предоставлять новые возможности. А насчет кода с 50 тысяч строк вы тоже поймите, надо поступать разумно. Но рано или поздно я открою код.
  19. dan77790 Учаcтник

    • Участник
    Рег.:
    06.03.2008
    Сообщения:
    3.792
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    Мне кажется как минимум 2 автора движков уже знают о существовании этой 7-фигурки)))
    NS и Wild Cat)))
  20. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    >> Если из семи фигур одна - пешка, то вместо одной большой семифигурной таблицы генерим много шестифигурных, из которых каждая отличается от остальных положением пешки. >>

    Идея хорошая, я над этим раньше, конечно думал. Долго расписывать почему, но ее намного труднее реализовать. Насчет DTZ... Честно говоря, не нравится мне этот формат, потому что программа часто не играет действительно наилучшим образом (выше уже обсуждали это), а у меня задача - добиться именно этого на каждом ходу. Если уж на то пошло то я склонен больше думать над реализацией DTM-50.
  21. Сергей С. Питер Старожил

    • Участник
    • Старожил
    Рег.:
    31.03.2006
    Сообщения:
    1.194
    Симпатии:
    60
    Репутация:
    11
    Оффлайн
    Думаю открытость или закрытость кода непринципиальна для разработчиков прог, если автор генератора гарантирует совместимость с шахматными движками и оболочками. Оболочка фрица вроде не с открытым кодом, но она свободна и бесплатна. В любом случае поддержка семифигурок на данный момент неактуальна для поддержки движками. Пока чисто научный интерес.
  22. Renegat23 Заслуженный

    • Заслуженный
    Рег.:
    08.02.2007
    Сообщения:
    1.823
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    Ой ли?! С чего вы взяли это? То что он вам досталась бесплатно не говорит об этом :D
  23. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    Материнская плата TYAN S4992 рассчитана на четыре процессора и 256 GB оперативной памяти. На фотке видно, что там 32 разъема под оперативку и в каждый можно пихнуть наибольшую существующую ныне планку памяти в 8 ГБ.

    http://www.overclockers.com.ua/news/hardware/2008-11-17/102852/

    Вот что нужно для создания 7-фигурки. Если там 4 процессора поставить каждый по 4 ядра - можно считать, как 16 процов. На такой архитектуре по несколько генераторов можно запустить одновременно. И не нужно никаких суперкомпов (т.е. хотя и желательно но не обязательно). Спонсор нужен. :)
  24. bankuss Александр

    • Заслуженный
    • Участник
    • Старожил
    Рег.:
    24.05.2006
    Сообщения:
    1.084
    Симпатии:
    38
    Репутация:
    6
    Оффлайн
    кстати память 1 планкой в 8 гигов не так то просто купить! в 4 то на заказ возят, а тут 8
  25. break Учаcтник

    • Участник
    Рег.:
    16.02.2007
    Сообщения:
    818
    Симпатии:
    1
    Репутация:
    0
    Оффлайн
    Нет в планах идеи сделать распределенную генерацию таблиц? Скажем, есть сервер, где хранятся шестифигурники и есть несколько клиентов, на которых происходит генерация семифигурных окончаний. По мере необходимости (если в процессе генерации возникает шестифигурник) делаются запросы на центральный сервер за информацией. Вопрос - как много таких запросов будет, т.е. не станет ли препятствием к реализации идеи пропускная способность сети?
  26. dan77790 Учаcтник

    • Участник
    Рег.:
    06.03.2008
    Сообщения:
    3.792
    Симпатии:
    17
    Репутация:
    0
    Оффлайн
    Да, почему с коллайдера информация может идти на обычные персоналки а тут нет?)
  27. Сергей С. Питер Старожил

    • Участник
    • Старожил
    Рег.:
    31.03.2006
    Сообщения:
    1.194
    Симпатии:
    60
    Репутация:
    11
    Оффлайн
    Я имел ввиду что для разработчиков программ она, оболочка, вроде как свободна нет копирайта. Может она и небесплатна, но открыта для любого разработчика. Например Ниаркс забыл о своей оболочке и перешел с 7.32 в конце 90-х на чессбэйсовскую. Юниор, Шреддер тоже. Помню и рекламный призыв - забудьте об оболочке, выбирайте лучшую в мире и сосредоточтесь на написании шахматного движка. Может я нюансы не так понял.
  28. Renegat23 Заслуженный

    • Заслуженный
    Рег.:
    08.02.2007
    Сообщения:
    1.823
    Симпатии:
    3
    Репутация:
    0
    Оффлайн
    Для того, чтобы использовать оболочку фритца, авторам двжиков надо продаться ChessBase и делиться с ними и без того копеечным доходом. А автор Шреддера как раз развивает собственную оболочку.
  29. Сергей С. Питер Старожил

    • Участник
    • Старожил
    Рег.:
    31.03.2006
    Сообщения:
    1.194
    Симпатии:
    60
    Репутация:
    11
    Оффлайн
    Значит я неправ. Вопрос заслуживает отдельной темы. Хочу отметить, что на 98 год оболочка Фрица была на 2 порядка удобнее и красивее чем у других прог. Да что говорить - не все еще от DOS ушли тогда ! Далеко не все.
    В любом случае у автора есть несколько лет, чтобы не думать об актуальности вопроса, а уж потом и раскрыть код.
  30. Везде цуцванг Василий

    • Участник
    Рег.:
    18.01.2009
    Сообщения:
    40
    Симпатии:
    0
    Репутация:
    0
    Адрес:
    Россия, Кемерово
    Оффлайн
    Скажите пожалуйста сколько весят (в гб или тб) Налимовские таблицы 4-5-6 фигурных окончаний?
  31. corplayer Учаcтник

    • Участник
    Рег.:
    15.05.2007
    Сообщения:
    101
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Налимовские базы весят 1.3ТБ. Просто для загрузки они требуют 1.5 ГБ оперативной памяти - видимо таблицы распаковки данных. Для более быстрой работы еще желательна память для кэширования.

    Правда, действительно актуальных окончаний - процентов 20. Остальные, типа "ферзь и ладья" против "коня и пешки", просто до кучи. Так что, при правильном подходе можно иметь все актуальные с гораздо меньшими затратами.

    Что касается 7-фигурных, то вопрос явно поставлен слишком рано. Пока это интересно только теоретически. Технологически мир к этому не готов. Предлагаемые конфигруации с 4-мя процессорами (16 ядрами), 256 ГБ памяти и 200 ТБ дисковыми массивами сейчас должны стоить 50 000 долларов. И такой компьютер нужен не один. Года через 2 цена снизится, и можно начинать.

    Единственное, если только алгоритм новый придумать, который будет требовать "всего" 2-4 ГБ памяти, тогда можно начинать сегодня, но вопрос хранения всё равно остается. Поэтому нужна еще революционная схема паковки данных.
  32. drowsy Учаcтник

    • Участник
    Рег.:
    08.09.2006
    Сообщения:
    1.282
    Симпатии:
    1
    Репутация:
    0
    Адрес:
    Toronto, Canada
    Оффлайн
    Собственно, я тут про это уже писал.
  33. TopicStarter Overlay

    Skipper_NORTON Старожил

    • Участник
    • Старожил
    Рег.:
    14.12.2007
    Сообщения:
    515
    Симпатии:
    4
    Репутация:
    0
    Оффлайн
    А если найти спонсора? Есть же миллионеры - Крамник, Каспаров и т.д. Возможность стать первым в мире, построившим 7-фигурные может их заинтересовать. А пока 7-фигурные построятся (через пару лет) - то и технологически станут доступны каждому. Вроде, с 6-фигурными в прошлом тоже так было. Генерировали их на мощных компьютерах, которые тогда не были доступны народу. А сейчас 1 ТБ винчестер, на котором можно все 6-фигурные базы хранить - доступен каждому.
  34. Препод Учаcтник

    • Участник
    Рег.:
    19.01.2009
    Сообщения:
    16
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Богатые спонсоры - люди тертые. Сталкивался в жизни не раз. На них расчитывать нечего. Большинство выделяет деньги не из альтруистических мыслей, а потому что им это рекомендуют сделать. Либо сначала считают, возможна ли прибыль, а затем финансируют в обмен на будущую долю в проекте.

    Более реально народное спонсорство. Как, например, wikipedia здесь в пример приводили.
  35. YashaK Учаcтник

    • Новичок
    • Участник
    Рег.:
    05.06.2006
    Сообщения:
    10
    Симпатии:
    0
    Репутация:
    0
    Оффлайн
    Добрый всем день/вечер/утро/ночь!

    Случайно обнаружил этот форум и прочел много интересного о нашей с Марком работе. Не удивительно, что многие высказывания очень далеки от действительности. Могу подробнее ответить на некоторые интересующие вас вопросы.

    Пока только замечу, что наш 7-фигурный генератор уже давно полностью работоспособен, базы успешно строятся и проверяются Марком, в том числе базы с пешками. Для работы генератора нужно 3 Гб оперативной памяти, время построения одной 7-фигурной базы на одном процессоре от нескольких часов до 3-4 недель.

    С уважением, Яков Коновал

Поделиться этой страницей

Статус темы:
Закрыта.