Ring Configuration

 

 

This is not the fastest, but certainly the safest and cheapest clustering method.

 

Console connector

I started with a small piece of perfboard. A male 25 pin "D" connector is pressed into one side, and a female 25 pin "D" connector on the other. A little epoxy cement can be used to bond the connector to the board if you wish.    Alternately:  The nine wires could extend out several feet to the FEMALE connector, eliminating the PC board, and perhaps make life easier when you make cluster changes. 

Pins 1, 14, 16, 17, 13, 12, 10, 11 and 25 on one connector are connected to the corresponding pins on the other (pin 1 to pin 1, pin 14 to pin 14 etc.). I used wirewrap wire but any small gauge will do.

I used a wire length of 2 feet between nodes, but the type of machine you are using may dictate how far apart they are. Better to make measurements now to avoid having to start over. Placement in whatever room you will use may also be a consideration, but try to keep lengths as short as practical.

Nine wires are connected to the male (console) connector at pins 2 through 9 plus 25 (ground). The other end of these are connected to a second 25 pin male D except they go to the inputs for node 1. These are pins 1, 14, 16, 17, 13, 12, 10, 11 and 25. Connect pin 2 from the console connector to pin 1 on the node 1 connector, and so forth.

The configuration looks like this:

The last connector only has the 8 out wires plus ground. This loops back to the female connector on the little connector board you made (thus making it a "ring"), so you will need as many male connectors as you have nodes, PLUS one to loopback to the female connector on the perfboard (or cable, if chose that method).

Radio Shack has 25 pin male "D" connectors 2761547 for $1.69 and a 90 foot spool of #22 stranded wire 2781218 for $4.39 (enough for 10 feet of cluster cable).

Hints

Keep in mind that if your program is well written, only a small amount of data (results of an equation perhaps) need be transmitted.

The slowest node will determine the speed of the ring, no matter where it is placed.

The worst case use of a ring configuration is Global Shared Memory (a memory pool that is common to all nodes) as it requires the most communication.

In ANY type of cluster, if it is communicating, it is robbing computational time.

Using a hydraulic analogy, if you have 100 gallons of water going through a 10 foot pipe, then extend the pipe to 100 feet, there is still 100 gallons per minute going through the pipe. It just takes longer for the water to reach the end. If you add more nodes, the time to complete the ring is greater, but the bytes per second remains the same.