прогоном билдов и тестов.
Конкретно: математические эксперименты, которые выполняются от часа до 3, а серия заданий может выполняться 12+ часов.
Что я хочу: написать небольшой конфиг по типу вот такого:
servers.json
{[['name': 'DevOps.amazon1',
'ip': '128.128.256.256',
'ssh-key': 'asdsadiados8d'],
['name': 'DevOps.amazon2',
'ip': '128.128.256.255',
'ssh-key': 'aisu9s2i222i'], ....
]
}
tasks.json
{[
['command': 'python xgboost_train.py', 'num':1],
['command': 'python collect_results.py', 'num':2]
]}
experiments.json
{[[ 'num': 1,
'description': 'Тестирую, насколько быстро обучается Иксджибуст с obvioustrees',
'params': { 'tree': 'obvious', 'max_iter': 10000, 'min_split_val': 0.8, 'output': 'results_1.txt'}],
[ 'num': 2,
'description': 'Тестирую, насколько быстро обучается Иксджибуст с obvioustrees и немного другой функцией потерь',
'params': { 'tree': 'obvious', 'max_iter': 10000, 'min_split_val': 0.8, 'loss_function': 'quadratic_mean', 'output': 'results_1.txt'}],
], ........
]}
потом запустить его на ноутбуке, а он уже сам зайдёт на серваки, запустит задания считаться в параллельных потоках (например, 4 потока на сервак, по числу GPU), а потом сам соберёт результаты и вернёт на ноутбук или сложит на 1 сервер.
В чудесном OpenDataScience уже подсказали
* Mesos
* Yarn
* Luigi
* Sacred
Что вы можете ещё подсказать? какие ещё есть инструменты для решения этой задачи?
Ещё FGLab подкинули
возьми луиджи, а таски отправляй руками. мне кажется если это не многоразовая задача, будет удобнее всего.
Ещё варианты?
Обсуждают сегодня