Кстати, про "1000 проектов".
Масштаб тестов (15k unit + сотни реальных крейтов) уже давно вылез за рамки моей домашней dev тачки (коробочка AMD 12/24 ядра, 24 гига памяти), полный прогон на ней идет больше часа, и это, очевидно, самый главный тормоз для быстрого цикла #autoresearch.
Поэтому я в своей #build https://t.me/itpgchannel/4282 системе запилил распределенный режим, который может утилизировать все свободные ядра в моей лабе (порядка 350 ядер).
Сделано оно весьма примитивно, и потому работает очень хорошо - build идет по ssh на указанные хосты, отправляет туда свое тело (build - python скрипт), экзекает там свой выделенный хендлер, который начинает обрабатывать простой jsonline протокол (все идет по тому же ssh каналу, никаких демонов и слушающих сокетов). По протоколу идут ноды на исполнение, так же remote часть может запросить у хоста отсутствующие у нее данные по uid. Хостовая же часть становится координатором, который только и занимается диспатчингом новых remote узлов, отправляет ноды графа на исполнение, и жонглирует результатами в cas.
Тут, конечно, очень помогло, что build обеспечивает герметичную сборку, что там cas для хранения артефактов, и что build знает все зависимости между нодами, даже имплицитные.
Полный прогон тестов #trustme на всех мощностях лабы занимает единицы минут.
Post #4488
1.29K
commit -m "better" Если экстраполировать, то осталось добавить около 1000 проектов, чтобы компилятор стал "железобетонным"
- 🔥 32
- 👍 12
- ❤ 3
- 🤯 2
- 🤡 1