Linux & Playchess
|
Lends |
Опубликовано 18-11-2008 21:19
|
Мастер ФИДЕ
Сообщений: 349
Зарегистрирован: 06.10.08
|
vincent - ты я так понял полностью настроил фишку:
microwine - > rybka3 ->>> XP -> playchess ?
как делал, я рыбку то запустил через microwine, а как с виндой это связать ?
Короче напиши FAQ...
Изменил(а) Lends, 18-11-2008 21:28 |
|
|
|
vincent |
Опубликовано 19-11-2008 09:44
|
1 разряд
Сообщений: 113
Зарегистрирован: 16.10.08
|
1. Преимущество линукса-перечислять все плюсы я не буду, что лучше по производительности, наверное все догадываются и так (в интеренете миллион и больше статей).
2.Как известно, приложения для Windows можно с успехом запускать на Линуксе, используя эмулятор Wine. Для рыбки такой трюк не проходит, но некий энтузиаст Стейнар написал специальный microwine, с помощью которого жизнь наладилась
3.Рыбка на Линуксе будет иметь выигрыш только в случае включения поддержки больших обьемов памяти (трудно перевести на русский, в оригинале -Large Pages, Huge Pages.По умолчанию Винда при работе с приложениями в опертивной памяти размещает пакеты , размером по 4Кб, при использовании huge pages возможно размещение в памяти 512Кв 1Мб, 2 Мб. В Винде включить данную фишку в принципе можно, я сам не знаю как, единственная программа, способная на данный подвиг это 7-max, от автора очень известной проги 7-zip, но даже в этом случае винда не понимает как ей испльзовать huge pages (то есть именно для Рыбки). В линуксе включение huge pages проще, если ядро имеет поддержку huge pages и эта фича активирована.
Я использую ubuntu linux, ранее 8.04.1 "hardy heron" LTS x64 (kernel -2.6.24), сейчас ubuntu 8.10 "intrepid ibex"
все это абсолютно бесплатное, можно скачать образ с офф.сайта (около 700Мб).Вся сложность состоит в том , что в данных дистрибутивах поддержка huge pages есть, но она не активна или отключена, для ее включения необходимо проделять следующую манипуляцию
в консоли (Terminal)
sudo gedit /etc/sysctl.conf и добавить следующие строчки (внимание, на Линуксе я использую под huge pages 2Gb! памяти из 4Gb, если у вас меньше измените цифры до соответсвующих значений)
# Shared memory 2GB
kernel.shmmax = 2147491840
# Huge pages 2GB
vm.nr_hugepages = 1024
сохраняете конфиг и перегружаетесь. Затем смотрите, если в task managere у вас загружено 2гига-то это и есть те самые huge pages.Рыбка при работе будет использвать как хеш именно эти 2 гига(если ставите такой хеш)- в принципе размер huge pages можно варьировать-у меня 4гига памяти и я не играю в блиц,только 16 мин и больше и используе все 2 гига.
Если же вы видите, что эти 2 гига(или сколько вы отпустили под huge pages) не загружены, то вам придется компилировать ядро (это же или более новое) с включенными huge pages.........(задача для человека, новичка в Линуксе довольно тяжелая, но в нете масса действительно отличных руководств, все покажут и расскажут)
4.когда данные процедуры пройдены собственно приступаем к использванию рыбки
скачиваем microwine-0.8 распаковываем его, туда же кидаем Rybka3.exe (но не Rybka 3.exe, пробел в имени надо удалить!-переименовать)
далее в консоли находим папку с микровайном
cd ..microwine-0.8 (где там он у вас)
и
cat microwine Rybka3.exe > Rybka3-Linux любое имя Rybka-Linux или Rybka-privet vsem ,не важно
chmod +x Rybka-Linux
./Rybka-Linux
это собственно и будет запущенная рыбка нажимаете
uci
появятся все рыбкины параметры
go depth 19
начнет считать со старовой позиции до глубины 19
Все...
5.использовать на плейчесс на прямую все это, естественно не удастся
я использую Линукс комп с рыбкой и ноутбук с оболочкой и книгой на плейчесс
Линукс и ноутбук подлючены к одному свичу (можете через ethernet-cable) идем сюда
http://home.arcor.de/bernhard.wallner/netChess.html
скачиваем engineserver (линуксовый) и engineclient(винды)
запускаем первую программу на Линуксе (на сайте есть readme английский), даем имя движку (Rybka 3, допустим), указываем путь к той Rybka-Linux и ставим порт 2001. и Линукс и ноут у меня подключены к нету-нужно узнать ай-пи на Линукс-компе и в настройках роутера добавить порт 2001 и программу engineserver. В винде на ноуте запускаем engineclient, указываем имя движка (мы в engineserver в Линуксе выбрали Rybka 3), то есть Rybka 3, указываем ай-пи линукс компа, далее порт 2001, должно быть netRybka 3.exe generated и netRybka 3.rc generated.
В оболочке создаем новый движок (а в это время engineserver на Линуксе уже запущен), выбираем netRybka 3.exe и все было сконфигурировано правильно должен появится движок с названием которые есть на Линуксе, внашем случае Rybka-Linux. идете на плейчесс и играете движком.
Квад , разогнанный до 3600 играет в силу 8-ядерника, если не лучше...(без huge pages на Линуксе играет так же ка и на винде, т.е не имеет смысла пробовать). |
|
|
|
Lends |
Опубликовано 19-11-2008 10:22
|
Мастер ФИДЕ
Сообщений: 349
Зарегистрирован: 06.10.08
|
Ок спасибо, попробую замутить ... |
|
|
|
vincent |
Опубликовано 19-11-2008 10:56
|
1 разряд
Сообщений: 113
Зарегистрирован: 16.10.08
|
Небольшое, но важное уточнение.Если удастся заставить работать huge pages, то использовать Рыбку можно только под root, под обычным пользователем ты отпрваишь систему в глубокую затормозку (при большом хэше).
Создать суперпользователя можно sudo passwd root , вводишь пароль
и суперпользователь по-умолчанию не использует графический интерфейс, по-этому надо в logon -security-appearence добавить эту фишку |
|
|
|
Lends |
Опубликовано 25-11-2008 23:40
|
Мастер ФИДЕ
Сообщений: 349
Зарегистрирован: 06.10.08
|
Подключил я сегодня всетаки Linux c рыбкой на 4 ядернике, к оболочке на винде …)
Был поставлен Xubuntu 8.10 x64, твои рекомендации очень помогли.
Но без приключений не обошлось :
Так как у меня на машине было 2 гига памяти, то выделял я 1 гиг для рыбы.
В /etc/sysctl.conf рассудив логически я поставил все в 2 раза меньше …
Почему у тебя vm.nr_hugepages = 1024 я так и не понял, то есть 1 гиг все-таки для рыбы отходит ?....я там поставил 512 …
В итоге после перезагрузки было зарезервировано 1.5 гига памяти примерно …
Сколько там отходит рыбке я не пойму, потому что после подключения движка в работе забирается еще больше .
Процедуры с microwine прошли гладко, а вот engineserver линуксовый в бинарнике работать не захотел, причем такое ощущение, что он просто падает на памяти- не знаю как и для чего его так компилили (перекачивал 3 раза все тоже) пришлось скачать исходник
engineserver.tcl и добавить библиотеки для его запуска, в итоге он у меня заработал как надо. На винде все прошло гладко и Фр 11 проглотил netrybka3 …))) Поиграл немного работает…
Есть пара вопросов:
Про значения памяти выделяемой по подробней напиши, сколько все-таки рыбке отходит, или надо еще командами uci играться, и грузить рыбку с этими параметрами. ?
Вот так у меня рыбка выглядит при начале анализа...
Lends присоединил файл:
screenshot.png
Изменил(а) Lends, 26-11-2008 10:55 |
|
|
|
vincent |
Опубликовано 26-11-2008 18:28
|
1 разряд
Сообщений: 113
Зарегистрирован: 16.10.08
|
Huge pages работают словно это отдельная файловая подсистема, если выставить для этого 2 гига (из 4 Гб, например) то например при старте компа, если ты посмотришь и таск менеджер то будет использоваться около 2.2-2.3 Гига, из которых 2 гига зарезеривированы под Huge Pages, остальное сам Линукс, оболочка КДЕ и т.д. Никакое приложение, кроме рыбки не сможет использовать те 2 гига. Если Рыба использует 2 гига хеша, то она будет всю подсистему huge pages.Выход какой
# Shared memory 2GB
kernel.shmmax = 2147491840
# Huge pages 2GB
vm.nr_hugepages = 1024
просто выставь здесь 512Мб, зарезервируй 512Мб под huge pages и попробуй хэш для рыбки 256-512Мб. Проблема в том, что ощутимый перевес в линукс-Рыбки проявляется при увеличении хэша. Попробуй поэкспериментировать, я для блица систему не пробовал, в основном 16 мин. и бесконечный анализ, где большой хэш работает значительно лучше.
Забыл, что engineserver на линуксе не запускается, надо запускать engineserver.tcl с аргументами
Изменил(а) vincent, 26-11-2008 22:08 |
|
|
|
vincent |
Опубликовано 26-11-2008 18:44
|
1 разряд
Сообщений: 113
Зарегистрирован: 16.10.08
|
wish engineServer.tcl -host 192.168.0.4 -port 2001 -debug 0 -engineName Rybka -engine /home/oleg/chess/Rybka/Rybka-native -cmdArgs
это мой путь. Сохрани как Rybka-server.sh и запускай в консоли sh Rybka-server.sh надо только отредактировать хост и путь к рыбке ну и т.д. |
|
|
|
vincent |
Опубликовано 26-11-2008 21:07
|
1 разряд
Сообщений: 113
Зарегистрирован: 16.10.08
|
можешь выложить сюда инфу после комманды
cat /proc/meminfo
Изменил(а) vincent, 26-11-2008 22:09 |
|
|
|
Lends |
Опубликовано 26-11-2008 23:21
|
Мастер ФИДЕ
Сообщений: 349
Зарегистрирован: 06.10.08
|
vincent написал:
wish engineServer.tcl -host 192.168.0.4 -port 2001 -debug 0 -engineName Rybka -engine /home/oleg/chess/Rybka/Rybka-native -cmdArgs
это мой путь. Сохрани как Rybka-server.sh и запускай в консоли sh Rybka-server.sh надо только отредактировать хост и путь к рыбке ну и т.д.
С Этим я уже разобрался, как только удалось запустить сервер ...
engineServer.tcl --help все рассказал ...
Но все равно спасибо.
vincent написал:
можешь выложить сюда инфу после комманды
cat /proc/meminfo
Да утром, машина пока на работе ...
Изменил(а) Lends, 26-11-2008 23:21 |
|
|
|
Lends |
Опубликовано 27-11-2008 09:56
|
Мастер ФИДЕ
Сообщений: 349
Зарегистрирован: 06.10.08
|
root@lends-desktop:/home/lends#
root@lends-desktop:/home/lends#
root@lends-desktop:/home/lends#
root@lends-desktop:/home/lends# cat /proc/meminfo
MemTotal: 2056704 kB
MemFree: 169160 kB
Buffers: 20272 kB
Cached: 358788 kB
SwapCached: 420 kB
Active: 486472 kB
Inactive: 214456 kB
SwapTotal: 3903784 kB
SwapFree: 3900212 kB
Dirty: 56 kB
Writeback: 0 kB
AnonPages: 321468 kB
Mapped: 66640 kB
Slab: 68608 kB
SReclaimable: 41984 kB
SUnreclaim: 26624 kB
PageTables: 13604 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 4407848 kB
Committed_AS: 443524 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 306836 kB
VmallocChunk: 34359430651 kB
HugePages_Total: 512
HugePages_Free: 512
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 966144 kB
DirectMap2M: 1130496 kB
root@lends-desktop:/home/lends#
root@lends-desktop:/home/lends#
root@lends-desktop:/home/lends# |
|
|
|
vincent |
Опубликовано 27-11-2008 10:05
|
1 разряд
Сообщений: 113
Зарегистрирован: 16.10.08
|
Lends написал:
HugePages_Total: 512
HugePages_Free: 512
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
понятно, 512Мб. Кстати ядро не пришлось компилировать? Добавил строки в sysctl.conf? |
|
|
|
vincent |
Опубликовано 27-11-2008 10:08
|
1 разряд
Сообщений: 113
Зарегистрирован: 16.10.08
|
Идея в том, что никакое другое приложение кроме Рыбки не использует huge pages., то есть когда ты задаешь хэш для рыбки, она использует именно huge page-это специальный твик microwine.В твоем случае максимальный хэш для рыбы будет 512 |
|
|
|
Lends |
Опубликовано 27-11-2008 13:05
|
Мастер ФИДЕ
Сообщений: 349
Зарегистрирован: 06.10.08
|
vincent написал:
[quote]Lends написал:
понятно, 512Мб. Кстати ядро не пришлось компилировать? Добавил строки в sysctl.conf?
Нет не пришлось, просто добавил строки...
vincent написал:
Идея в том, что никакое другое приложение кроме Рыбки не использует huge pages., то есть когда ты задаешь хэш для рыбки, она использует именно huge page-это специальный твик microwine.В твоем случае максимальный хэш для рыбы будет 512
Да я понял уже, 512 хеш меня устраивает...
Рыбке линуксовой надо при запуске говорить какой хеш использовать ?, я так понимаю по умолчанию у нее 32 мб ...
Какой синтаксис команды ....если не сложно напиши ...
А ....или в Фр11 указываешь и он ей передает по uci ?....наверное так ...
Изменил(а) Lends, 27-11-2008 13:30 |
|
|
|
vincent |
Опубликовано 27-11-2008 16:52
|
1 разряд
Сообщений: 113
Зарегистрирован: 16.10.08
|
Ты во фрице-оболочке попробуй поставить 32, 64, 128, 256 ит.д., а на линуксе смотри в таск менеджере смотри сколько подгружается памяти в каждом из случаев, должно работать.
Значить, начиная с версии 8.10 в новом ядре уже включена поддержка huge pages. В 8.04 и 8.04.1 добавление строчки в sysctl.conf результата не давало, приходилось компилировать ядро с включением этой фиговины.ты когда сразу включаешь комп с Линуксом, в таск менеджере huge pages уже подгружены? |
|
|
|
Lends |
Опубликовано 28-11-2008 00:15
|
Мастер ФИДЕ
Сообщений: 349
Зарегистрирован: 06.10.08
|
vincent написал:
Ты во фрице-оболочке попробуй поставить 32, 64, 128, 256 ит.д., а на линуксе смотри в таск менеджере смотри сколько подгружается памяти в каждом из случаев, должно работать.
Значить, начиная с версии 8.10 в новом ядре уже включена поддержка huge pages. В 8.04 и 8.04.1 добавление строчки в sysctl.conf результата не давало, приходилось компилировать ядро с включением этой фиговины.ты когда сразу включаешь комп с Линуксом, в таск менеджере huge pages уже подгружены?
Да я так и сделал - во Фр11 я поставил 512 хеш и поиграл на playchess, huge pages 512 из них 256 становится занято (тоесть половина), стал играть больше думал потом загрузит остальную, нифига , больше 256 не загружает....
Да кстати, tbs он не видит похоже из винды .....если указать путь в оболочке...они должны лежать на линухе тоже что ли .? и как тогда их прописывать ...?
Да , когда включаю комп huge pages уже подгружены. |
|
|
|
vincent |
Опубликовано 28-11-2008 07:29
|
1 разряд
Сообщений: 113
Зарегистрирован: 16.10.08
|
Понятно, насчет таблиц я попробую разобраться.Сам я принципиально ими не пользуюсь, так что проблемы нет.
На счет huge pages
HugePages_Total: 1024
> >
> > HugePages_Free: 0
> >
> > HugePages_Rsvd: 0
> >
> > HugePages_Surp: 0
> >
> > Hugepagesize: 2048 kB
это мой cat /proc/meminfo
Для huge pages в памяти создаются пакеты размером 2Мб (huge pagesize 2048), а самих пакетов по 2Мб будет 1024 (huge pages Total 1024).
В итоге получаем 2Мбх1024 пакета=2Гб huge pages
параметр huge pages total (кол-во пакетов) определяется строкой
"vm.nr_hugepages = 1024" в sysctl.conf
то есть , если ты используешь 512 Мб huge pages, надо ставить "vm.nr_hugepages = 256" |
|
|
|
Lends |
Опубликовано 28-11-2008 13:22
|
Мастер ФИДЕ
Сообщений: 349
Зарегистрирован: 06.10.08
|
Поставил "vm.nr_hugepages = 256" и вот что выдало после загрузки рыбки :
HugePages_Total: 256
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 77312 kB
DirectMap2M: 2019328 kB
сожрала всю ...))), тоесть так у меня 2х256=512 получается кеш ?..но вообще я хотел 1 G рыбке отводить ...))) хотя 512 тоже устраивает...
Просто интересно а 1 G почему не заполняется весь (2х512) ?, кстати в оболочке больше 768 вообще нельзя вытсовить...
И еще - таблицы работают ...))), они должны быть на виндовой тачке, просто я плохо затестил вчера у меня их мало тут ...)
Ааааааа...у меня на виндовой тачке всего 1 гиг памяти, оболочка видит что больше 512 не отдаст винда и не позволяет забить 1 гиг. Затестил и поставил в оболочке 256 кеш и сразу в hugepages освободилось 128 ...) короче движок все из оболочки берет ...
Изменил(а) Lends, 28-11-2008 15:51 |
|
|
|
vincent |
Опубликовано 29-11-2008 10:28
|
1 разряд
Сообщений: 113
Зарегистрирован: 16.10.08
|
Да,хеш на компе с оболочкой, ограничивается памятью.Я например не могу посавить хэш 2 гига, т.к. на ноуте всего 2 гига, поэтому запускаю рыбу на линуксе сразу с хешем 2гига через полиглот.
Я вот думаю может Gentoo поставить, вроде как самый быстрый дистр. Я и так использую Линукс по-большому счету для рыбки
только нужен полиглот, рыбка, engineServer.tcl и настроить сеть между квадом и ноутом. Правда оболочка нужна наверное, не пробовал engineserver без графического интерфейса?
Изменил(а) vincent, 29-11-2008 10:38 |
|
|
|
Lends |
Опубликовано 29-11-2008 10:55
|
Мастер ФИДЕ
Сообщений: 349
Зарегистрирован: 06.10.08
|
vincent написал:
Да,хеш на компе с оболочкой, ограничивается памятью.Я например не могу посавить хэш 2 гига, т.к. на ноуте всего 2 гига, поэтому запускаю рыбу на линуксе сразу с хешем 2гига через полиглот.
Я вот думаю может Gentoo поставить, вроде как самый быстрый дистр. Я и так использую Линукс по-большому счету для рыбки
только нужен полиглот, рыбка, engineServer.tcl и настроить сеть между квадом и ноутом. Правда оболочка нужна наверное, не пробовал engineserver без графического интерфейса?
Мне кажется дело не в дистре, а в том как его настройть - убрать иксы и все лишее и получится самый быстрый линукс.
Только скорее всего engineServer.tcl не запустится без оболочки, но во первых его можно самому переработать, там же исходник, во вторых можно поставить еще более легкую оболочку icvm ....там вообще нет ничего лишнего ... |
|
|
|
vincent |
Опубликовано 29-11-2008 12:00
|
1 разряд
Сообщений: 113
Зарегистрирован: 16.10.08
|
Мне нужна оболочка еще ипод SCIDx64, о с базами работает просто отлично, и противном случае, конечно отключил бы весь мусор.
engineServer надо пробовать |
|
|