VirtualGLでリモートのOpenGLアプリをぬるぬる動かす

提供: Eospedia
2019年5月12日 (日) 13:03時点におけるKttn (トーク | 投稿記録)による版

移動: 案内検索

実行環境

サーバー

Ubuntu 16.04.6 LTS

  • 3.6 GHz Intel Xeon E5-1650
  • 64 GB 2133 MHz DDR4
  • NVIDIA GeForce GTX 1080 8 GB x 4台
    • Driverバージョン 418.74
    • CUDAバージョン 10.1

クライアント

macOS Mojave 10.14.4

  • Mac mini (Late 2012)
    • 2.3 GHz Intel Core i7
    • 16 GB 1600 MHz DDR3
    • Intel HD Graphics 4000 1536 MB
  • XQuartx 2.7.11

インストール

サーバー側

クライアント側

実行

クライアント側(Mac)で、新規ターミナルを起動。そこで、

(client)$ /opt/VirtualGL/bin/vglconnect -s <ユーザー名>@<サーバーipアドレス>

により、サーバーへsshログインする。

このとき-sオプションをつけないとVGLの通信が暗号化されないので注意。

今回はサーバーが研究室のLANの外にあるため、暗号化している。暗号化の代償として、描画速度が遅くなる。

(試しに一瞬だけ-sオプションを外して暗号化をなくして以下を実行すると、glxgearsの動きが目に見えて速くなった)

実験としてglxgearsを動かしてみる。

(server)$ /opt/VirtualGL/bin/vglrun glxgears

-sによる暗号化の代償で、期待したほど速く動いてくれない。それでもvirtualglを使わない場合と比べればマシではある。

重めの3D OpenGLアプリ UCSF Chimeraを動かしてみた。

(server)$ /opt/VirtualGL/bin/vglrun chimera

chimeraのコマンドラインで適当にpdbをfetchして描画してみる。

(chimera)$ open 2zwh

嗚呼!割とぬるぬる動く!-sオプションのせいで遅くなりすぎるのではと心配したが、意外となんとかなった。

さらに、以下によりvglrunでbashを起動すると、そのbashターミナルの中で起動したOpenGLアプリは全てVirtualGLが描画を手伝ってくれ、描画が高速になる。

(server)$ /opt/VirtualGL/bin/vglrun bash
(server)$ chimera

vglrunをいちいち打たなくてよくなり、楽。

総括

研究室のLAN外にあるサーバーでも、VirtualGLを使えば、重めの3D描画アプリもぬるぬる動かせることがわかりました。