张量流图像引起的问题LD_LIBRARY_PATH

时间:2017-06-27 01:18:53

标签: gpu dcos

我已经安装了DC / OS v1.8.4,目标节点有gpu资源并且还安装了nvidia驱动程序,我尝试在mesos容器中部署tensorflow,但是失败了,mesos的stderr中只有一条错误消息:

mesos-containerizer: error while loading shared libraries: libmesos-1.0.1.so: cannot open shared object file: No such file or directory

但我可以成功部署其他服务,例如nginx,wordpress(也在mesos容器中)

问题可能是由张量流图像引起的,在其父图像CUDA中,它重置LD_LIBRARY_PATH:

ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64

在OpenDCOS中,在mesos-agent启动之前,它将其执行程序的环境变量LD_LIBRARY_PATH设置为“/ opt / mesosphere / lib”,以便执行程序可以找到必要的so文件,但在上面的情况下,LD_LIBRARY_PATH由tensorflow重置,所以它未能启动!

任何人都知道OpenDCOS如何处理这个问题?修改这些公共CUDA图像?

1 个答案:

答案 0 :(得分:0)

GPU仅在DC / OS 1.9 +

中得到官方支持

有关让GPU在1.8中工作的(不支持的)说明,请参阅我在DC / OS邮件列表中对此问题的回答: https://groups.google.com/a/dcos.io/d/msg/users/HEgcUfRRqzk/inIBmapMCQAJ

此外,在容器映像中为1.9之前的集群设置LD_LIBRARY_PATH也存在一个已知问题(尽管它通常表现为缺少的libssl.so库)。

在您的情况下,CUDA容器正在设置LD_LIBRARY_PATH,它覆盖了DC / OS依赖的LD_LIBRARY_PATH设置以查找它的库文件。这显然是DC / OS中的一个错误,并且已经在1.9中修复。最好(不支持)的解决方法是运行

sudo ldconfig /opt/mesosphere/lib

在所有节点上将/opt/mesosphere/lib放入默认库路径中。您必须在每次重新启动时重做此操作(或者)将/opt/mesosphere/lib添加到/etc/ld.so.conf.d/下的文件中以使其持久(可能是/etc/ld.so.conf.d/dcos.conf?)。

这个解决潜在问题的JIRA可以在这里找到: https://issues.apache.org/jira/browse/MESOS-7027