Microwulf: Design


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.

Microwulf design 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:

Microwulf schematic

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