0

我有一个带有 gpu 节点 (nvidia) 的集群并部署了 DC/OS 1.8。我想启用使用 gpu 隔离在 gpu 节点上安排作业(批处理和火花)。DC/OS 基于支持 gpu 隔离的 mesos 1.0.1。

4

2 回答 2

3

不幸的是,DC/OS 在 1.8 中并未正式支持 GPU(对 GPU 的实验性支持将在下一个版本中提供,如此处所述:https ://github.com/dcos/dcos/pull/766 )。

在下一个版本中,只有 Marathon 能够正式启动 GPU 服务(Metronome(即批处理作业)不会)。

关于 spark,与 Universe 捆绑的 spark 版本可能还没有内置对 Mesos 的 GPU 支持。Spark 本身很快就会推出:https ://github.com/apache/spark/pull/14644

于 2016-10-31T17:22:34.083 回答
2

为了在 DC/OS 集群中启用支持 gpu 资源,需要执行以下步骤:

  1. 在 gpu 节点上配置 mesos 代理:
    1.1。停止dcos-mesos-slave.service

    systemctl stop dcos-mesos-slave.service

    1.2. 将下一个参数添加到/var/lib/dcos/mesos-slave-common文件中:

    # a comma separated list of GPUs (id), as determined by running nvidia-smi on the host where the agent is to be launched MESOS_NVIDIA_GPU_DEVICES="0,1"

    # value of the gpus resource must be complied with number of ids above MESOS_RESOURCES= [ {"name":"ports","type":"RANGES","ranges": {"range": [{"begin": 1025, "end": 2180},{"begin": 2182, "end": 3887},{"begin": 3889, "end": 5049},{"begin": 5052, "end": 8079},{"begin": 8082, "end": 8180},{"begin": 8182, "end": 32000}]}} ,{"name": "gpus","type": "SCALAR","scalar": {"value": 2}}]

    MESOS_ISOLATION=cgroups/cpu,cgroups/mem,disk/du,network/cni,filesystem/linux,docker/runtime,docker/volume,cgroups/devices,gpu/nvidia

    1.3. 启动dcos-mesos-slave.service

    systemctl start dcos-mesos-slave.service

  2. 在 mesos 框架中启用 GPU_RESOURCES 功能:

    2.1。Marathon框架应该与选项一起启动 --enable_features "gpu_resources"

    2.2. Aurora 调度程序应该使用选项启动-allow_gpu_resource

笔记。

任何运行具有 Nvidia GPU 支持的 Mesos 代理的主机都必须安装有效的 Nvidia 内核驱动程序。还强烈建议安装作为 Nvidia CUDA 工具包的一部分提供的相应用户级库和工具。许多使用 Nvidia GPU 的作业都依赖于 CUDA,不包括它会严重限制您可以在 Mesos 上运行的 GPU 感知作业的类型。

于 2016-10-31T17:18:24.097 回答