Spb Software House Assembles the First Pocket PC "Supercomputer" Ever
This is what the Pocket PC cluster looks like. The rack shown
here contains eleven Pocket PC devices that acted as nodes of
the supercomputer. You can also see the infrared ports of the
devices transmitting and receiving data.
As a part of our continuing research at Spb Software House,
we have assembled and tested a computing cluster based on Pocket PC devices.
Twelve Pocket PC devices have been joined in a cluster to perform distributed
calculations - the devices share the load of a complex calculation. The
concept was to compare the performance of several Pocket PC devices linked
into a cluster with the performance of a typical Pentium II-class desktop
computer.
The research we constantly carry out is focused on the
Pocket PC platform, its possible uses and its abilities. As part
of this research, we have created
Spb Benchmark,
a tool that is intended to measure the performance of various Pocket PC
devices and compare them with one another. During our work on Spb Benchmark,
we became curious about how a Pocket PC would compare with an
average desktop system. Thus, the idea to build a small Pocket PC-based
supercomputer was born.
We did not have any plans on using Pocket PCs for
actual calculations; instead, we wanted to see if it was possible to use
Pocket PCs in distributed computing and measure the performance
of the platform in this area. Although there is no practical application for
this technology at the present time, we're optimistic that one will present
itself eventually. Distributed computing is just starting to have practical
applications in the desktop world, so we feel this will trickle down to the
mobile devices world eventually. After all, history has many examples of
ideas that have not seemed to be of any importance at the time they were
born, but became very useful afterwards.
The "3n + 1" Problem
The "3n + 1" problem
involves starting with a particular integer n, and repeatedly
performing the following operation:
If (n is even) divide n by 2;
Else multiply n by 3, and add 1.
For example, starting with the number 6, we get the following series:
6, 3, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1...
The 4,2,1 loop repeats over and over, so it's usually convenient to terminate
the process once it is entered. All numbers tested so far eventually hit this
loop, although it has not been proven that all numbers do.
Why a cluster? It is obvious that a single Pocket PC
device cannot be compared to a desktop PC since the latter was designed around
the idea of being plugged into an electrical socket - power consumption is not
an issue on a desktop PC. However, if we could unite a number of Pocket PC
devices and make them act as a single computer, we could reach a certain level
of performance, high enough to be compared to those of a "big" computer.
Therefore, we have created a cluster of twelve Pocket PC
devices.
The idea is quite simple: there are eleven
Pocket PCs that act as nodes of the cluster, and these devices
actually perform all the calculations. There is one additional device that is
controlling the others, giving them small pieces of information to process,
and collecting the results of each node's calculations. Our cluster was
solving the "3n + 1" problem - it is a well-known mathematic problem
that has not been solved yet. It is simple enough and very suitable for
parallel calculations. We tried neither to solve this problem nor to achieve
any significant results - we just wanted to see how a cluster of
Pocket PCs would do that.
The Pocket PCs communicate with each other via IrDA using
built-in infrared ports. Of course, communication via infrared is quite slow,
but the problem we were "solving" did not require much communication between
the nodes and the controlling Pocket PC. We could use Bluetooth
or TCP/IP communication instead, but every Pocket PC has an
infrared port and we did not want to involve any additional hardware.
It turns out that even a small cluster consisting of twelve
nodes is still slower than a mainstream Pentium II-class desktop PC. However,
the performance of Pocket PC devices is quite enough to deal with
simple problems and their most important benefit is mobility. This makes
Pocket PC platform very promising if used in distributed systems
dealing with such problems as positioning and measurement.
However, stellar performance is not the point that one can
expect from a distributed system based on Pocket PC devices. We
have already received some comments from high-performance computing
specialists that are very enthusiastic about further development on
distributed computing based on mobile devices.
Mikhail Chalabine from Programming Environments Laboratory at
Linköping University, Sweden, commented: «Let us remember about the
mobility Pocket PCs provide. A great deal of research has been done in the
area of ad-hoc networking, and we see this project as an attempt to extend
these with the idea of building dynamic clusters on the fly, where no spatial
boundaries exist for distributed computations.
We envision such systems as more localized analogue to the large
computational GRIDs. We believe there are tasks for such dynamic
architectures and we expect the first steps by Spb Software House to contribute
this particular direction of High Performance Computing development, bringing
new issues into the sharper focus.»
About Spb Software House
Spb Software House is a software development company, specializing mainly in Windows Mobile software for Pocket PCs. Founded in 1999, the company offers advanced software solutions for use in a wide range of applications.