Board logo

标题: Linux 和 Xdmx 的分布式多线程支持(2) [打印本页]

作者: look_w    时间: 2018-5-18 21:43     标题: Linux 和 Xdmx 的分布式多线程支持(2)

Xdmx 错误和解决 如果命令没有成功完成,可能看到这样的错误:
清单 3. 示例 Xdmx 错误消息
1
2
3
4
5
6
7
8
(II) dmx: ===== End of Summary =====
(!!) dmx: The default visual for screen #0 does not match any of the
(!!) dmx: consolidated visuals from Xinerama (listed above)
(!!) dmx: The default visual for screen #1 does not match any of the
(!!) dmx: consolidated visuals from Xinerama (listed above)
(Fatal Error) dmx: dmxConnectionBlockCallback: invalid screen(s) found
XIO:  fatal IO error 104 (Connection reset by peer) on X server ":1.0"
      after 0 requests (0 known processed) with 0 events remaining.




这是 Xdmx 的少数明显不足之一 —— 神秘的错误消息。产生这个特殊的错误消息是因为客户机和控制节点上存在不兼容的 GXL 配置。虽然这些错误消息可能有点儿神秘,但 Xdmx 的功能总是可以提供简单化。请在命令中添加选项 -noglxproxy,并再试一次:
清单 4. 使用 noglxproxy 的示例 Xdmx 命令
1
2
3
4
5
6
7
startx `which twm` --         \
  /usr/bin/X11R6/Xdmx :1      \
  -display control_node_ip:0  \
  -display client_node_1_ip:0 \
  -ignorebadfontpaths         \
  +xinerama                   \
  -noglxproxy




成功了:没有问题了。应当注意到,当 Xdmx 失败时,它造成奇怪的键盘问题。这不是您的问题。我注意到在 Xdmx 失败时,Ctrl、Shift 和 Alt 键无法正常工作。最后的解决方案就是重新启动窗口管理器,然后一切就会正常。
三个客户机节点,三个显示器现在已经有了两个节点的设置,我们再添加第三个客户机节点。从运行级 3 上,在第三个节点上用 xinit 启动一个干净的 X 会话。在 X 会话启动后出现的 xterm 中输入 xhost + contrl_node_ip。然后修改 Xdmx 的启动命令,包含第三个节点,如清单 5 所示。
清单 5. 带有 noglxproxy 和第三个节点的示例 Xdmx 命令
1
2
3
4
5
6
7
8
startx `which twm` --         \
  /usr/bin/X11R6/Xdmx :1      \
  -display control_node_ip:0  \
  -display client_node_1_ip:0 \
  -display client_node_2_ip:0 \
  -ignorebadfontpaths         \
  +xinerama                   \
  -noglxproxy




向顺序的水平配置中添加另一个节点真的很容易。下面的截屏显示了三个客户机节点正在显示来自另一篇 developerWorks 文章的马赛克图片:
图 1. 三节点配置四个客户机节点,2x2 显示如果采用不同的显示器拓扑会如何?使用 2x2 方阵显示如何?Xdmx 也有答案:使用针对目标设置的几何指示器的配置文件选项。例如,如果想在左上角使用 1024x768 显示,在右上角使用 1400x1050 显示,在左下角使用 1600x1200 显示,在右下角使用 1024x768 显示,那么可以使用以下配置文件:
清单 6. 示例 Xdmx 配置文件
1
2
3
4
5
6
7
8
# xdmx.conf  - Xdmx configuration file
# quad config setup 2x2
virtual quad_config {
  display "client_node_upper_left_ip:0"   @0x0;
  display "client_node_upper_right_ip:0"  @1024x0;
  display "client_node_lower_left_ip:0"   @0x768;
  display "client_node_lower_right_ip:0"  @1024x768;
}




从控制节点上用以下命令运行以上设置:
清单 7. 使用配置文件的示例 Xdmx 命令
1
2
3
4
5
startx `which twm`  -- /usr/bin/X11R6/Xdmx :1 \
  -configfile  xdmx.conf                      \
  -config  quad_config                        \
  -ignorebadfontpaths                         \
  -noglxproxy




选择这个物理显示拓扑,是因为只有这样我才能把显示单元堆叠在一起,尽量形成连续桌面的感觉。下面是 Goole 地图上圣弗朗西斯科地区在这个 2x2 分布式多线程设置上的显示情况:
图 2. 四节点配置高级配置和显示墙请记住,显示器不需要物理地放在一起。下面是一个针对编程的配置的截屏,这是一个使用 Ion3 窗口管理器的四个独立桌面:
图 3. 四节点配置请注意最左边的显示。在忙着消灭更多 bug 时,用户可以把窗口移动到这个显示上看一眼,同时余光注意着其他窗口,防止分心。使用带有位置和几何指示器的 Xdmx 配置文件可以创建满足工作环境的任意数量的拓扑。
3-D 处理设置Chromium 是一个专门设计的包,允许 Xdmx 设置中的每个节点独立地处理 OpenGL 信息,并只处理在这个节点上显示的信息。这提供了一种利用客户机节点的处理能力(和图形卡)来迅速渲染大型 3-D 环境的绝好方法。请参阅下面的参考资料获得关于 Chromium 和配置系统以提高 3-D 显示的更多信息。
显示墙Xdmx 的主要用途,是在专门研究大型数据集的可视化的大学和研究机构中,用作大型显示系统。这些设置常常使用 Chromium 进行复杂数据集的加速 3-D 显示,设置包含客户机节点和专用机器上的相同硬件。本文更侧重于桌面用户以及如何使用现有硬件来创建分布式多线程设置。对于一些大型显示墙(16000x4800 如何?)和自动配置显示节点的精彩示例,请参阅 。
结束语有了为 Linux 桌面设置 Xdmx 多线程显示的经验,不必投资新硬件,就可以极大地提高生产率。使用开放源码的 Xdmx 和 Linux,可以容易地向显示配置中添加机器。用巨大的桌面尺寸打动朋友们吧 —— 甚至可以建立自己的显示墙。编写更多代码、消灭更多 bug,




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0