2009-10-06 56 views
2

有谁知道计算机集群如何用于日常应用,例如视频游戏?计算机集群可用于普通日常应用吗?

我想建立一个计算机集群,它可以在群集上运行应用程序,这些应用程序并不是专门为计算机集群设计的,并且仍然会看到性能提高。一种用途是视频游戏,但我也想利用增加的计算能力来运行大型虚拟机网络。

回答

3

如果你有一个为单核编写的程序,在四核处理器上运行它不会对你有帮助(除了一个核心可以用于该程序)。例如,我有Visual Studio在这台机器上的多个内核上进行编译,但是链接是在一个内核上完成的(而且速度很慢)。为了使用多个内核,我必须运行一些可以使用多个内核或运行多个独立程序的东西。

集群就是这样,只有更多。机器之间的所有通信都是明确的,并且必须编入英寸。您可以使用群集执行某些操作(请参阅Google的map-reduce算法),但它们确实需要特殊的编程和工作。

典型的集群用于专门化机器(例如,一个可能是数据库服务器,一个是Web服务器),或者同时运行大量程序。

7

它不会帮助,特别是在视频游戏的情况下。你必须围绕群集构建;集群不能在你身边工作。

无论如何,视频游戏需要低于50ms的输入和响应响应时间,而网络传播只会破坏您可能看到的任何性能增益。另一方面,视频处理从集群中获益良多,因为任务本质上是面向并行化的。它不需要用户输入,输出只能根据批处理过程进行测量。

0

不幸的是,除非你有一些相当聪明的操作系统/软件设计 - 简单地通过集群将程序连接在一起并希望获得更高性能不太可能 - 尤其不适用于视频游戏。为了在集群中运行的东西获得更高的性能,您必须对其进行编程,否则会出现一个很好的变化,您会看到性能下降而不是增加。

1

您将无法轻松地在群集上运行视频游戏,除非它已经设计为可在多台机器上运行。我没有听说过这样的比赛。创建一个虚拟服务器场可能会有一些好运,但我怀疑它很容易让它完美运行。如果你对此感兴趣,一个例子就是亚马逊的EC2服务。他们提供按小时“租”的虚拟机。在幕后,我认为他们拥有一个提供所有这些虚拟机的巨大群集。