在DC / OS上启用GPU资源(CUDA)

时间:2016-10-31 16:23:10

标签: gpu mesos dcos

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

2 个答案:

答案 0 :(得分:3)

不幸的是,DC / OS在1.8中没有正式支持GPU(实验支持GPU将在下一版本中提及,如下所述:https://github.com/dcos/dcos/pull/766)。

在下一个版本中,只有Marathon才能正式启动GPU服务(节拍器(即批量作业))。

关于spark,与Universe捆绑在一起的spark版本可能还没有为内置的Mesos提供GPU支持。 Spark本身即将推出:https://github.com/apache/spark/pull/14644

答案 1 :(得分: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。应使用选项-allow_gpu_resource

  3. 启动Aurora调度程序

    注意。

      

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