下一页 上一页 目录

5. Linux 主机的附加处理器

尽管这种方法最近不太受欢迎,但对于其他并行处理方法来说,几乎不可能通过使用 Linux 系统来托管附加并行计算系统,从而实现如此低的成本和如此高的性能。问题是可用的软件支持非常少;您几乎完全要靠自己。

5.1 Linux PC 是一个好的主机

一般来说,附加并行处理器倾向于专门执行特定类型的功能。

在因您在某种程度上要靠自己而感到沮丧之前,了解以下情况是有帮助的:尽管让 Linux PC 适当地托管特定系统可能很困难,但 Linux PC 是少数几个非常适合此类用途的平台之一。

PC 作为主机有两个主要原因。第一个原因是廉价且易于扩展的能力;诸如更多内存、磁盘、网络等资源可以很容易地添加到 PC 中。第二个原因是易于接口。不仅 ISA 和 PCI 总线原型卡随处可见,而且并行端口在完全非侵入式接口中提供了合理的性能。IA32 独立的 I/O 空间还通过在单个 I/O 端口地址级别提供硬件 I/O 地址保护来促进接口。

Linux 也是一个好的主机操作系统。完整源代码的免费提供以及大量的“黑客”指南显然是巨大的帮助。然而,Linux 还提供了良好的近实时调度,甚至还有一个真正的实时 Linux 版本,网址为 http://luz.cs.nmt.edu/~rtlinux/。也许更重要的是,在提供完整的 UNIX 环境的同时,Linux 可以支持为在 Microsoft DOS 和/或 Windows 下运行而编写的开发工具。MSDOS 程序可以使用 dosemu 在 Linux 进程中执行,dosemu 提供了一个受保护的虚拟机,可以真正运行 MSDOS。Linux 对 Windows 3.xx 程序的支持甚至更直接:诸如 wine 之类的免费软件,http://www.linpro.no/wine/,可以充分模拟 Windows 3.11,以便大多数程序可以在 UNIX/X 环境中正确有效地执行。

以下两节给出了我希望在 Linux 下支持的附加并行系统的示例……

5.2 你用 DSP 处理了吗?

高性能 DSP(数字信号处理)处理器市场蓬勃发展。尽管这些芯片通常被设计为嵌入在特定应用系统中,但它们也是出色的附加并行计算机。为什么?

尽管一些声卡和调制解调器包含 Linux 驱动程序可以访问的 DSP 处理器,但真正的回报来自使用具有四个或更多 DSP 处理器的附加并行系统。

由于德州仪器 TMS320 系列 http://www.ti.com/sc/docs/dsps/dsphome.htm 长期以来一直非常受欢迎,并且构建基于 TMS320 的并行处理器非常简单,因此有相当多的此类系统可用。TMS320 既有仅支持整数的版本,也有支持浮点运算的版本;较旧的设计使用某种不寻常的单精度浮点格式,但新型号支持 IEEE 格式。较旧的 TMS320C4x(又名 'C4x')使用 TI 特定的单精度浮点格式可实现高达 80 MFLOPS 的性能;相比之下,单个 'C67x' 将为 IEEE 浮点计算提供高达 1 GFLOPS 单精度或 420 MFLOPS 双精度的性能,使用一种名为 VelociTI 的基于 VLIW 的芯片架构。不仅可以轻松地将一组这些芯片配置为多处理器,而且在单个芯片中,'C8x' 多处理器将提供一个 100 MFLOPS IEEE 浮点 RISC 主处理器以及两个或四个整数从 DSP。

最近在许多附加并行系统中使用的另一个 DSP 处理器系列是亚德诺半导体 http://www.analog.com/ 的 SHARC(又名 ADSP-2106x)。这些芯片可以配置为 6 处理器共享内存多处理器,无需外部胶合逻辑,并且也可以使用六个 4 位链路/芯片配置更大的系统。大多数大型系统似乎都面向军事应用,而且价格有点昂贵。然而,Integrated Computing Engines, Inc.,http://www.iced.com/,制造了一个有趣的小型双板 PCI 卡套装,名为 GreenICE。该单元包含 16 个 SHARC 处理器阵列,并且能够使用单精度 IEEE 格式提供约 1.9 GFLOPS 的峰值速度。GreenICE 的成本低于 5,000 美元。

在我看来,附加并行 DSP 真的应该得到 Linux 并行处理社区的更多关注……

5.3 FPGA 和可重构逻辑计算

如果并行处理的全部意义在于获得最高的加速,那么为什么不构建定制硬件呢?好吧,我们都知道答案;它成本太高,开发时间太长,即使我们稍微更改算法也会变得毫无用处等等。然而,最近在电可重编程 FPGA(现场可编程门阵列)方面的进步已经否定了大多数这些异议。现在,门密度足够高,以至于可以在单个 FPGA 内构建一个完整的简单处理器,并且重新配置(重新编程)FPGA 的时间也已降至一个合理的水平,即使从算法的一个阶段转移到下一个阶段,重新配置也是合理的。

这些东西不适合胆小者:您将不得不使用诸如 VHDL 之类的硬件描述语言进行 FPGA 配置,以及编写低级代码来与 Linux 主机系统上的程序进行接口。但是,FPGA 的成本很低,特别是对于处理低精度整数数据的算法(实际上,是 SWAR 擅长处理的东西的一个小子集),FPGA 可以以几乎与您可以向它们提供数据的速度一样快地执行复杂的操作。例如,基于简单 FPGA 的系统在搜索基因数据库方面产生了优于超级计算机的时间。

还有其他公司生产合适的基于 FPGA 的硬件,但以下两家公司代表了一个很好的例子。

Virtual Computer Company 提供各种使用动态可重构的基于 SRAM 的 Xilinx FPGA 的产品。他们的 8/16 位“虚拟 ISA 原型板”http://www.vcc.com/products/isa.html 低于 2,000 美元。

Altera ARC-PCI(Altera 可重构计算机,PCI 总线),http://www.altera.com/html/new/pressrel/pr_arc-pci.html,是一种类似类型的卡,但使用 Altera FPGA 和 PCI 总线接口而不是 ISA。

许多设计工具、硬件描述语言、编译器、路由器、映射器等都以仅限对象代码的形式提供,这些代码在 Windows 和/或 DOS 下运行。您可以简单地在主机 PC 上保留一个带有 DOS/Windows 的磁盘分区,并在需要使用它们时重新启动,但是,许多这些软件包可能可以使用 dosemu 或诸如 wine 之类的 Windows 模拟器在 Linux 下工作。


下一页 上一页 目录