Grid Computing Unit 2: Key Concepts Summary
What is a Grid?
A collection of machines, often called nodes or resources, that contribute computing power, storage, or other capabilities to a shared system. Some resources are available to all users, while others have specific restrictions.
Types of Grid Resources
Computational Resources
The most common grid resource is computing cycles from processors, which vary in speed, architecture, software platform, and associated factors like memory and storage.
There are three primary ways to use computation resources on a grid. The first and simplest is running an existing application on an available grid machine rather than locally. The second involves using applications designed to split work into separate parts that execute in parallel on different processors. The third is running an application that needs to be executed many times across different grid machines.
Scalability measures how efficiently multiple processors are used. When twice as many processors make an application complete in half the time, this is called perfect scalability. However, scalability may be limited if applications can only be split into a finite number of parts or if interdependencies create resource contention.
Storage Resources
A grid providing integrated data storage is sometimes called a data grid. Each machine typically contributes some storage, whether memory attached to the processor or secondary storage like hard drives.
Memory offers fast access but is volatile, making it best suited for caching or temporary storage for running applications. Secondary storage can be used in more interesting ways to increase capacity, performance, sharing, and reliability.
Many grid systems use mountable networked file systems such as Andrew File System (AFS), Network File System (NFS), Distributed File System (DFS), or General Parallel File System (GPFS), each offering varying performance, security, and reliability features.
Storage capacity increases by using multiple machines with a unifying file system, allowing individual files or databases to span several devices. This eliminates size restrictions imposed by standard operating system file systems and provides a single uniform name space, making it easier for users to reference data without regard to its exact location.
Data striping can be implemented by grid file systems to create the virtual effect of faster data transfer rates than any individual disk drive can provide. This is particularly important for multimedia data streams or collecting large quantities of data at high rates from sources like CAT scans or particle physics experiments.
Grid file systems can also implement journaling for more reliable data recovery after failures, along with advanced synchronization mechanisms to reduce contention when data is shared and updated by many users.
Communication Resources
Communication capacity within and external to the grid is another important resource. Internal communications are essential for sending jobs and required data to grid points. When jobs require large amounts of data that may not reside on the machine running the job, available bandwidth becomes a critical resource that can limit grid utilization.
External communication access, such as to the Internet, proves valuable for applications like search engines. Machines may have separate connections to the external Internet that do not share the same communication path, adding to total available bandwidth.
Redundant communication paths help handle potential network failures and excessive data traffic. In some cases, higher speed networks must be provided to meet job demands. Grid management systems can show grid topology and highlight communication bottlenecks, information that can be used to plan hardware upgrades.
Software Resources
Grids may have software installed that is too expensive to place on every machine. Jobs requiring this software are sent to specific machines where it happens to be installed, saving significant expenses when licensing fees are substantial.
Some software licensing arrangements permit installation on all grid machines but limit the number of concurrent installations. License management software tracks usage and prevents exceeding the licensed number. Grid job schedulers can be configured to take software licenses into account, balancing them against other priorities or policies.
Platform Resources and Artificial Attributes
Grid platforms often have different architectures, operating systems, devices, capacities, and equipment. Software designed for a particular hardware type and operating system may not run on others, so these attributes must be considered when assigning jobs.
Administrators may create artificial resource types used by schedulers to assign work according to policy rules. For example, some machines may be designated only for medical research, identified with a medical research attribute. The scheduler would then only assign jobs requiring that designation to those machines. Machines may also be designated to exclude certain uses, such as military purposes, and jobs requiring that classification would not be assigned to them.
Applications and Jobs
Although various grid resources may be shared and accessed, they are typically used through an executing application or job. Application refers to the highest level of work on the grid, though the term job is sometimes used equivalently.
Applications may be broken down into any number of individual jobs, which can be further broken down into subjobs. Other terms such as transaction, work unit, or submission mean the same thing as a job.
Jobs are programs executed at an appropriate point on the grid. They may compute something, execute system commands, move or collect data, or operate machinery. A grid application organized as a collection of jobs is usually designed to have these jobs execute in parallel on different machines.
Jobs may have specific dependencies preventing parallel execution in all cases. They may require specific input data that must be copied to the machine where the job will run. Some jobs may require output produced by certain other jobs and cannot execute until those prerequisite jobs have completed. Jobs may also spawn additional subjobs depending on the data they process, creating a hierarchy of jobs and subjobs. Finally, results from all jobs must be collected and appropriately assembled to produce the ultimate output for the application.
Grid Organization and Scale
Grids can be built in all sizes, from just a few machines in a department to groups of machines organized hierarchically spanning the world.
The simplest grid consists of a few machines with the same hardware architecture and operating system, connected on a local network. This homogeneous grid has fewer considerations and may be used for specialized applications. Machines are usually in one department without requiring special policies or security concerns. Some would call this a cluster implementation rather than a grid.
The next progression includes heterogeneous machines, offering more types of resources. Such a grid likely includes scheduling components. File sharing may still be accomplished using networked file systems. Machines may include systems from multiple departments but within the same organization, referred to as an intragrid.
As the grid expands to many departments, policies may be required for grid usage, including what kinds of work are allowed and at what times. There may be prioritization by department or by application types that should have access to grid resources. Security becomes more important as more organizations are involved. Sensitive data in one department may need protection from jobs running for other departments. Dedicated grid machines may be added to increase quality of service rather than depending entirely on scavenged resources.
The grid may grow geographically in organizations with facilities in different cities. Dedicated communication connections or VPN tunneling over the Internet may connect the different parts. Security increases in importance once the bounds of any given facility are traversed. The grid may grow to be hierarchically organized to reduce contention implied by central control, increasing scalability.
Over time, a grid may grow to cross organization boundaries and be used to collaborate on projects of common interest, known as an intergrid. The highest levels of security are usually required in this configuration. The intergrid offers the prospect for trading or brokering resources over a much wider audience, with resources potentially purchased as a utility from trusted suppliers.