同事们! 我正在用纯Python(使用他们的API)为apachemesos 0.22.1编写自己的框架,因为我们有非常具体的需求,而其他框架(例如Marathon)无法处理这些需求。在
我们将从Mesos开始一些MPI作业(它们都是用Python编写的(使用mpi4py))
但我在一开始就被阻止了,因为看起来,Mesos master在mpiexec启动后就杀死了它。mpiexec只写“killing all jobs…”然后就死了。在
下面我们将从Mesos开始一些MPI作业(它们都是用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)
你看,我试着从Mesos直接启动mpiexec,但是没有结果。 顺便说一下,为了解决这个问题,我试过:
^{pr2}$但在所有这些情况下,结果都是一样的:mpiexec被mesos大师以疯狂的毅力杀死了。在
也许有人也有类似的问题? 谢谢您!在
哇!:-) 伙计们,没人会相信,但当我把mpiexec改成mpirun时,一切都很好! 一、 现在我的绳子是这样的:
我很好奇到底有什么区别?在
相关问题 更多 >
编程相关推荐