Cluster computing 使用pci互连主板

Cluster computing 使用pci互连主板,cluster-computing,microcontroller,connect,pci,Cluster Computing,Microcontroller,Connect,Pci,我有一些旧的MOBO,我想知道是否有可能创建一对带有互连线的pci头卡,并编写一些软件来驱动互连卡,以允许其中一个MOBO访问另一个上的cpu和ram?我相信这将是一项艰巨的任务,包括为主板编写一个设备驱动程序,然后编写一个应用程序来利用互连;也许是一个简单的演示,演示每个处理器上运行的线程以及两组ram的使用,也许是创建一个迷你虚拟机,将32位mobos上的2x3gb ram映射到单个6GB地址空间。每个pci头卡上可能需要一个微控制器来充当转换器 考虑到mobos几乎总是有多个pci插槽,我

我有一些旧的MOBO,我想知道是否有可能创建一对带有互连线的pci头卡,并编写一些软件来驱动互连卡,以允许其中一个MOBO访问另一个上的cpu和ram?我相信这将是一项艰巨的任务,包括为主板编写一个设备驱动程序,然后编写一个应用程序来利用互连;也许是一个简单的演示,演示每个处理器上运行的线程以及两组ram的使用,也许是创建一个迷你虚拟机,将32位mobos上的2x3gb ram映射到单个6GB地址空间。每个pci头卡上可能需要一个微控制器来充当转换器

考虑到mobos几乎总是有多个pci插槽,我想知道这些互连的卡对是否可以用于在某种高速beowulf集群中对mobos进行daisychain

我会在每个mobo上使用debian,在每个卡上可能只使用一个atmega128,并使用两根带状电缆进行互连

pci基本上只是一个io总线,所以我不明白为什么这不可能(但这将是相当困难的)

有人有什么建议吗?或者以前做过类似的事情吗

更新: 谢谢你,马丁。你说的有道理,而且如果有可能的话,它似乎以前就已经做过了

相反,是否可以通过使用“假装”可引导存储设备(硬盘、U盘等)引导从属cpu来间接控制从属cpu?只要从机mobo认为它是由真实设备上的操作系统操作的,它就应该工作

这可能扩展到任何接口(sata、ide、usb等);如果您使用sata/ide/usb电缆将两台电脑连接在一起(将ide功能区的一端插入一个mobo,另一端插入另一个mobo),您所需的硬件就足够了。关键是在主pc上为该接口创建一个新的驱动程序,因此主pc不会将该接口视为其上有存储设备,而是将其作为从机的虚拟可引导硬盘进行驱动。这对我来说仍然是一项相当困难的工作,因为我以前从未做过设备驱动程序,但至少我不需要烙铁(这将远远超出我的能力)。我可能能够为linux开发一个开源ide驱动程序,研究它,然后对它进行切割,以创建某种相反的行为(应用程序将数据放入其中,让从机像硬盘一样访问,而不是从中获取数据)。然后,我可以使用一个基本的linux内核,并尝试从主计算机上的应用程序引导从计算机(通过被屠宰的主pc ide/sata/usb设备驱动程序)。为了安全起见,我可能会尽量隔离我的定制驱动程序,将目标锁定在主pc上不用于任何其他用途的界面上(主pc可能使用所有sata硬盘,而ide总线通常未使用,因此如果我创建了自定义ide驱动程序,可能会减少主机系统的问题,因为它是sata驱动的)


有人知道以前有没有试过类似的东西(从另一台pc上伪造一个可引导硬盘)吗?这会在youtube上成为一个非常酷的黑客,但如果它被证明是有希望的话,它也会给并行计算增加一个新的维度。

PCI总线不能接管其他CPU

您可以制作一个互连,将数据从一台机器上的程序传输到另一台机器上。以太网卡是最常见的实现方式,但对于高性能集群,有更快的直接连接,如

不幸的是,PCI比旧的ISA总线更难构建卡,您需要表面安装控制器芯片和特定的磁道布局来匹配PCI的阻抗要求。 速度超过几兆比特/秒需要了解传输线和连接电缆的特性等内容

每个mobo都将使用debian,每个卡可能只使用一个atmega128,并使用两根带状电缆进行互连

pci基本上只是一个io总线,所以我不明白为什么这不可能(但这将是相当困难的)

LOL.PCI至少是32位33MHz的总线,所以ATMEGA根本够不着

但是你的想法是:

一对带有互连线的pci头卡,并编写一些软件来驱动互连卡,以允许其中一个MOBO访问另一个上的cpu和ram[…]

这只需要一对PCI Firewire()卡(和一根Firewire电缆)就可以实现,甚至还有一个linux驱动程序可以通过Firewire进行远程调试