Grid computing software, commonly known as middleware, forms an integral part of the grid infrastructure. It forms a layer between the programs or tasks that have to be performed on the grid, and the physical machines itself.
There are many functions that the middleware is responsible for; for instance, job scheduling, parallelizing a task or even security. In short, a grid infrastructure would fail miserably without a good middleware running the show.
One of the more well-known middlewares freely available, Globus started out as an alliance for grid computing. Slowly, the middleware was developed and is now distributed under a free GNU licence.
Globus Toolkit has proved to be the most popular middleware since it is free for use. Additionally, the middleware implements many of the architecture standards that have been defined for computational grids, like OGSA (Open Grid Services Architecture) and GSI (Grid Security Infrastructure).
Globus Toolkit runs mainly on a Linux or Unix programming environment, as it is easier to modify the contents of the operating system to coincide with the middleware. Using Globus, it is possible for any user to create a grid.
gLite is another example of top grid computing software, since it forms the backbone of the LHC Computing Grid. The middleware was developed by EGEE (Enabling Grids for E-sciencE) and is widely used across the globe.
gLite uses a secure network layer superimposed upon a public network, like the Internet, to function. Since a public network is used, security within the grid infrastructure becomes of primary importance; therefore gLite has very stringent security protocols.
Each geographical unit is defined as a Virtual Organization (VO) and is authenticated by a Certificate Authority (CA) before being added to the grid. A CA can be an independent authorization entity which provides security certificates that are trusted by both parties. Once the VO is on the grid, the user interacts with the grid merely with a login and password.
Message Passing Interface (MPI)
As the name might suggest, Message Passing Interface is a mechanism for various components of a grid infrastructure to communicate with each other.
If a task is broken down into several pieces, ideally the communication that is required between the pieces should be of the bare minimum. However this is not always the case; therefore MPI was designed to allow messages to pass between the components of a grid as efficiently as possible.
The great advantage of MPI is its versatility. Although the mechanism was designed to facilitate communication and synchronicity between grid components, it can also be used on shared memory systems. Shared memory systems have a common area for storage, whilst being attached to multiple processors.
Berkeley Open Infrastructure for Network Computing (BOINC)
Originally developed to support SETI@home, BOINC has now become the top grid computing software for volunteer grid computing projects.
Volunteer grid computing projects allow individual users to donate their unused computer cycles to a big project. The first application of this system was SETI@home, where SETI scans space for possible communications from intelligent extra-terrestrial life. The process of harnessing computer cycles on individual computers for a project like this is known as cycle scavenging.