Вот наши нещадно потребляющие CPU и память воркеры в админке Хьюстона:
Асинхронно с решением задач мы собираем результаты и отправляем их организаторам. В Lightning-раунде всё делали вручную и использовали все возможные шансы для провала:
Теперь у нас полная автоматизация: лучшие решения выгружаются из Эластика и запаковываются в ZIP-архив, считается контрольная сумма, архив загружается в Dropbox, а ссылка для его скачивания вместе с контрольной суммой отправляется организаторам.
Всё это повторяется каждые в 20 минут — мы могли бы чаще, но организаторы ограничили всех 15 минутами. Судя по странице, где появляются подтверждения о загрузке решений (https://icfpcontest2018.github.io/submission-acks.html), мы одна из двух или трёх команд, которые делают это автоматически.
Настроили в TeamCity билды для перезапуска воркеров в Хьюстоне и отправки результатов организаторам:
Всё это повторяется каждые в 20 минут — мы могли бы чаще, но организаторы ограничили всех 15 минутами. Судя по странице, где появляются подтверждения о загрузке решений (https://icfpcontest2018.github.io/submission-acks.html), мы одна из двух или трёх команд, которые делают это автоматически.
Настроили в TeamCity билды для перезапуска воркеров в Хьюстоне и отправки результатов организаторам:
Интенсивно пишем логи и валим сборку, если были ошибки при выгрузке результатов из Эластика и есть подозрение, что отправляем не самое лучшее решение:
Но даже отправка не самых лучших решений удерживает нас в топе. Прямо сейчас мы на 10 месте из 61 — и смотрим в будущее с оптимизмом :) Друзья из другой команды из Контура держатся рядом в общей таблице лидеров:
Минут 15 назад мы нашли решения ВООБЩЕ ДЛЯ ВСЕХ задач и вышли на второе место. Ура!
До конца контеста 19 часов, началась настоящая борьба — сейчас у команд примерно по 500 000 очков, и борьба между лидерами идёт за какие-то 1500 очков в сумме и десятки очков по каждой конкретной задаче. Только что сделали новый дашборд в Гугл-таблице и начали отвоёвывать разницу:
За 3,5 часа мы сократили разрыв с первым местом с 1500 до 300 очков. Нашли сильно лучшие стратегии для отдельных классов задач, запустили пересчёт всех решений на кластере и ушли спать. Верим, что автоматика всё сделает и мы проснёмся первыми :) А если вдруг нет — у нас есть отличные новые идеи и куча времени для их реализации.
До конца контеста 4 часа. Произошла заморозка таблицы лидеров: https://icfpcontest2018.github.io/full/live-standings.html. У нас по-прежнему разрыв в 300 очков с командой shinh, при этом на первое место мощным рывком ворвалась команда Unagi. О, этих ребят мы ждали! Эта команда из Японии появляется в топе таблицы лидеров каждого ICFPC и выкладывает по его окончании крайне интересные исходники решения на Гитхаб (там легко найти переменные и функции, названные по-японски). Однако у нас есть в запасе кое-что и для Unagi. Работаем