私はいくつかの古いモボを持っており、相互接続ワイヤを備えた 1 組の PCI ヘッダー カードを作成し、相互接続カードを駆動するソフトウェアを作成して、モボの 1 つが CPU と RAM にアクセスできるようにすることが可能かどうか疑問に思っていました。他?ヘッダー ボード用のデバイス ドライバーを作成してから、相互接続を利用するアプリケーションを作成するのは大変な作業になると思います。おそらく、各プロセッサで実行されるスレッドと両方の RAM セットの使用を示す簡単なデモで、32 ビット mobo 上の 2x3gb RAM を単一の 6 GB アドレス空間にマップするミニ仮想マシンを作成します。トランスレータとして機能するために、各 pci ヘッダー カードにマイクロコントローラが必要になる場合があります。
mobo にはほとんどの場合複数の pci スロットがあるため、これらの相互接続されたカードのペアを使用して、ある種の高速 beowulf クラスターで mobo をデイジーチェーン接続できるのではないかと考えています。
私は各モボにdebianを使用し、おそらく各カードにatmega128を使用し、相互接続用のリボンケーブルを2本使用します。
pci は基本的に単なる io バスなので、なぜこれが不可能なのかわかりません (しかし、かなり難しいでしょう)。
誰かアドバイスがありますか、またはこの種のことは以前に行われましたか?
アップデート:
ありがとうマーティン。あなたの言うことは理にかなっていますし、もしそれが可能であれば、それは以前にすでに行われているようにも思えます.
代わりに、「ふりをする」起動可能なストレージデバイス(ハードディスク、USBスティックなど)を使用して起動することにより、スレーブCPUを間接的に制御することは可能でしょうか? スレーブ mobo が、実際のデバイス上のオペレーティング システムによって操作されていると考える限り、動作するはずです。
これは、任意のインターフェイス (sata、ide、usb など) に拡張される可能性があります。2 台の PC を sata/ide/usb ケーブルで接続した場合 (ide リボンの一端を 1 つの mobo に接続し、もう一方の端を別の mobo に接続する)、必要なハードウェアはこれだけです。重要なのは、マスターPCでそのインターフェース用の新しいドライバーを作成することです。そのため、マスターPCがそのインターフェースをストレージデバイスとして扱うのではなく、スレーブコンピューターのダミーの起動可能なハードディスクとして駆動されます。私はこれまでデバイスドライバーをやったことがないので、これはまだかなり難しい仕事ですが、少なくともはんだごては必要ありません(私をはるかに超えているでしょう)。Linux 用のオープン ソース ide ドライバーを取得して研究し、それを肉屋にして逆に動作するものを作成できるかもしれません (データを取得するのではなく、アプリケーションは、スレーブマシンがハードディスクのようにアクセスできるようにデータをそこに置きます)。次に、基本的な Linux カーネルを使用して、マスター コンピューター上のアプリケーションからスレーブ コンピューターを起動してみることができます (解体されたマスター pc ide/sata/usb デバイス ドライバーを介して)。安全のために、私はおそらく、マスター PC の他のものに使用されていないインターフェイスをターゲットにすることで、カスタマイズしたドライバーを可能な限り分離しようとします (マスター PC は、通常は使用されない ide バスを持つすべての sata ハードディスクを使用する可能性があります。カスタム ide ドライバーを作成すると、ホスト システムで問題が発生しにくくなる可能性があります (これは sata 駆動であるため)。
このようなこと (別の PC から起動可能なハードディスクを偽造すること) がこれまでに試みられたことがあるかどうか知っている人はいますか? YouTube でかなりクールなハッカデーになるだろうが、有望であることが証明されれば、並列コンピューティングに新しい次元を追加することも真剣に考えられる.