Спасибо, рад быть здесь.
Я видел вас на пресс-конференции после матча Рыбка – Заппа в Мехико несколько лет назад, но кроме этого я не помню, чтобы вы еще когда-либо давали подобное видео-интервью. Это действительно так?
Нет, кажется, был еще один раз, но, сколько не пытаюсь, никак не могу вспомнить, где и когда, так что…
Главной целью проведения этого интервью было то, что тысячи людей используют Рыбка и общаются с вами через форум Rybkachess. Но очень немногие знакомы с вами лично и, следовательно, не имеют возможности услышать прямо от вас ваши мысли о компьютерных шахматах и программировании шахматных движков. Как ведущий программист в компьютерных шахматах, вы наверняка имеете такие взгляды и идеи, которые знают весьма немногие. И я надеюсь узнать некоторые из них по ходу этого интервью!
Окей, давайте.
Расскажите о вашей биографии и успехах последних лет. Вы родились в Кливленде, хотя ваши родители граждане Чехии – звучит довольно странно?
Да, там все очень запутанно, поэтому я расскажу вкратце. Я родился в Кливленде, где мои родители учились в университете Case Western. В 1971 году, когда мне было 6 недель, мои родители решили вернуться в Чехию. Они поступили в Case Western еще до начала 1968, но после рецессии 70-х Чехия была уже совсем не такой страной, как они ожидали.
Короче говоря, мы вернулись в Чехию в начале 1971 и жили в Праге до… я уже не помню точный год, но около 1982 отец решил вернуться в США. Это было нелегально, но мы все же решили как-то это осуществить. Мы начали с переезда в Ливию: отец нашел там работу (преподавателем программирования в местном университете). Мы выбрали Ливию, потому что оттуда было намного проще эмигрировать в США – в Ливии все организовано не так хорошо, как в Чехии. Из Ливии мы перебрались в Мальту, нейтральную на тот момент страну, и оттуда вылетели в США.
Некоторое время мы жили в Калифорнии, затем в Мичигане. В Мичигане мы и остались жить; отец сначала работал преподавателем в университете Мичигана, а сейчас является профессором Wayne State. Там я и вырос. Я окончил MIT в Бостоне (это было в 1989-1993 годах). Лето я проводил в Техасе. После я работал в Детройте, затем опять в Мичигане и, наконец, вернулся в Европу.
Расскажите подробнее, где вы работали после окончания MIT – вы были профессиональным программистом?
Да, но я несколько раз менял работу. Я начал работать в небольшой компании Triada, где мы разрабатывали новые методы сжатия данных. На самом деле это было намного большее, чем просто сжатие данных – мы пытались создать подобие человеческого мозга. Довольно амбициозный проект, но, в конце концов, мы решили остановиться на методах сжатия данных как основе для применения этих идей. У нас ничего не получилось – компания медленно утонула.
Следующим местом моей работы стал Форд. Там я работал всего 6 месяцев. Я работал в так называемой научной лаборатории, где около 800 ученых проводили базовые научные исследования для автомобильной компании – ничего особенного или секретного, только общие разработки. Я работал на проекте, где мы пытались заставить эффективно работать различные части автомобиля. Сначала это было весьма увлекательно, потому что при разработке нового автомобиля Форд разные детали создаются независимо друг от друга – одна команда работает над радиатором, другая команда над какой-нибудь другой деталью, и они никогда не взаимодействуют друг с другом. Да, просто работают над своей деталью, и не интересуются, что разработала другая команда. Так вот, проблема возникает, когда разработанные детали нужно соединять в единое целое. Они могут вообще не подходить друг к другу – не только физически, но и технологически. Наша задача состояла в том, чтобы унифицировать все новые разработанные детали. Я проработал всего 6 месяцев, потому что работа показалась мне слишком скучной и регламентированной. Я запомнил лишь несколько забавных правил - например, там ни в коем случае нельзя было снимать ботинки в офисе.
Следующим местом работы в Штатах стал ERIM (Environmental Research Institute of Michigan). Этот институт занимался разработками для оборонной промышленности. Мы работали над очень интересным проектом, который назывался MStar. Главной проблемой была автоматизация распознавания целей на радаре. В то время лучшей системой опознавания целей были люди. Люди в этом деле определенно лучше компьютеров (по крайней мере, 10 лет назад), а лучшим компьютерным алгоритмом был один парень – своего рода профессор в программировании и компьютерных технологиях. Нашей задачей было автоматизировать и улучшить его знания в этой области. Над этим проектом весь день работали около 100 программистов в 10 офисах. Это был очень, очень интересный, и очень, очень крупный проект – но, как и большинство крупных проектов, связанных с созданием такого сложного программного обеспечения, его результаты оказались не особенно эффективными. Это все, чем я занимался в США до 1999 года.
После 1999 я переехал в Европу и занялся другими вещами. Некоторое время я играл в шахматы, потом работал на компанию, которая занималась разработкой беспроводных соединений между компьютерами – я программировал приложения на Windows. После этого я занялся Рыбкой.
Что заставило вас отказаться от обычной работы?
Я думаю, на это повлияло несколько факторов. Я уже и не помню почему, но мне часто хочется совершать что-нибудь этакое. Но что я люблю в Рыбке – это мой процесс поиска правильной формулы, которую я нахожу только вместе с ней. Да, я люблю работать в одиночестве, потому что я никому не должен ничего объяснять, ни у кого не спрашивать разрешения. Я просто иду своей дорогой, и если я прав, я выигрываю, если нет – я проигрываю.
Шахматы та же самая дорога – но там сложно начать, если ты уже не молод, у тебя должен быть какой-то особый талант, как подарок от кого-то. А при работе с Rybka я зависим только от себя, ты идешь и делаешь то, что хочешь, работаешь, когда хочешь, спишь, когда хочешь – все это только твое дело, как и твоя победа – только твоя. Мне нравится это – вместо того чтобы постоянно помнить о своих обязанностях, я просто получаю удовольствие от чувства, что я могу контролировать абсолютно все.
Давайте перейдем к шахматам. Когда вы начали играть?
Я играю в шахматы большую часть своей жизни. Я любил играть с отцом по воскресеньям, и в это время выучил правила игры. Немного чаще я играл одним летом в Далласе. В то лето я работал в Texas Instruments. В Далласе был очень хороший шахматный клуб, и я ходил туда 3 или 4 раза в неделю, играл в различных турнирах и постепенно повышал уровень игры. Позднее, в 1995 или 1996, я продолжил играть в турнирах – ничего серьезного, я просто учился шахматам.
Что привело вас в компьютерные шахматы и заставило начать разработку своей собственной программы?
Это было как раз то, чего я хотел долгое время. Я начал читать книги о компьютерных шахматах еще в институте. Там же, в институте, я закончил свою первую программу Connect 4, над которой очень долго работал. Компьютерные шахматы были таким видом деятельности, который мне всегда нравился. В 2003 году я закончил играть в шахматы и почувствовал, что наступило нужное время, чтобы начать работать над Рыбкой.
В 2003 вы написали первую строку кода Рыбки?
Да, в январе 2003 года я закончил с шахматами и нашел работу в Германии в Эдельцвейге. Я работал в компании Option, которая разрабатывала графические интерфейсы для Windows. Я выбрал эту работу, потому что хотел лучше изучить Windows – это был один из этапов плана по разработке Рыбки.
Какие движки с открытым кодом оказали наибольшее влияние на первые версии Рыбки?
На самом деле, я пошел довольно необычным путем. Я распечатал все, что у меня было по тематике компьютерных шахмат – абсолютно все научные статьи. Многое было действительно интересным, многое вообще не относилось к делу, но я все равно распечатал около 3-4 тысяч страниц, и также заказал у ICGA всю подшивку их журналов с 1975 года – они до сих пор лежат у меня в гараже.
Это обошлось мне примерно в 400 евро. Итак, я начал тщательно изучать все материалы – это было началом моей работы над Рыбкой. Возможно, это не самый быстрый и эффективный путь. Я думаю, что самый эффективный путь – взять какой-нибудь движок с открытым кодом (на тот момент это был Крафти) – и дорабатывать его. Постепенно я пришел к этому. Я начал плотно работать с программой в марте или апреле, но на тот момент это было больше похоже на самообучение.
Вы выпустили бета-версию Рыбки 1 в декабре 2005 года. Получается, что от начала работы в январе 2003 до релиза первой бета версии в декабре 2005 прошло почти 3 года работы?
Да, немногим менее трех лет.
Бета-релиз Рыбки был для любителей компьютерных шахмат самым крупным событием со времен матча Каспаров – Deep Blue. Она просто уничтожила все сильнейшие движки того времени – Shredder, Hiarcs, Fritz, Junior – причем некоторые на 100-150 пунктов ЭЛО. Все они были крупными и известными коммерческими программами, и неожиданно бесплатный бета движок оказался просто наголову сильнее их – это перевернуло мир компьютерных шахмат с ног на голову. Вы вообще предполагали, насколько успешной будет ваша программа?
К моменту выпуска Рыбки я знал, что она играет очень сильно. Но, когда я начал работу в 2003 году, у меня еще оставались сомнения, что я смогу победить таких умных парней, как разработчик Shredder (Stefan Meyer-Kahlen). Он действительно хорошо соображает в этом деле, и к тому же начал почти на 10 лет раньше меня. Я предполагал, как сложно будет догнать его – я знал, что 10 лет дали ему все что необходимое. Я говорю не только про код Shredder, но и про обеспечение для тестирования и все остальное. Я должен был начать с нуля, но я верил, что мне по силам сделать это. С другой стороны, я не был уверен в том, как все могло повернуться.
Вы заранее планировали сделать свою программу коммерческой?
Да, еще в 2003 – можете спросить моих коллег по работе. Не могу сказать, что был на 100% уверен в абсолютной успешности всех идей, хотя я знал, что смогу сделать свой проект хотя бы минимально прибыльным.
Вы начали работу над Рыбкой как свое хобби. Вы планировали стать программистом и заниматься этим полный рабочий день?
Я уволился в августе или сентябре 2005 года. Именно в тот день Рыбка первый раз обыграла в матче Shredder. Тогда она играла еще с девятой версией Shredder. Матч был очень напряженным, счет долго держался в районе 50-50. С начала 2005 года я постоянно контролировал разницу в игре между Рыбкой и Shredder – и сумел добиться того, что Shredder брал не более 30-32% в матче с моим движком. В это же время я начал понимать, что Рыбка становится действительно конкурентоспособной, и что это может стать моей дальнейшей работой.
Это был очень рискованный шаг – многие побоялись бы решиться на такое. Вы не предполагали, что конкуренты могут в любой момент усилиться и вернуть потерянные позиции?
Да, и все было даже сложнее, чем вы представляете. Понимаете, я посвятил 3 или 4 года своей жизни только шахматам. Еще когда я устраивался на первую работу, я подумал, что когда рассказываешь работодателям об этом, они смотрят на тебя как на сумасшедшего. Тем более, когда тебе уже за тридцать. Я точно боялся, особенно когда не знал, сколько улучшений есть у Стефана – он же не выпускал новую версию больше года. Все это было рискованно, но это жизнь.
Итак, вы сделали Рыбку 2 коммерческим движком. Этот движок был, если я правильно помню, примерно на сотню пунктов сильнее ближайшего конкурента, при этом сила игры Рыбки 2 достигала 3000 ЭЛО. Когда вы поняли, что нужно передать всю денежную сторону вопроса Convekta и ChessBase, а самому заниматься только программированием?
Прежде всего, еще Рыбка 1 была коммерческой. Я поначалу выпустил бесплатную версию Рыбка, потому что любому разработчику нужна бесплатная версия – это своего рода аксиома. Но более поздние версии первой Рыбка (1.1, 1.2) были бесплатными для тех, кто уже заплатил за базовую версию 1.0.
К 2006 году я переговорил со всеми крупными участниками рынка компьютерных шахмат. Некоторые переговоры были очень серьезными – например, с ChessBase и Convekta. Другие проходили достаточно странно – я разговаривал с людьми, намерения которых не были серьезными.
Но я запомнил один день летом 2006, когда я уже выпустил Рыбку 2 и весь день отвечал на письма – просыпался, отвечал на письма, завтракал, отвечал на письма, обедал, отвечал на письма, ужинал, отвечал на письма. Это был тот момент, когда я понял, что пора спешить, потому что я больше не мог справиться в одиночку. Итак, я выбрал Convekta, и работаю с этой компанией с релиза Рыбки 2.
Тогда расскажите о своих отношениях с Convekta. Что они делали для вас?
Они взяли на себя всю работу, которая не была связана с программированием Рыбки – поэтому я избавился от многих проблем. Все контакты с покупателями, все продажи, логистику, всю работу с дилерами и разработку собственной GUI оболочки. Начиная с Рыбки 3, половину этой работы взяла на себя ChessBase.
Где расположена Convekta?
В Москве. Официально они зарегистрированы в Англии, но фактически компания российская – работают в Москве.
ChessBase из Гамбурга просто расширили вашу дистрибьюторскую сеть или взяли на себя какую-то дополнительную работу?
ChessBase делали абсолютно то же самое, что и Convekta – я думаю, можно называть их издателями моей работы. Конечно, ChessBase отличается от Convekta – ChessBase намного больше, и продуктов у них больше. Convekta работает практически только с Рыбкой. Конечно, у ChessBase есть Fritz – их главный бренд, у них есть и PlayChess – сервер невероятных размеров. Но они делают то же самое, что и Convekta – продают, работают с дилерами, рекламируют, разрабатывает оболочку и адаптируют ее для особых возможностей моего движка.
Когда вы решили, что новая шахматная оболочка улучшит привлекательность Рыбки как программного продукта?
Это было вообще не мое решение. Оболочка Аквариум – продукт Convekta. Они хотели создать конкурента оболочке Fritz. У ChessBase уже было два продукта – оболочка ChessBase для работы с базами партий, игровая оболочка Fritz и одноименный движок к ней. У Convekta всегда был только один продукт – была большая база партий, но не было маленькой, был движок, но не было оболочки, поэтому они решили ее разработать. Они назвали новую оболочку Аквариум, и работа началась 2 или 3 года назад, насколько я помню. Я был очень впечатлен результатами их работы – сделать с нуля оболочку, не уступающую продукту известного конкурента очень, очень сложно. Они справились со своей задачей очень хорошо.
В августе 2008 вы выпустили Рыбку 3. Это событие было очередным переворотом в компьютерных шахматах, новая версия была примерно на 130 пунктов сильнее предыдущей.
Это зависит от условий тестирования, например, времени на партию и так далее, но усиление после года работы было примерно таким.
Почти невероятно – никто в компьютерных шахматах не ожидал такого усиления движка уже к следующей версии. Можете рассказать нам, как вы смогли добиться этого? Например, как много дало сотрудничество с международным гроссмейстером Ларри Кауфманом?
Ларри выполняет в нашей команде несколько основных задач. Он проводит матчи людей с движками и по их результатам улучшает оценочную функцию Рыбки. Я передал ему версию Рыбки с возможностью настройки ОФ, так что он может изменять ее. Он может сказать, например: «Слушай, я думаю, кони недооценены» или что-то вроде того. Он предлагает мне свои изменения, я запускаю тестирование и по его результатам мы решаем, принять изменения Ларри в ОФ или нет.
Кто еще и в каких направлениях работает в команде?
Прежде всего, я должен сказать, что у нас отличная команда. Я счастлив работать с ними и очень благодарен им за труд.
Я начну с Лукаса (Lukas Cimiotti). Он работает врачом в Германии и полностью контролирует наши компьютеры – кластер, тестирование и турниры.
Второй – Jeroen Noomen. Это наш главный автор дебютных книг. Он готовит дебютные книги для турниров и коммерческого распространения.
Далее, Ивета (Iweta Rajlich), моя жена. Она проводит все типы тестирования.
О Ларри (Larry Kaufman) я уже говорил – он работает с ОФ и матчами людей против Rybka.
Также в нашей команде братья Клинги – Феликс и Кристоф (Felix & Christoph Kling), которые работают с сайтом. Кристоф работает исключительно с сайтом – он только программист, а не шахматист. Феликс составляет отчеты о турнирах и активно пишет на форуме.
В нашей команде также работают еще двое – Ник (Nick Carlin) и Ганс (Hans van der Zijden). Ник работает над дебютной книгой – в части подготовки ее к турнирам. Сейчас он не так активен, как раньше, потому что занят другой работой, но он многое сделал для нас в дебютной подготовке. Ганс – наш оператор. Он путешествует по миру с Рыбкой, представляет ее в турнирах, воспроизводит ее ходы на доске.
Наконец, я хочу упомянуть еще об Иржи (Jiri Dufek). Официально он еще не в команде, но я собираюсь добавить его в самое ближайшее время. Он также готовит дебютную книгу – как к турнирам, так и к продаже через Convekta и ChessBase.
Несмотря на уже упомянутое значительное усиление Рыбки 3, пользователи в первые недели тестирования обнаружили немало багов - вы все это знаете. Ваше решение не выпускать исправленную версию Рыбки 3 было противоречиво воспринято покупателями. С одной стороны, были те, кто сказал: «Ладно, мы довольны, потому что Рыбка и так играет намного сильнее всех остальных движков». Но были и другие (как я, например), которые сказали: «А как насчет принципа, согласно которому продукт должен работать так, как было заявлено производителем?» Расскажите нам, почему вы не стали исправлять возникшие проблемы в Рыбки 3?
Хороший вопрос. Прежде всего, я должен сказать следующее – ни одна из найденных ошибок не была критической. Я мог бы выпустить исправленную версию, но я не сделал этого, потому что не лучшим образом управлял своим временем. Я решал проблемы одну из другой – я выпустил Рыбку 3, купил дом в Польше, переехал туда и занялся работой над кластерной Рыбкой.
Я давно говорил Лукасу, что мы собираемся начать работу над этим проектом, и он уже купил компьютеры для этого. Я не мог ответить ему: «Слушай, очень приятно пользоваться твоими компьютерами, но я не собираюсь работать над кластерной версией Рыбки». Так что у меня был свой порядок работы, и доработка Рыбки 3 имела не самый высокий приоритет.
Подводя итог: Рыбка 3 – это огромный шаг вперед, вместе с ее багами и всем остальным. Два независимых сайта – CCRL и CEGT определили силу Рыбки 3 при игре в блиц на четырех ядрах равной 3200 ЭЛО, что на 400 пунктов сильнее лучшего шахматиста-человека. С тех пор вы работали над Рыбкой 4 и многими другими проектами. Конечно, для нас наиболее интересна кластерная Рыбка. Расскажите в общих чертах об этом проекте.
Кластерный движок – это движок, который может использовать ресурсы нескольких компьютеров одновременно. Конечно, Рыбка была мультипроцессорной, то есть она могла использовать несколько ядер на одном компьютере, но она не могла использовать два или три компьютера одновременно. Это было общей целью проекта. В частности, мы преследовали две, нет, даже три цели.
Во-первых, это сильное оружие в турнирах – я не отрицаю этого.
Во-вторых, работа над кластерной Рыбкой помогла мне разработать новые пути при распараллеливании движка. Это может быть полезным для следующего поколения компьютеров – и я бы хотел стать первым в этом направлении. Размышления над тем, как запустить Рыбку на кластере помогли мне понять некоторые другие вещи – все они взаимосвязаны, и, я думаю, что-то заслуживает внимания. Формально, вычислительный кластер это не взаимосвязь между компьютерами в целом, а только объединение их ресурсов, т.е. взаимосвязь внутри компьютеров – между ядрами их процессоров, поэтому вы не можете так просто распределить задачи между ядрами. Это показалось мне интересным, уникальной проблемой, которая относится и к другим сторонам работы над Рыбкой, другим сторонам поиска в целом. Итак, это вторая цель.
Третьей целью было, как вы знаете, создание сайта для удаленного анализа позиций. Я думаю, это будет интересной услугой для людей, которым важен каждый пункт усиления игры и готовых платить за нее. Таких людей не так много, но для них это будет иметь огромную ценность.
Сколько ядер одновременно поддерживает на данный момент кластерная Рыбка?
Сегодня у Лукаса 9 компьютеров по 2 четырехядерных процессора в каждом. Итого 72 ядра работают вместе. Можно сказать, что 72 движка Рыбка работают вместе над анализом позиции и поиском лучшего хода. Число ядер может быть, и наверняка будет увеличено – но пока это все, что у нас есть на данный момент.
На сколько пунктов кластерная Рыбка сильнее той четырехядерной версии, которую можно купить и установить на свой домашний компьютер?
Могу сказать только приблизительно. Мой алгоритм распараллеливания хорошо работает на имеющихся девяти компьютерах. Я не знаю точное усиление, но думаю, что кластер играет на 130-140 пунктов сильнее обычного квада. Короче говоря, девять компьютеров вместе играют на 130-140 пунктов сильнее одного. Поскольку каждый компьютер Лукаса разогнан и работает быстрее обычного квада, я ожидаю прироста в 200 пунктов по сравнению с обычным квадом только за счет усиления мощности компьютеров. Конечно, все эти расчеты не учитывают улучшения самого движка, так что усиление игры будет еще более значительным.
Вы можете предсказать дальнейшее развитие кластерной Рыбки, принимая во внимание последние достижения и планы развития Intel?
Сложно предсказывать такие вещи даже с этими планами развития – неясно, как все может обернуться. Но, похоже, что Intel твердо убежден развивать технологии по увеличению количества ядер в одном процессоре и числа процессоров на материнской плате.
Они только что выпустили новый процессор (конечно, пока только для внутреннего использования) с шестью восьмиядерными сегментами – т.е. фактически это 48 ядер. Их разработка может найти применение в «облачных» вычислениях. Это достаточно здравая мысль, потому что главная причина, сдерживающая развитие многоядерности, недостаток программ, поддерживающих работу с несколькими ядрами – большинство программ работают только с одним ядром. Облачные вычисления быстро набирают популярность.
Если у вас есть 48 ядер, вы можете просто выдать по одному ядру каждому пользователю, т.е. обслуживать одновременно 48 человек. Похоже, что за такими разработками будущее и через несколько лет мы увидим это на рынке. Конечно, наш кластер также будет представлен на этом сегменте рынка – и, возможно, будет не хуже некоторых разработок Intel.
Существует ли какой-то предел вычислительной мощности, за которым последует постепенное уменьшение производительности? Я могу задать вопрос иначе: как Рыбка может эффективно работать с 1000 ядрами или более?
Уменьшение производительности идет по двум направлениям.
Первое очевидно из сущности шахмат – чем сильнее ты играешь, тем сложнее тебя обыграть, ты просто будешь делать больше ничьих. Поэтому по мере усиления движков разница в пунктах ЭЛО между ними начинает сокращаться, как и его абсолютный рост. Хотя, конечно, я удивлен, что эта тенденция все еще очень слаба. Я помню, как люди говорили, что 2900 ЭЛО – это совершенные шахматы. Сейчас мы понимаем, что такая сила игры – это просто смешно.
Второе направление уменьшение производительности заключается в том, что с каждым новым ядром становится все сложнее заставить эффективно работать всю систему. Например, вам нужно, чтобы 4 или 8 ядер работали вместе. Здесь никаких проблем, это сделает кто угодно. Теперь представьте, у вас есть 70 ядер, или 200. Теперь простые методы не будут работать – это все равно, что заставить 200 человек одновременно съесть один бутерброд. Таким образом, определенно необходимо разрабатывать новые методы по мере увеличения количества ядер.
Я оглядываюсь назад и не могу поверить, что за какие-то 10 лет мы получили такие компьютерные мощности, о которых раньше не могли и мечтать. Какова окончательная цель шахматного программирования – к чему вы стремитесь?
Я не ставил перед собой какой-то конечной цели с такой точки зрения. На данный момент мне необходимо сохранить и увеличить преимущество Рыбки. Я думаю, это все, к чему я сегодня стремлюсь. Я хочу быть уверенным в том в будущем лидерстве в рейтинг листе, и если мне удастся закрепить это преимущество, то я надеюсь начать работу в двух других направлениях. Одно из них также связано с шахматами, но не с погоней за силой игры.
Я хотел бы создать движки со стилями игры различных шахматистов, сделать компьютерную игру более реалистичной, с человеческими зевками. Кроме того, я планирую заняться программированием других игр, таких как покер или го. Это все мои цели – я не собираюсь решать шахматы или создавать совершенный движок.
Несколько недель назад вы сообщили на Rybkaforum, что вы собираетесь представлять пользователям ресурсы кластера с установленной новой Рыбкой 4. Как вы называете эту услугу?
У меня нет какого-то имени для этого проекта – я только собираюсь подумать над этим – но если вы хотите, давайте называть его «Удаленная Рыбка».
Каков ваш целевой рынок и почему вы решили заняться предоставлением компьютерных ресурсов через Интернет?
Прежде всего, ориентируюсь на всех шахматистов, которые интересуются анализом партий. Почему они будут арендовать удаленную Рыбку, вместо того, чтобы использовать домашний компьютер? Существует несколько преимуществ аренды. Эта модель облачных вычислений широко используется в различных сферах программирования. Для шахмат существует 3 основных преимущества, которые отличаются от общепринятых.
Во-первых, шахматисты обычно много путешествуют – с одного турнира на другой – естественно, без своих домашних компьютеров, но с ноутбуками. Я знаю одного очень сильного игрока, который анализирует партии на ноутбуке даже дома, потому что ему очень сложно переносить результаты анализа с домашнего компьютера на ноутбук – он постоянно путешествует. Но, если бы существовали единые центральные компьютеры, то игроки могли бы соединяться с ними независимо от того, где они находятся сейчас. Они могли соединиться с помощью домашнего компьютера, ноутбука, или проверить результаты анализа на iPhone или PocketPC. Словом, они как бы путешествуют вместе с мощным компьютером.
Во-вторых, аренда открывает шахматистам доступ к самой последней версии Рыбки. Это очень, очень важно, потому что примерно каждые 8 месяцев я усиливаю Рыбку примерно на столько же, на сколько ее усилит удвоение компьютерной мощности. Обновлять компьютер каждые полгода – весьма недешево, но многие игроки делают это, а поэтому последняя версия Рыбки имеет огромную ценность для шахматистов, которым критически важно провести анализ наилучшего качества.
В-третьих, аренда будет полезной для тех, кто хочет разделить стоимость компьютеров. Например, вы хотите купить мощный компьютер, но собираетесь использовать его только 2 часа в день. Тогда нет смысла покупать такой компьютер домой, где он будет пылиться 22 часа в день. Лучше арендовать компьютер только на 2 часа в день, а остальные 22 часа его будут использовать другие. Вообще все новые компьютерные разработки очень быстро дешевеют, так что нерационально покупать сразу после начала продаж.
Вы думаете, что ваше предложение удаленной Рыбки полностью экономически обоснованно – я имею ввиду, наверняка найдутся те, кому это не будет интересно?
Да, аренда движка экономически обоснована. Нелепо использовать движок, которому 18 месяцев на своем компьютере с точки зрения эффективности вложений. Сегодня для одних пользователей эта эффективность имеет большее значение, чем для других. Например, покупка компьютера только для компьютерных шахмат, будет не слишком умным шагом с вашей стороны. С другой стороны, если у вас есть домашний компьютер для других задач, и вы используете его для анализа партий только в свободное время, то аренда удаленной Рыбки предоставит вам дополнительное усиление игры. Наконец, есть категория пользователей, которые не слишком беспокоятся об уровне игры и не регулярно бывают в Интернете. Конечно, все такие пользователи могут использовать обычную версию Рыбки.
Будет ли экономически обоснованным аренда Рыбки для игроков, которые используют компьютер для анализа 24 часа в день 7 дней в неделю?
Да, это будет необходимо для них. Единственное исключение – если вас компьютер предназначен также для других задач, то цена компьютера распределяется не только на шахматы. Но если вы собираетесь купить компьютер только для шахмат, то аренда удаленной Рыбки будет отличным решением.
Возможна ли аренда большого числа ядер – или существует какие-то ограничения? Если да, то какие?
В целом, эта услуга предоставляться на тех же условиях, что и подобные ей. Условия аренды будут зависеть от купленного вами пакета услуг. Самый дешевый пакет услуг, конечно, будет и самым слабым. Если вы хотите арендовать кластер, то придется оплатить преимум-пакет. Конечно, вы можете купить 4 дешевых пакета одновременно и использовать их, как считаете нужным. Например, новая IDeA в Аквариум позволяет одновременное подключение четырех удаленных компьютеров – короче говоря, для различных пользователей возможны различные варианты.
Если кто-то захочет арендовать много ядер, то он получит примерно кластерную Рыбку?
Давайте я сначала скажу об общих вещах – вы не арендуете определенное количество ядер, вы платите за пакет услуг, который включает установленные заранее компьютерные мощности. Так что если вы захотите арендовать много ядер, то это будет пакет, включающий аренду кластера. Словом, за определенные мощности вы будете платить определенную цену. Лично я бы использовал кластер для получения наибольшей силы игры.
Вы говорите, что за определенную цену покупатели получат определенный уровень игры движка – вы можете рассказать, сколько различных уровней игры и по каким ценам (за час) вы предложите?
Все, что сейчас скажу, носит предварительный характер – это не официально, и, возможно, в будущем будет изменено. Но, в целом, версия, на которую я буду больше всего ориентироваться – базовая (возможно, назову ее потом по-другому). Эта версия удаленной Рыбки будет относительно дешевой, потому что люди не любят платить слишком большие деньги за новую услугу, и немного более сильной, чем обычная – чтобы было за что платить. Далее, базовая цена в год, на которую я пока ориентируюсь, составляет 750 евро. Получив аккаунт, вы сможете войти на сервер в любое время, использовать удаленную Рыбку сколько захотите, или поделиться своим аккаунтом с друзьями. Вы также можете платить за часы использования удаленного движка, и примерная цена – евро в час. Эта версия будет значительно сильнее Рыбки 4 на обычном компьютере.
Сколько уровней игры вы планируете продавать?
Пока не решил. Скорее всего, будет 4 уровня, каждый дороже предыдущего.
Значит, будет базовый уровень и еще 3 уровня выше. Что вы предложите покупателям самого высокого уровня?
На самом высоком уровне вы получите что-то очень, очень, очень крутое. Во-первых, вы получите доступ к кластеру – пока это лучшее, что мы можем предложить. Этот кластер будет чуть слабее, чем кластер Лукаса, в силу некоторых причин. Я пока не знаю точную цену за эту услугу, но ориентируйтесь примерно на 80-100 евро в час.
Ну ничего себе.
Подождите – это же самая сильная версия. Если цена за нее кажется вам слишком высокой, у вас есть право выбора.
Давайте посчитаем. Сегодня вы можете купить хороший восьмиядерный сервер за 4-5 тысяч долларов, и они устаревают довольно быстро – скажем, в течение трех, возможно четырех лет. Получается, из-за этого мы теряем 1000 долларов ежегодно, и через 4 года стоимость этого сервера равна нулю. Ваше предложение конкурентоспособно?
Прежде всего, я должен сказать, что мы все еще прорабатываем некоторые детали, поэтому я не могу говорить обо всем с абсолютной точностью – ни о цене услуг, ни о времени. Но, грубо говоря, восьмиядерный сервер, купленный сегодня, будет примерно равен по силе базовому пакету. Это будет хорошим сценарием для меня, и это будет стоить вам 750 евро в год – получается немного дешевле, чем покупка сервера.
Покупатели Рыбки 4 как продукта на диске будут получать обновления каждый год или дважды в год. Арендаторы удаленной Рыбки получат последнюю версию сразу после ее релиза. Получается, что между двумя группами пользователей движка будет определенное различие. Насколько велика будет разница в силе игры Рыбки 4 и удаленной Рыбки?
Разница со временем будет только расти. Но помните о том, что я контролирую силу игры двух версий. Я устанавливаю силу игры базового пакета на основании силы моих компьютеров. По мере того как Рыбка будет становиться все сильнее и сильнее, я буду предоставлять все более и более слабый с точки зрения компьютерных мощностей базовый пакет.
Давайте вернемся к базовому пакету. Что нужно будет сделать пользователю, чтобы получить доступ к сильнейшей версии Рыбки?
Есть два способа: арендовать Рыбку на весь год с доступом круглые сутки за 750 евро в год – это со скидкой за долгосрочную аренду, как я уже говорил. Во-вторых, можно войти на сервер PlayChess или Convekta и пользоваться Рыбкой несколько часов. Это будет стоить примерно 0,5 евро в час.
Получается, что можно получить доступ к последней версии Рыбки между ее официальными релизами, или, если движок нужен вам только на час, можно получить к нему доступ за 0,5 евро в час?
Да, все верно.
Тогда почему вы думаете, что кто-то будет покупать Рыбку 4 на диске?
Ну, это личный выбор самих пользователей – покупать то, что им хочется. Например, если они не хотят быть постоянно подключенными к Интернет, или если они хотят… короче говоря, это их личное дело. Если бы выбирать пришлось мне, я бы не стал покупать Рыбку 4 – я бы просто арендовал онлайновую версию – это наиболее выгодно. Конечно, это хорошо и для меня как для поставщика услуг. В общем, это выгодно для всех.
Давайте перейдем к Рыбке 4. Вы планируете релиз в 2010 году, не так ли?
Да, в 2010.
В первом квартале, в первом полугодии или это секретная информация?
Вы знаете, у меня есть определенные планы, но я уже понял, что планы могут меняться, а люди продолжают напоминать тебе о датах, которые ты раньше только предполагал. Так что я не могу сказать вам точной даты прямо сейчас. Я собираюсь выпустить Рыбку 4, когда придет нужное время – когда я сделаю достаточно хороший движок для релиза.
Это будет очередной переворот в компьютерных шахматах или просто небольшой шаг вперед? Каков девиз – «быстрее, выше, сильнее»?
Коммерческий релиз Рыбки 4 будет значительным шагом вперед. Этот движок не будет переворотом, как предыдущие релизы, просто потому что настоящим переворотом будет версия, доступная в Интернет. Эта версия – то, на что я буду ориентироваться в будущем, и то, что даст покупателям наилучшую отдачу вложенных средств.
Через пару лет люди уже не поверят, что раньше у них не было удаленной Рыбки. Но уже сегодня это значительный шаг вперед. Рыбка 4 как коммерческий продукт – скорее дань традициям. Есть пользователи, для которых версия в Интернете не слишком удобна, есть те, у кого вообще нет доступа в Интернет, и есть те, кого устроит и обычная Рыбка 4.
Будет ли какая-то скидка для тех, кто купил коммерческую Рыбку 4 и хотел бы вдобавок арендовать удаленную Рыбку 4?
Я пока не решил. Многое будет зависеть от ChessBase и Convekta, но, в любом случае, вы сможете купить обе версии.
Каков ваш текущий план по релизу удаленной Рыбки – когда вы опубликуете прайс-лист и начнете продажи?
Я ориентируюсь на начало 2010 года – не могу обещать, пока это только планы. Мы собираемся начать с тестирования. Это нормально для всех подобных программных продуктов.
Но мы не можем проводить открытое тестирование удаленной Рыбки, потому что множество пользователей перегрузят нашу систему. Поэтому сначала мы определим ограниченное число бета-тестеров, и первое время они будут пользоваться удаленной Рыбкой бесплатно. Потом мы устроим лотерею для первых покупателей Рыбки – они получат скидки.
Эта группа пользователей образует вторую волну тестеров, которые будут сообщать нам о проблемах с локальной Рыбкой. После этого мы будем постепенно увеличивать число тестеров. Официальный релиз будет только после полного тестирования, которое мы постараемся провести максимально быстро. Но тестирование не будет завершено до тех пор, пока мы полностью не убедимся в качестве нового движка – так что оно может продолжаться достаточно долго.
Не выдавая нам секретов о программном коде и путях распространения движка, что вы можете сказать нам о Рыбке 4? Что будет улучшено?
Почти всё. У меня было больше 18 месяцев с даты релиза Рыбки 3, поэтому я сделал много изменений и улучшений в ее коде, но я пока не могу сказать ничего конкретного. Эта версия играет намного лучше предыдущей – это все. Когда я закончу работу над ней, я повторю то же самое, что сказал сейчас. Не люблю давать каких-то обещаний.
Тогда я задам тот же вопрос, но немного конкретизирую его. Больше всего в Рыбке 3 меня раздражали ее эндшпильные знания. Игра в эндшпиле улучшилась?
Да, эндшпильные знания значительно улучшены, но там еще много работы. Эндшпиль – это определенно самая слабая часть партии с точки зрения игры движков по сравнению с людьми. Мои улучшения игры – это еще не полное решение проблемы, но Рыбка 4 играет в эндшпиле весьма неплохо.
Баги Рыбки 3 исправлены в Рыбке 4?
Вроде постарался сделать это.
Вы собираетесь искать и исправлять найденные ошибки в Рыбке 4 до ее официального релиза?
Здесь самое главное то, что я не определяю даты релиза Рыбки. Официально Рыбка 4 будет выпущена только когда ее качество достаточно для релиза. Все изменилось с тех пор, когда я был ограничен жестким графиком и часто не обращал внимания на мелочи.
Есть такая смелая мысль. Мы все помним знаменитый матч 1997 года между чемпионом мира Гарри Каспаровым и движка IBM Deep Blue. Как вы думаете, ваша последняя версия Рыбки 4 на обычном компьютере обыграла бы Deep Blue образца 1997 года в матче?
Тот движок в 1997 году сыграл только 6 партий, так что сложно сказать наверняка, но я думаю, что Deep Blue обыграла бы еще первая версия Рыбки.
Рыбка 1 обыграла бы Deep Blue?
Да. Но нельзя говорить об с уверенностью. Deep Blue сыграл только 6 партий – и, на самом деле, это трагедия. IBM создала гениальный движок и использовала его всего 6 раз. Но можно исходить из этого уровня. Deep Blue – это уровень Каспарова. Fritz 10 обыграл Крамника. Рыбка 4 всухую обыграет Fritz 10. В общем, я готов поставить деньги на Рыбку в матче против Deep Blue.
Если Рыбка настолько сильна, почему ее иногда обыгрывают конкуренты – Fritz, Shredder и другие? Что не так в ее игре?
Компьютеры позволили нам понять, насколько сложны шахматы. Уровень 2900 ЭЛО выглядит очень неплохо, пока не появляется движок с уровнем 3000 ЭЛО, и так далее. По ходу партии можно совершить множество ошибок. Чтобы избавиться от них, необходим анализ на большую глубину и верная оценка позиции. Это возможно не всегда, поэтому любой движок по ходу партии делает несколько мелких ошибок. Если его соперник может этим воспользоваться, он выигрывает. Вы знаете, это шахматы.
У меня есть вопрос, который наверняка задавали вам уже многие, и который, возможно, не имеет ответа. Вы сказали, что многое улучшили в Рыбке 4 – тогда каков предел ваших способностей по улучшению движка и силы его игры? Другими словами, когда вы поймете, что просто бьетесь головой об стену и не можете более усиливать Рыбку?
Возможно, когда-нибудь я достигну своего потолка. Но я не смотрю так далеко вперед. Как я говорил раньше, я не пытаюсь решить шахматы или достигнуть определенного уровня игры – я просто хочу быть выше других авторов движков и использовать такое положение как плацдарм для перехода к программированию других игр – например, Го или покера.
Сегодня у меня есть примерно 12-18 месяцев, чтобы решить те проблемы, которые действительно должны быть решены, и я буду недоволен Рыбкой, пока не решу их. Это очень конкретные проблемы, которые возникли давно и были мной продуманы, так что я не могу просто не обращать на них внимания и работать дальше. Но, после решения всех этих проблем я действительно могу достигнуть предела своих возможностей. Возможно, этого не произойдет, но я смогу сказать определенно только через 12-18 месяцев.
Предположим, у вас есть 50 задач. Как вы решаете, какая имеет наибольший приоритет? Вы основываетесь на том, что решение этой задачи даст немедленный результат, или вы разделяете задачи по темам? Каков порядок решения задач?
Я не отношусь к этом рационально. Мой принцип – это что-то вроде «Я думаю, надо сделать это сейчас, потому что мне так хочется». Я не всегда работаю на самом приоритетном направлении. Моя работа похожа на разборку пирамиды – скажем, у меня есть несколько задач, и я начинаю работать.
Когда я заканчиваю работу с одной из задач, оказывается, что она связана с парой других, так что мне приходится разбираться и с ними, чтобы действительно разобраться с самой первой задачей. Сейчас у меня 4 или 5 таких задач, на самом деле связанных всего лишь с одной крупной. Вот так я работаю – как с пирамидой. Кроме того, я стараюсь мыслить стратегически и отдавать предпочтение тем проблемам, решение которых принесет успех не сразу, а через некоторое время. Иногда важнее начать с небольшой проблемы и отложить крупные на потом, потому что решать мелкие проблемы быстрее и проще.
Давайте вернемся к денежной стороне вопроса. Сколько отдельных движков Рыбки 3 было продано?
Я думаю, это закрытая информация. Я не могу позволить себе говорить об этом сейчас. Это хороший движок, он продается, я этим доволен – пока все.
Хорошо, если не хотите говорить, сколько было продано, то я задам другой вопрос на ту же тему – каково соотношение проданных Рыбки 3 к пиратским версиям?
Думаю, невелико. У меня нет точных данных, в каком-то смысле, меня это не беспокоит – это не мои проблемы. Я же ничего не могу с этим поделать.
Но наверняка есть какие-то пути – остановить пиратство и оставить Рыбку коммерческим программным продуктом?
Если бы они были, разработчики наверняка бы их использовали. Такие вещи, как проверка подлинности CD-дисков на компьютере покупателя – это просто смешно – никакой защиты, только неудобства для тех, кто платит, по сравнению с теми, которые качают бесплатно. Так что на самом деле таких путей нет.
Можно уменьшить пиратство в компаниях, где начальство не хочет, чтобы их персонал был замешан в этом – но это другой сектор. В сфере домашнего программного обеспечения мы действительно ничего не можем сделать. К счастью, это большой сектор рынка, где есть много людей, готовых платить только потому, что они чувствуют свою обязанность делать это. На них еще можно строить бизнес.
Кроме проблемы снижения продаж, существует опасность для вашего бизнеса в целом. Я имею в виду взлом программы и похищение кода – это еще хуже, чем распространение самого движка бесплатно. Хакеры получат доступ ко всем секретам Рыбки, которые вы создавали и скрывали годами. И это уже случилось, не так ли? Не могли бы рассказать нам об этом?
Да, это часть игры – такое может случиться. Я стараюсь смотреть на это иначе: если что-то мешает мне, то это мешает и тем, кто следует за мной. Такова расстановка сил: пиратство затрудняет работу всех разработчиков, и нам приходится принимать это как должное.
Удаленная Рыбка – это часть программы борьбы с пиратством?
Я принял решение о разработке удаленной Рыбке несколько лет назад. Да, со временем какие-то детали были изменены. Вы, конечно, можете построить всю работу только на решении таких проблем, как пиратство.
Это как жить в Нью-Йорке. Вы можете закрыть дверь, принять меры предосторожности, но вы не можете закрыться в доме сами только потому, что боитесь преступлений. Точно так же и для меня пиратство – это проблема, но не первоочередной важности.
Когда я улучшал Рыбку 3, каждое новое улучшение было для меня способом показать всем, на что я способен. Сейчас каждое новое улучшение просто увеличивает разницу между мной и всеми остальными. Они могут сократить это отставание лишь благодаря упорной работе. Мне очень приятно осознавать это, потому что все улучшения - результат только моей работы.
Давайте завершим это интервью вашим видением будущего компьютерных шахмат. Чего нам ожидать, к чему мы придем через несколько лет?
Я не вижу какой-то особенной тенденции. Я думаю, шахматные программы будут такими же и через десять лет. Люди усилят движки, добавят новые возможности в оболочки. Я планирую потратить еще год или два только на усиление движка, потому что это основа моего бизнеса. Если твой движок играет наголову сильнее остальных, то несложно убедить людей покупать его – не нужно обращаться к каким-то субъективным аргументам. Только после этого я обращусь к другим вещам.
Это не означает, что я прекращу работу по усилению движка, просто я не буду уделять этому все свое время. Я могу заняться визуализацией шахматных знаний, тренировкой, буду помогать людям лучше понять шахматы. Я постараюсь сделать программу полезной для разных шахматистов, так, чтобы они могли настроить ее под себя. Также планируется разработка новых графических оболочек – это не мой бизнес, скорее ChessBase и Convekta. Я думаю, много нового мы увидим на PlayChess. В общем, в ближайшее время можно ожидать новшества, которых мы толком и не заметим.
Вы говорили, что при работе над Рыбкой 4 вы ориентировались на усиление игры. Тогда Рыбка 5 также прибавит в силе игры, а Рыбка 6 – в функциональных возможностях?
Да, что-то вроде того, но процесс не будет таким топорным. Во-первых, я планирую создать нормальный сайт для арендаторов удаленной Рыбки с возможностью добавления новых услуг. Например, я выпустил Рыбку 3 с багами, вы обнаружили это, я должен выпускать новую версию. На хостинге я могу внедрить что-то новое, и если это не работает, просто убрать это с сайта, доработать, и выставить вновь. Но в целом ваше замечание верно – я буду тратить около 90% своего времени для усиления движка в ближайшие два года, а потом буду двигаться в другом направлении.
Никто из экспертов не верит, что шахматы будут математически решены в течение нашей жизни. Теоретически может возникнуть слишком много перестановок ходов и различных позиций. Как вы думаете, чего компьютерные шахматы могут достигнуть к следующему поколению? Попробуйте представить это в нескольких аспектах – мощности компьютеров, силы игры движков и так далее.
В какой-то момент мы начнем испытывать трудности из-за ограниченности шахмат, их ничейной природы, постоянного улучшения компьютеров и усиления движков. Например, наши кластеры играют против кентавров, и последняя версия кластера с последней версией Рыбки не проиграла ни одной партии. Хотя была одна игра, где мы почти проиграли. Я даже не знаю, сколько партий было сыграно, но мы не проиграли ни разу. Сначала мы подойдем к первым выводам, например, никогда не проигрывать белыми. Когда это произойдет, я не могу сказать – может быть, лет через десять.
Как долго вы планируете быть лидером в компьютерных шахматах? Когда вы планируете отправиться на пенсию?
Мне нравится то, что я делаю. Я люблю работать с алгоритмом движка, обдумывать новые пути, отработать все до мелочей. Конечно, я не собираюсь заканчивать с шахматами. Шахматы очень важны для меня, это вообще самая важная игра. Но я хочу попробовать и другие игры: сделать в покере то же, что я сделал в шахматах, возможно, заняться программированием Го. Для меня все это очень интересно и увлекательно. Я могу сказать, что буду заниматься программированием еще пять, десять лет – это то, что мне действительно нравится делать.
Васик, вы интересный собеседник, спасибо за увлекательный диалог!
Оригинал интервью на английском языке можно найти на сайте ChessOK.