коллеги! Я писал собственный фреймворк для Apache Mesos 0.22.1 на чистом Python (используя их API), потому что у нас очень специфические требования, которые не обрабатываются другими фреймворками (такими как Marathon, например).
Мы собираемся запустить несколько заданий MPI из Mesos (все они тоже написаны на Python (с использованием mpi4py))
Но меня остановили в самом начале, потому что кажется, что мастер Mesos убивает mpiexec сразу после его запуска. mpiexec только пишет "убийство всех заданий..." и потом умирает.
Вот мы собираемся запустить несколько заданий MPI из Mesos (все они тоже написаны на Python (с использованием mpi4py))
Взгляните на код моего фреймворка (он довольно простой и имеет гораздо больше общего с этим: https://github.com/apache/mesos/tree/master/mpi ):
if cpus < CPUS or mem < MEM:
print "Declining offer due to too few resources"
driver.declineOffer(offer.id)
else:
tid = self.mpdsLaunched
self.mpdsLaunched += 1
print "Accepting offer on %s to start mpd %d" % (offer.hostname, tid)
task = mesos_pb2.TaskInfo()
task.task_id.value = str(tid)
task.slave_id.value = offer.slave_id.value
task.name = "task %d " % tid
cpus = task.resources.add()
cpus.name = "cpus"
cpus.type = mesos_pb2.Value.SCALAR
cpus.scalar.value = CPUS
mem = task.resources.add()
mem.name = "mem"
mem.type = mesos_pb2.Value.SCALAR
mem.scalar.value = MEM
uri = task.command.uris.add()
uri.value= parser_config.get_option("PATH_TO_DEPLOY_SCRIPT")
task.command.value = "mpiexec -n 3 test_mpi.py -u"
tasks.append(task)
print "Replying to offer: launching mpd %d on host %s" % (tid, offer.hostname)
driver.launchTasks(offer.id, tasks)
Видите ли, я пытаюсь запустить mpiexec напрямую из Mesos, и это не дает никакого результата. Кстати, чтобы бороться с проблемой, я пробовал:
1. To launch some bash script from Mesos, which will then start mpiexec ( no result )
2. To start
nohup mpiexec -n 3 test_mpi.py -u &
3. To put some delays after mpiexec run:
mpiexec -n 3 test_mpi.py -u && sleep 30 && echo "Yeah!"
Но во всех этих случаях результат одинаков: mpiexec убивает mesos master с безумным упорством.
Может у кого была похожая проблема? Благодарю вас!