案例研究

大型 Ad Hoc 网络中传播效应的参数化建模

作者:Carlo Kopp

在 Monash CSSE MPME 集群上执行的规模最大、最复杂的参数化模拟,是一个研究项目的一部分,该项目旨在研究微波传播性能对大型 ad hoc 微波网络的影响。

Ad hoc 网络是一种移动网络的类别,其中不使用固定基础设施;网络中的每个移动系统都充当其对等方的路由器。这种网络的拓扑结构是动态的;它随着网络内的车辆彼此漂移进出范围而不断变化。它也会因天气影响这些车辆之间微波链路的传播而发生变化。

模拟这种行为在计算上要求非常高。要找到两个站点之间的链路,需要求解非线性微分方程以考虑大气折射。这使用多步多项式方法来解决初值问题。然后迭代使用射击法来找到折射方程的解。一旦我们知道曲线的形状,我们必须进行大气损耗计算,这需要计算由于氧共振、水蒸气共振以及云和雨中的散射造成的损耗,所有这些计算都是针对地球表面上方非常小的波束高度增量进行的。

完整的模拟包括从磁盘加载网络中车辆地理位置的数据库,搜索该数据库,其中每个车辆都与另一个车辆进行测试,以发现链路的存在,并创建链路数据库。此操作本质上与 N<+>2<+> 成正比,其中 N 是网络中车辆的数量。

一旦我们拥有链路数据库,我们就使用此数据集来解决全路径/最短路径问题,以找到连接 ad hoc 网络中每对车辆的最短路径。这种计算负载与 N<+>3<+> 成正比,并且也很耗时。然后,我们可以提取这些路由,并查看诸如特定车辆或网络中特定地面站之间的跳数等属性,以及诸如路由随时间变化的净可用性等聚合行为,因为网络的拓扑结构会发生变化。

不用说,这是一个非常苛刻的模拟。在 333MHz Pentium II CPU 上,完成数百个节点的模拟需要数小时,而完成数千个节点的模拟需要数天。

一般问题是探索网络的行为,使用不同的微波链路频率、不同的天气条件和不同的可能链路速度。由于我们尝试建模的系统非常复杂,因此只有对大范围输入参数进行全面的模拟才能产生可信的解决方案。

在这个项目的早期阶段,我设想在单个高端 Pentium II 处理器上完成这项工作。当面对如此庞大的计算量时,我不得不设计一个简化版本的预期模拟,实际上是“作弊”并使用非常简单的模型来处理传播行为。David Abramson 教授建议我改用集群——我最初非常怀疑并抵制。然而,经过多次争论,David 占了上风,我将模拟从 FreeBSD 移植到 Linux,并开发了 EnFuzion 计划脚本来运行它。

很快就显而易见,拥有 20 个 CPU 使我能够以快 20 倍的速度完成大量的计算。一旦我对集群有了信心,我就结合了精确的传播模型,并扩展了模拟的范围,以绘制出解决完整问题所需的全部频率、链路速度和天气模型。在撰写本文时,该项目实际上已完成,并且已执行约 950 次模拟运行。

集群的使用使我能够消除在传统的单处理器模拟世界中一直困扰我的性能瓶颈。EnFuzion 使用的简单脚本语言使我能够组织参数空间并高效地进行模拟,而无需坐在机器旁,等待一个作业完成才能启动下一个作业。

说我们没有遇到初期问题是不真实的。模拟必须经过彻底的调试,并且需要进行一些调整以关闭基于 X11 的屏幕显示功能。我们最初面临的最大问题是管理系统上的负载,以及调整 Red Hat Linux 安装以实现所需的可靠性。

解决负载管理问题需要一些集思广益。在这种复杂性下,跨集群中所有 20 个(后来是 28 个,最终是 60 个)CPU 执行长时间运行的作业,往往会让遇到负载饱和系统的日常用户感到沮丧。在被一群愤怒的用户“垃圾邮件”轰炸后,我向 David 建议需要一个调度程序。David 建议可以使用 UNIX renicing 机制;经过一些关于实施的辩论后,我们的系统管理员编写了一个 cron 作业来完成这项工作。愤怒的用户被安抚了,模拟继续成功进行。

最大的困难来源是运行在根节点上的 Red Hat 网络协议栈缺乏健壮性。这个问题最终得到了解决。对于非常大的集群,根服务器必须具有坚如磐石的可靠性。

总之,集群的使用将一个本可能成为模拟噩梦的情况转变为相对简单的练习。由于模拟不适合向量化,因此 Cray Y-MP 不是解决这个困境的可行方案,暂且不考虑预算问题。最终,问题通过使用一对装有运行免费 Red Hat Linux 的商用 Pentium 处理器的 19 英寸机架来解决。

在我最初的怀疑之后,这变成了一个“打脸”的例子——毕竟老板确实更了解!集群工作非常有效,对于不易向量化的问题,它可能是唯一可行的解决方案。

Carlo Kopp 出生于澳大利亚西部的珀斯,1984 年毕业于西澳大利亚大学,获得电气工程一等荣誉学位。1996 年,他完成了计算机科学硕士学位,最近在莫纳什大学提交了同一学科的博士学位。他曾在 UNIX 系统编程、性能工程和系统管理方面提供咨询。他现在在莫纳什大学教授计算机体系结构。
© . All rights reserved.