This it the English version of an article that I published on Girl Geek Dinners Italia in Italian.
At night, before going to sleep, do you turn off your computer? Do you leave it on to exchange your poetry and photos through peer-to-peer file sharing? At lunch do you activate your screen saver? Or do you leave your computer on during the day when doing a backup?
Why not give something more and collaborate with the rest of the world?
What is Distributed Computing?
Distributed computing is when many computers work together to resolve difficult problems or calculations, becoming a sort of virtual supercomputer. These projects are organized and managed all over the world by scientists, mathematicians and professors, but even you can contribute directly to their success!
There are hundreds of active distributed computing projects and the majority of them are non-profit projects that need volunteers to accomplish the project. A volunteer “donates” bandwidth, processor (CPU/GPU) time, memory (RAM) and space on their hard disk for a project.
For example, a project requires a calculation of 405 million sums. Without a supercomputer it would be impossible to complete it, or it might take years. Instead, if your computer does 20-100 sums, and mine another 100, together with other 100 computers, an army of volunteer computers manages to do it faster and with a lower cost or free for who manages the project.
The first distributed computing project is GIMPS, Great Internet Mersenne Prime Search, begun in 1996, for the search for new prime numbers. Through this project they have discovered 12 new prime numbers in the last 13 years, the most recent in September 2008: 2 37.156.667-1, a number 13 million digits long!
How it Works and How to Get Started
Distributed computing is executed through a program installed locally on your computer. This application communicates with the project servers to download data, resources and upload results. Often a middleware is used to manage more projects (and their applications) together or manage the project across multiple volunteer resources.
You’ve heard of software, the applications that you install on your computer. The hardware are peripherals that have physical space inside your computer. But what is middleware? A middleware is a layer of application that manages to manage more than one application, share resources and driver libraries between them, or manage the priority of the processes of several applications. It can be also used to manage applications and resources across several computers.
BOINC (Berkeley Open Infrastructure for Network Computing) is a platform of middleware that permits a volunteer to easily participate in distributed computing because the interaction with the projects is completely managed by it. BOINC is the most well-known and used** software with more than 1,5 million users (and 500.000 active users) on all of their projects. It was developed by Berkeley University in 2002 and it’s open source as well as LGPL.
When your computer is idle for a period that you decide (like 10 minutes), a screensaver is activated which communicates with the software installed locally so that it can proceed with the distributed computing. An alternative configuration is to give the calculations low priority so as not to impact the performance of other processes while you are working normally.
How to get started with BOINC:
- Choose a project: (there’s a list of all the distributed computing projects on Wikipedia)
- Download and install BOINC
- Insert an email address and password (the address will not be published, it serves for some communication from the team, but a way to identify you for credits and interact with the team)
- At this point your computer is assigned tasks or calculations to complete by the task manager of the project.
- Your computer will download data files and apps (if necessary) from the project server.
- When the tasks are completed, it will upload the results onto the remote project server.
- Your computer will automatically request new tasks based on your preferences.
**You can also participate in a project that does not use the BOINC platform as some are available ad stand-alone distributed computing projects, such as GridMP which is used by the World Community Grid di IBM (and has 200,000 users).
For every set of tasks completed, there is the possibility to earn credits (the appropriate number is determined by the difficulty and/or resources needs to complete them) which are added to your volunteer profile. You can also ask for more tasks and proceed.
Some interesting Distributed Computing projects
There are hundreds of active distributed computing projects all over the world – just look at the list of all the distributed computing projects on Wikipedia to see the possibilities. Many projects are overseen by universities and volunteer groups, and, seeing as BOINC is open source, a project can be started and launched by anyone!
Here are some interesting and popular projects:
- SETI@ Home – Perhaps the most well-known BOINC project, SETI@Home is the search for intelligent life outside Earth through radio telescopes.
- Combat cancer or AIDS: Compute against Cancer – Help Conquer Cancer or fight AIDS FightAIDS@Home
- Folding @ Home da Stanford University: studies protein folding, misfolding, aggregation, and related diseases. Folding @ Home
- Einstein @ Home: Uses a computer’s idle time to search for spinning neutron stars (also called pulsars) using data from the LIGO and GEO gravitational wave detectors Einstein @ Home
- or if you prefer a more entertaining approach – Project Sudoku or Chess960@Home
- or more artistic: RenderFarm@Home to render 3D graphics, The Internet Movie Project to create animated films for the public domain.
Mini-FAQ on Distributed Computing
- Is it safe? Could I be at risk for spam or viruses?
As all software downloadable through the internet, there could be some risks. For each project you will be asked to download files and executables for that particular project. Take a look at the site and the information available before deciding to participate in a project. Many projects, however, already have thousands (if not millions) of users and a strong and reliable reputation.
The relationship between the volunteer and the project is based on trust of the project and that it:
- will provide applications that don’t damage their computer or invade their privacy
- is truthful about what work is being done by its applications, and how the resulting intellectual property will be used.
- follow proper security practices, so that hackers cannot use the project as a vehicle for malicious activities
- Is there a minimum commitment to participate?
Your commitment is as you decide. You can connect one day and another no. Your participation is divided into sets of tasks, so you can complete your current tasks and then stop, or immediately continue with new tasks.
- Does it cost to participate?
Obviously there can be costs in terms of electricity consumed due to the fact that you leave your PC on to participate in distributed computing when it might be otherwise turned off. But maybe not. How many times have you left the PC “just for a moment” and then you come back a half hour later? This time (and electricity) “lost” would be much welcomed.
And bettering the world will have a cost anyway, and you want to help, right?
- Distributed computing on Wikipedia and a list of distributed computing projects
- Grid Republic : an online interface which helps in the getting started and signup process
- International Science Grid this Week – a weekly newsletter
- Volunteer @ Home – information for volunteers
- Grid Cafè – a place to learn about grid computing, brought to you by CERN.
What are you waiting for? Your computers are ready to participate!
Photo by jmv
Categories: Tech Talk