计算机集群可以用于一般日常应用吗?

时间:2009-10-06 19:06:16

标签: cluster-computing distributed-computing

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

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

4 个答案:

答案 0 :(得分:7)

它无济于事,特别是在视频游戏的情况下。你必须围绕集群建立;群集无法解决您的问题。

无论如何,视频游戏在输入和响应方面需要不到50毫秒的响应时间,而网络传播只会破坏您可能看到的任何性能提升。另一方面,视频处理从群集中获益很大,因为任务本质上是针对并行化的。它不需要用户输入,输出仅根据批处理进行测量。

答案 1 :(得分:3)

如果你有一个为单核编写的程序,在四核处理器上运行它将无济于事(除了一个核可以用于该程序)。例如,我在这台机器上的多个内核上编译Visual Studio,但链接是在一个内核上完成的(并且非常慢)。为了从多个核心中使用,我必须运行可以使用多个核心或运行多个单独程序的东西。

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

不幸的是,除非你有一些非常聪明的操作系统/软件设计 - 只需通过集群将程序连接在一起并希望获得更高的性能也不太可能 - 尤其不适用于视频游戏。为了通过在集群中运行来提高性能,你必须为它编程,否则会有一个很好的变化,你会发现性能下降而不是增加。