2016-11-18 6 views
0

Marathonを使用してnvidia-dockerコンテナを起動する最善の方法は何ですか?基本的には、JSONの引数としてシェルのcmdを提供するか、コンテナフィールドを使用してパラメータを指定することによって、Marathonにコンテナを起動する2つの方法があります。しかし、私は、JSONの "cmd"フィールド以外のnvidia-dockerと通常のドッカーを使って起動コンテナを指定する方法を見つけられませんでした。またMarathonを使用してnvidia-dockerコンテナを起動する

引数のようにCMDを使用して起動する欠点は、このようなものだから何です:「コンテナ」フィールドを使用して対

{ 
"id": "myimage", 
"cmd": "nvidia-docker run -it myimage bash", 
"cpus": 1, 
"mem": 512.0, 
"instances": 3, 
} 

{ 
"id": "myimage", 
"cpus": 1, 
"mem": 512.0, 
"instances": 3, 
"container": { 
    "type": "DOCKER", 
    "docker": { 
     "image": "myimage", 
     "network": "HOST" 
    } 
} 
} 

答えて

2

あなたはnvidia-dockerを使用していると仮定すると、 GPUリソ​​ースを活用するには、nvidia-dockerを使用する必要はありません。これは、GPU support in Mesosが既にMesosコンテナライザーを使用してそれを行うために必要なすべてを提供しているからです。最近のバージョンのMesos(> = 1.0)とMarathon(> = 1.3は--enable_features gpu_resourcesで始まります)が必要です。

何らかの理由でこれが該当しない場合は、最初の例のようにcmdフィールドを設定してnvidia-dockerに直接電話することができます。これにはいくつかの注意点があるかもしれませんが、おそらくMesosアイソレータをバイパスして、ドッカーデーモンと直接通信するためです。

+0

「GPUリソ​​ースを活用するためにnvidia-dockerを使用していると仮定すると、nvidia-dockerをまったく使用する必要はありません」というのはちょっと混乱します。私はgpuサポートをmesosコンテナライザーとgpu_resourcesフラグを有効にして動作させることができました。私はnvidia-dockerパッケージをインストールしていますが、dockerフラグを設定したり、nvidia-dockerを明示的に呼び出すことはありません。このパッケージをインストールする必要がありますか?ありがとう。 – MarkNS

+0

いいえ、このパッケージがインストールされている必要はありません。唯一の依存関係は[Nvidiaカーネルドライバ](http://mesos.apache.org/documentation/latest/gpu-support/#external-dependencies)ですが、 CUDAツールキットをインストールすることは理にかなっています。 – nfnt

関連する問題