Institute of Theoretical Physics, University of Wrocław

One of the main difficulties faced by modern physics is a barrier associated with finding analytic solutions to, sometimes seemingly easy, problems. Some of these problems can be analysed numerically with a good accuracy - using computers. Recent rapid development of technology, which allows us to explore more and with better precision, is described best by the Moore’s law. The law describes exponential increase in time of number of transistors used in integrated circuits [1]. Unfortunately, benefits of using computers in physics interfere with high cost of building and maintaining supercomputers. Cheaper, but less professional solution is building Beowulf clusters [2].

Computer clusters

Beowulf cluster is a multi computer architecture, which is capable of performing parallel computations [3]. Usually, this type of cluster consists of one computer, which is a server node and a number of computers, which are client nodes. All computers are connected into a Local Area Network (LAN) using a switch. Such a system can also be connected to the Internet, which allows users to have remote access to the cluster. The main node is a server for a group of programs controlling the work of the client nodes, while client nodes have the minimum number of software needed to connect to main node and to solve problems. This type of solution is beneficial, because all the nodes used in the architecture can be ordinary PCs. Nowadays PCs are so popular, that building a Beowulf cluster is relatively inexpensive. The cost of maintenance is also low and if one of the nodes is damaged it can be easily replaced with another PC. Expensive supercomputer components are not required. Beowulf uses Linux as an Operating System. All necessary software are free, which makes such a solution more affordable. Of course, Beowulf cluster has also a few negative aspects. Because we are operating a number of fully valuable computers, they consume a lot of energy. Moreover, Beowulf built with many nodes will also need plenty of space. Nevertheless, it is a perfect solution to satisfy needs and financial limitations of a group of students.

"Winnie-the-Pooh" cluster

[caption id="attachment_229" align="aligncenter" width="225"]Winnie-the-Pooh cluster Figure 1: Winnie-the-Pooh cluster[/caption]

To build our cluster we used secondhand computers donated by a local company. We were given 5 PCs, which unfortunately had different hardware configuration.

Screen Shot 2013-07-04 at 17.00.33

We were also given a 24-port switch from the resources of our university. On each node we installed Ubuntu Server 2.6.32 and following software

Screen Shot 2013-07-04 at 17.00.49

Performance tests

In order to test "Winnie-the-Pooh" cluster efficiency we run a program that uses capabilities of parallel programming. We used the Message Passing Interface (MPI) communication protocol. The program is an implementation of the Ising model. All measurements were taken using unix time program(user value), 10 times per each number of nodes and taking the average value.

[caption id="attachment_238" align="aligncenter" width="300"]"Winnie-the-Pooh" cluster efficiency Figure 2: "Winnie-the-Pooh" cluster efficiency[/caption]

The second test we performed on the cluster was designed to verify its node-to-node communication abilities. To serve such purpose we used program generating Mandelbrot fractals [4]. Given desired coordinates, zoom and definition the output gives us a bitmap with a fractal. The default definition of 1280x720 pixels. Graphical effect is presented below.

[caption id="attachment_235" align="aligncenter" width="300"]Mandelbrot fractal Figure 3: Mandelbrot fractal[/caption]

The algorithm computes iterations of complex sequence, given by the equation: $latex z_{i+1} = z_i + c$, where c is a complex constant. The program generates proper colour by analysing the radius of convergence for given point and number of iterations. Each node computes these values for separate parts of the image and saves it to a file. Then, once again using MPI protocol, each node sends the data to master node, where proper colours in RGB scale are fitted.

Transferred files weight only about 2 MBs and using the time utility we are hardly able to observe any decrease in efficiency, comparing to the earlier graph:

[caption id="attachment_234" align="aligncenter" width="300"]"Winnie-the-Pooh" cluster efficiency Figure 4: "Winnie-the-Pooh" cluster efficiency[/caption]

However the further analysis with gprof program let us observe, that communication functions take from 4% of time (2 nodes active) up to 11% (all nodes active). It is certainly satisfying efficiency for this simple type of computing cluster.

Application

The purpose of constructing such a device was purely educational. Everyone involved in the process had a good chance of gaining a lot of knowledge from general linux environment usage, through hardware know-how and finally to real parallel programming. As the project got completed our interest in Beowulf clusters grew. It is a cheap and efficient way of obtaining your own mini-supercomputer. Even though the "Winnie-the-Pooh" does not provide with extraordinary computational power it has inspired us to undertake more innovative plan and build another Beowulf cluster. This time using much cheaper and more efficient single-board computers.

References

[1] G.Moore. Cramming more components onto integrated circuit. Electronics magazine, 38:3, 1965.

[2] J.Hall. Foreword,[in:] T. Sterling: Beowulf Cluster Computing with Linux, pages 5–6. MIT Press, Cambridge, second edition, 2003.

[3] D.Eadline J.Radajewski. Beowulf howto. http://ibiblio.org/pub/ Linux/docs/HOWTO/archive/Beowulf-HOWTO.html.

[4] J.W.Milnor. Dynamics in One Complex Variable (Third Edition), Annals of Mathematics Studies 160. Princeton University Press.