Microwulf is designed to be a cost-efficient, high performance, portable, "personal" Beowulf cluster. The basic idea is to pack a lot of processing power into a small volume using multicore CPUs.
To do so, we use motherboards with
a smaller form-factor
(like Little Fe)
than the usual ATX size,
and we space them using threaded rods
(like this cluster)
and scrap plexiglass, to minimize "packaging" costs.
By building a "double decker sandwich" of four microATX motherboards, each with a dual core CPU and 2 GB RAM (1 GB/core), we can build a 4-node, 8-core, 8GB multiprocessor small enough to fit on one's desktop, powerful enough to do useful work, and inexpensive enough that anyone can afford one. Since our microATX motherboards have an on-board Gigabit Ethernet adaptor, that is the least expensive way for the processors to communicate. To keep the two cores from competing for this adaptor, we add a second Gigabit Ethernet adaptor in each motherboard's PCI-Express slot. We then rely on Open MPI (see below) to spread the communication load across these two adaptors. Then we connect all the adpators via an inexpensive 8-port Gigabit Ethernet switch. This provides a Gigabit Ethernet link's worth of bandwidth for each core. |
The bottom motherboard acts as the "master" node, which is configured to boot from Microwulf's single hard disk (and/or DVD-ROM drive). The other three motherboards are configured as "server" nodes, and boot from the network using PXE.
The following schematic diagram shows the interconnections between Microwulf's components:
At present, Microwulf is running Ubuntu Linux.
Open MPI will sense the network adaptors in a node, and then round-robin the communications between them. To try to help Open MPI spread the load on both the sending and receiving side, we configured the on-board adaptors to be part of a 192.168.2.x subnet, and the PCI-e adaptors to be part of a 192.168.3.x subnet.
Joel Adams > Research > Microwulf > Design