Теперь у нас полная автоматизация: лучшие решения выгружаются из Эластика и запаковываются в 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. Работаем
До конца контеста 30 минут. Собрались вместе в новой локации, запускаем новые стратегии и ищем их изысканные сочетания (сейчас их 890), которые ещё эффективнее собирают 3D-модели и зарабатывают для нас больше очков. Выбирать есть из чего, а времени остаётся совсем немного. Пытаемся угадать, какие стратегии должны быть запущенными до конца контеста, потому что даже с 50 воркерами в облаке и десятком локальных машин машинного и физического времени у нас остаётся довольно мало.
Так как таблица лидеров заморожена, следить за нашим прогрессом стало гораздо сложней. Теперь сравниваем наши результаты с нашими же результатами за предыдущие часы контеста. Все дашборды стали необычно популярны:
Так как таблица лидеров заморожена, следить за нашим прогрессом стало гораздо сложней. Теперь сравниваем наши результаты с нашими же результатами за предыдущие часы контеста. Все дашборды стали необычно популярны:
Ещё немного прокачали наш TeamCity — теперь при отправке решения организаторам показываем, сколько энергии уходит на сборку моделей. Чем меньше энергии — тем лучше. Правда, это всё равно ничего не говорит нам о том, сколько очков мы получим, ведь таблица лидеров заморожена. Но всё равно теперь как-то поспокойнее — наши решения становятся всё лучше и лучше, и мы это знаем: