Size: a a a

2020 February 02

V

Vascom in OpenStreetMap RU
Штука в том, что каждая карта занимает одно ядро и время сильно зависит от размера карты. Таким образом, если запускать сразу много карт, то оптимально используются все ядра и общее время сборки сокращается.
источник

V

Vascom in OpenStreetMap RU
То есть , если запускать одну Москву, то это условно занимает два часа, а брянская область полчаса. А если одновременно Москву, две Московских области и Брянскую область на 4 ядрах, то займёт те же два часа.
источник

ВТ

Валерий Трубин in OpenStreetMap RU
Хитро
источник

V

Vascom in OpenStreetMap RU
Как вариант, ещё есть сервер с 32 ядрами и 768ГБ ОЗУ... Но там свои заморочки.
источник

ВТ

Валерий Трубин in OpenStreetMap RU
;)
источник

i

iWowik in OpenStreetMap RU
Валерий Трубин
Что значит "крону"?
источник

PG

Pavel Gavrilov in OpenStreetMap RU
Vascom
Штука в том, что каждая карта занимает одно ядро и время сильно зависит от размера карты. Таким образом, если запускать сразу много карт, то оптимально используются все ядра и общее время сборки сокращается.
А автоматизировать, чтобы запускалось одновременно параллельно N процессов и если очередной завершился, то запускался бы следущий - никак? А по хрону запускать всю эту чёртову мельницу.
источник

PG

Pavel Gavrilov in OpenStreetMap RU
Надо посмотреть, наверняка есть bash-скрипт для этой цели, задача-то типовая.
источник

V

Vascom in OpenStreetMap RU
Pavel Gavrilov
А автоматизировать, чтобы запускалось одновременно параллельно N процессов и если очередной завершился, то запускался бы следущий - никак? А по хрону запускать всю эту чёртову мельницу.
Никак, поскольку надо скачивать данные с геофабрик. А там один файл на один федеральный округ.
источник

V

Vascom in OpenStreetMap RU
То есть можно одновременно запустить все карты, входящие в один ФО, но потом надо ждать завершения прежде чем запускать новые карты.
источник

PG

Pavel Gavrilov in OpenStreetMap RU
Не очень понял суть проблемы. Скачивается файл на несколько областей - параллелишь запуск сборки на каждую область. По завершени последнего из процессов скачать следующий файл и снова параллелить сборку.
источник

PG

Pavel Gavrilov in OpenStreetMap RU
Ну т.е. да, надо подумать, но мне кажется, что такую схему можно сделать.
источник

V

Vascom in OpenStreetMap RU
Pavel Gavrilov
Не очень понял суть проблемы. Скачивается файл на несколько областей - параллелишь запуск сборки на каждую область. По завершени последнего из процессов скачать следующий файл и снова параллелить сборку.
Я подумаю, но там это скачивание автоматизировано и при запуске надо в конфиг-файле менять имя файла с геофабрик.
источник

V

Vascom in OpenStreetMap RU
Либо делать несколько инстансов полных репозиториев omim, а это по 4ГБ на харде на каждый.
источник

PG

Pavel Gavrilov in OpenStreetMap RU
Главный затык - это организация цикла sleep в основном процессе, который бы проверял и подсчитывал завершения дочерних процессов.
источник

V

Vascom in OpenStreetMap RU
У них это внутри. Лезть в питонячий код я не хочу и не умею.
источник

V

Vascom in OpenStreetMap RU
У меня обёртка на bash.
источник

PG

Pavel Gavrilov in OpenStreetMap RU
Я как раз только про обертку. Если процесс скачивания ФО и процесс сборки части ФО запускаются отдельными процессами, можно их параллелить в нужных местах.
источник

V

Vascom in OpenStreetMap RU
Pavel Gavrilov
Я как раз только про обертку. Если процесс скачивания ФО и процесс сборки части ФО запускаются отдельными процессами, можно их параллелить в нужных местах.
Нет, это один процесс.
источник

AI

Alexander Istomin in OpenStreetMap RU
building with ~12 edges... built up of about ~260 nodes O.o
источник