运行时间基准

这里是阐明我们所提出的方法的易用性与性能的一个基本的、初步的基准。我们的实验台上只有两台机器:Amun 是一台本地 Linux 的机器,运行的是 Debian linux。Ipc256 运行的是 Windows 2000 Professional。

各个节点的硬件规格如下:

Ipc256 的规格

处理器:  P4 1.70 GHz
RAM:  256 MB
操作系统:  Windows 2000 Professional
硬盘:  40 GB IDE
网卡:  Realtek Semiconductor Co. Ltd. RTL-8139 Fast Ethernet


Amun 的规格

处理器:  P4 2.40 GHz Hyper Threading
RAM:  2048 MB
操作系统:  Debian Woody
硬盘:  2x approx. 40 GB IDE, several NFS mounts
网卡 1:  Syskonnect (Schneider & Koch) SK-98xx V2.0 Gigabit Ethernet
网卡 2:  Realtek Semiconductor Co., Ltd. RTL-8139 Fast Ethernet


我们选择了一个多进程之所以使用术语“进程”,是因为它使用了 fork())应用程序作为基准,它不做任何事情,只是连续不断地使用不同的种子数值计算 Fibonacci 数字。它的目的并不是做有意义的计算,而是为我们的解决方案提供一个易于理解的说明。在下载一节中有压缩文件,下载这些文件可以查看其源代码。

程序分为两部分。第一部分派生 2^5 = 32 个子进程。为此它使用了系统调用 fork()。这样就使得 openMosix 可以将那些进程分布到参与集群的所有节点中去。在第二部分执行实际的计算。

我们将此程序运行了四次,取其平均值。下面的表给出了结果。

表 2. 多进程程序运行时间结果

宿主  执行时间单位为秒)  注释 
Amun ta = 436.25 本地运行
Ipc256 ti = 778.75 本地运行
Both tb = 285.25 先在 Amun 上运行,然后迁移到 Ipc256

查看这些结果,您会观察到单台 PC 完成那个工作需要多长时间。Amun 比 Ipc256 稍快一些,但是同时使用两台 PC 获得的效率绝对是最高的。如果不仅是一台而是很多 Windows PC 加入到集群,这个效率可能还会更高。

使用下面的公式计算开销:

Overhead = tb/ta + tb/ti - 1

在该例中,我们的试验所产生的开销是 2.01%,接近理论最优值。

通过这一基准,我们可以得出这样的结论:要最大限度地受益于此类集群,最好的方法就是划分作业或者应用程序。使用参数化调用parameterized invocation) 是更常见的一个策略,使用不同的参数派生同一个程序的多个实例。

POV-Ray 的渲染工厂renderfarm)是参数化调用的一个示例。渲染程序的每一个实例都取得一部分场景并构建出一个完成的帧。重复此过程,直到所有场景都被取完。


相关内容

    暂无相关文章