使用coLinux与openMosix构建异构集群(1)(6)
运行时间基准
这里是阐明我们所提出的方法的易用性与性能的一个基本的、初步的基准。我们的实验台上只有两台机器: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)是参数化调用的一个示例。渲染程序的每一个实例都取得一部分场景并构建出一个完成的帧。重复此过程,直到所有场景都被取完。
评论暂时关闭