.: Latest News :. .:News in Pictures:.




Horoscope Recipes

Weekly SectionMarker



Pakistan's Internet Magazine
Herald




Weather

Dawn Classified

Cowasjee Ayaz Mazdak Review Dawn Magazine Young World Images

DAWN - the Internet Edition Next Story



Science.com

September 25, 2004



Your own super- computer



By Osman Naeem


IT was thought at one point that to build a supercomputer is a near impossible task, best left to those computer scientists who have dedicated their lives to such accomplishments. But what if you were told that this is no longer true?

Supercomputing or HPC (high-performance computing) can now be achieved using a cluster of regular machines, standard PCs in fact, and off-the-shelf components. Sounds hard to believe, but this is indeed true. This article should help towards the understanding of cluster supercomputers, by giving examples and applications, and eventually lead towards building your own.

What is a cluster?


It is a group of computers connected by a high-speed network that work together as a single, powerful machine. However, it is not just any network of machines. They have to be set up to share tasks and work together in parallel. A ‘Beowulf’ cluster is the most common type of setup for such computing. This is a high-performance massively parallel computer built primarily out of off-the-shelf hardware, running a free-software operating system and interconnected by a private high-speed network. Beowulf was the name given to such a system, first introduced by Tom Sterling and Don Becker in 1994 within NASA. Thomas Sterling has explained that the name “Beowulf” was originally intended only to designate the project and not the system itself. “Beowulf” was an allusion to the Scandinavian folk tale of the hero who killed the monster Grendel, a similar story to that of “David and Goliath”, where the underdog triumphs against all odds.

Why build it?


Simply put, a cluster of computers can help you solve bigger problems faster. Clusters rely on splitting a problem into smaller, parallel problems to achieve over all faster results. The biological model for parallel computing is the human brain, which contains many computational elements, many of which are active and are occupied with numerous unrelated tasks at the same time. As with the brain, parallel computation achieves its performance through the connection of a large number of relatively simple units.

Clusters use slower processors to achieve fast computation. The components used are off-the-shelf, as compared to the expensive and highly specialized technology used in supercomputers, which makes clustering affordable in universities.

Parallel computing


Parallel processing is this capability to conduct simultaneously a large number of computing functions offering significant advantages in terms of speed and capacity. Parallel computing is accomplished by splitting up a large computational problem into smaller tasks that may be performed individually by multiple processors.

For example, the addition of two very long vectors, A and B, can be performed by two processors if one of them adds the first half of vector A to the first half of vector B, while the second adds the second half of vector A to the second half of vector B. While this theoretically halves the time needed to solve the problem, the resulting vector, C, is now split across two different processor memories.

Computational problems may be parallelized in a variety of ways. Parallelization may be accomplished by decomposing the data (as in the vector addition example above), by decomposing functionality so that one processor performs one type of operation while other processors simultaneously perform different operations, or by decomposing both the data and the functionality.

There are some problems which are very obviously parallel, such as brute-force cracking of encryption keys. However, most other problems can also be split and solved in parallel, to enable the problem to be solved more efficiently.

Parallel computing is analogous in many ways to mass production. They are each a collection of techniques for organizing processing to take advantage of economies of scale.

However, a critical fact about parallel computing is that it is scalable! This means it is always possible to build a more powerful machine by simply adding more processors.

Applications of high-performance computing are numerous. Design of aircraft, prediction of weather, simulation of physical phenomena, from the subatomic structure of particles to the large scale structure of the universe. And even animated special effects for movies. The rendering of certain scenes in the movie Titanic were performed on a cluster of Linux-based machines. In fact, ray tracing (method to render photo-realistic images) has gained much from clusters.

Ray tracing is a computationally demanding task, which may consume hours or even days of processing time. The time taken is determined by the size, geometry, reflectiveness of the objects rendered, and the desired quality of the rendering.

Parallel processing is beneficial as it can reduce this time taken to render images. It enables the different tasks of ray tracing to be split between different processors, to achieve speed-up, as well as distribute data which can not fit on a single machine.

This means that a single image which is too large to fit on a single PC can now be rendered using multiple computers, hence enabling far more complex images to be rendered.

Linux-based Beowulf clusters have become popular supercomputers at several US national laboratories, government agencies and universities. It has recently been reported that a certain global oil giant is saving millions of dollars by replacing a costly IBM supercomputer with high-end parallel clusters running Linux. The company uses a supercomputer to render detailed 3-D images of the seafloor from terabytes of data.

Supercomputing


Cluster supercomputers are appealing because of their ubiquity, scalability and price. As processors get faster, with larger memories and on-chip caches, the performance of each individual node increases.

Simultaneously, with the continuing improvement in networking, disk space, and memory performance, Beowulf supercomputers continue to rise as an exceptional method of supercomputing. The scalability of such systems further increases the attraction for using a Beowulf cluster.

In June 2001, 33 in the top 500 supercomputer list were Beowulf supercomputers. Today this number is much more. In fact, four of the fastest supercomputers on this list today are clusters!

How to build


There are numerous resources available to get one started on building a personal Beowulf. From books to computer magazines to the endless resources available on the internet, there is a lot of literature on building a cluster. There is also some commercial software available for clustering and cluster management, though one can implement and set up personal clusters with some Linux savvy and hardware knowledge. Check out the main Beowulf site at and the book Beowulf Cluster Computing with Linux edited by Thomas Sterling to get started. And hang on for a continuation of this article which will give some tips and techniques learnt from the actual implementation of a cluster supercomputer in Pakistan.

The author is a Technical Officer at Comstech’s Centre for Frontier Technologies, Islamabad, and has recently built a cluster supercomputer



Top of Page Next Story

Seprater
Contributions
Privacy Policy
© DAWN Group of Newspapers, 2005