Jesli już mamy „domowy superkomputer” na jednym procesorze, to jak można poszerzyć naszą jednoprocesorową implementację tak, żeby było więcej procesorów (PC) ? Poniżej jest schemat wieloprocesorowego superkomputera, jak sobie go wyobrazałem w 70-tych latach ubiegłego stulecia. Rysunek przejąłem z jednego z mych starych artykułów pod HOME. W centrum jest sieć, której topologia jest izomorficzna z topologią 5-kostki. Każdy punkt na obwodzie koła reprezentuje switch, który ma na celu dystrybucję i przyjmowanie pakietów danych (antionów).
Procesory i switche po obwodzie koła są adresowane według elementów kostki (C2 )5 . Idąc wzdłuz koła adresujemy punkty zgodnie z wartosciami kodu Graya, czyli w kolejności 0,1,3,2,6,7,… 16 . Następnie łącząc przez środek koła adresy różniące się w jednym bicie otrzymamy schemat wg. rysunku.
Kiedyś (lata 70-te ubiegłego stulecia) jeszcze nie było Ethernetu, ani sieci IP, ale juz wtedy pojawiły się obwody scalone i pomyślałem, że powyzszy schemat mozna zrealizować jako jeden wielowarstwowy układ scalony. Jak łatwo zauważyć, przekrzyżowaną topologię (C2 )5 można ułożyć do pięciu powierzchni (warstw), sklejonych wzdłuz brzegów. Tak, żeby na warstwach nie było skrzyzowań. Dzisiaj można taki schemat zrealizowac jednym tanim GigaEthernetowym switchem z 32 portami i podłączonymi 32 komputerami PC. W domu niekoniecznie 32 portów i niekoniecznie 32 komputerów. Jak to wygląda wewnątrz switcha nas nie interesuje, to sprawa konstruktorów switchów. Nam chodzi tylko o to, żeby transmisję danych można było łatwo naprogramować i żeby ona była jak najszybsza. W ten sposób też zapewne rozmyślają współcześni projektanci superkomputerów, wykorzystując setki switchów i tysiące portów i procesorów.
Mając rozwiązaną koncepcję domowego superkomputera, z GigaEthernetowym switchem, z adresacją wykorzystującą adresy IP (albo Ethernet), można się zabrać do modyfikacji wcześniej opisanego kernela dla jednoprocesorowej implementacji.