next up previous
Next: Research Issues Up: Bayanihan: Building and Studying Previous: Bayanihan: Building and Studying

Introduction

Bayanihan (pronounced ``buy-uh-nee-hun'') is the name of an old Filipino countryside tradition wherein neighbors would help a relocating family by gathering under the family's house and carrying it to its new location. As such, the word bayanihan has come to mean a spirit of communal unity and cooperation which makes seemingly impossible tasks possible through the concerted effort of many people with a common goal and a sense of unity. Project Bayanihan seeks to bring the bayanihan spirit to the realm of global computing by developing the idea of volunteer computing, a form of metacomputing that seeks to make it easy for even ``ordinary people'' with little technical knowledge to cooperate in solving parallel problems by volunteering their computers' processing power. By minimizing the effort and expertise required to add worker nodes, volunteer computing maximizes the potential worker pool size and minimizes setup time, making it possible to build world-wide computing networks much larger and much more quickly than possible with other forms of metacomputing.

The potentials of volunteer computing have been demonstrated by the success of projects like distributed.net, which solved the RSA RC5-56 challenge by employing over 4,000 volunteer teams world-wide, with a combined power equivalent to that of about 26,000 high-end PCs [5]. Project Bayanihan aims to take volunteer computing even further by developing web-based volunteer computing systems where programmers can write platform-independent parallel applications in Java and post them on the Web as applets so that volunteers need only a web browser and a few mouse clicks to join a computation.

The possible benefits of such web-based volunteer computing systems are many, ranging from the local to the global [13]. Being much easier and faster to install than existing metacomputing systems, these systems can allow more organizations - including companies and universities that have so far lacked the necessary expertise and time - to pool their existing workstations to provide inexpensive supercomputing facilities for research and teaching. By volunteering their resources to each other, organizations can share and barter trade processing power, creating new possibilities in global collaboration. With the appropriate economic models and mechanisms, barter trading systems can eventually turn into commercial systems where computing power becomes a commodity that people can buy, sell, or trade. When Internet set-top boxes and other information appliances become widely available, volunteer computing principles can also be used to build NOIAs - networks of information appliances - that take advantage of the under-utilized processing power of millions of CPUs sitting idle in users' homes. Ultimately, web-based volunteer computing has the potential to harness the computing power of the millions of computers on the Internet, and use them towards solving hard computational problems for worthy causes that serve the common good of local communities and the world.

In order to make these potentials a reality, however, many challenging issues need to be addressed. In this paper, we identify some of these issues, and present a flexible software framework that fully exploits Java's object-oriented features to make it easy not only for programmers to build applications, but also for researchers to study various issues and develop approaches to them. We then show how we have used this framework in these two ways, and discuss our results.


next up previous
Next: Research Issues Up: Bayanihan: Building and Studying Previous: Bayanihan: Building and Studying
Luis Sarmenta
12/9/1998