Here is what I understood from the "Grid terms and concepts" unit:
First, I learned that a grid is essentially a collection of machines (often referred to as nodes, hosts, or clients) that pool their resources together to be used collectively.
The unit explained that these shared resources mainly fall into a few different categories:
• Computation: The most common resource is processor cycles, which allow us to run applications remotely, split work into parallel tasks, or execute an application many times across different machines. The efficiency of using multiple processors on the grid is known as scalability.
• Storage: The grid can integrate data storage to form a "data grid". It uses unified file systems to vastly increase storage capacity and utilizes techniques like data striping to speed up data transfers, and mirroring or journaling for data reliability and recovery.
• Communications: Because jobs often require moving large amounts of data around, having strong network bandwidth both within the grid and externally to the Internet is a critical resource.
• Software and Licenses: Grids can save organizations money by installing expensive software on specific machines and using license management software to ensure only the allowed number of copies are running at the same time.
• Special capabilities and policies: Grid machines often have different operating systems and architectures, and administrators can set policy rules like restricting a node to only be used for "medical research" that the grid must respect when assigning work.
I also learned how work actually gets executed on the grid. Work is organized into high-level applications, which are then broken down into smaller jobs and subjobs. These jobs are usually designed to run in parallel, though sometimes they have to wait for other jobs to finish because of data dependencies.
To manage all of this work, the grid relies on a few key concepts:
• Job Schedulers (or resource brokers): These are responsible for automatically finding the most appropriate machine to run a specific job based on the current available resources. Because scheduling optimally is a very difficult math problem, schedulers often use heuristics (rules) to find the best schedule.
• Scavenging: This is a really interesting feature where the grid uses the idle time of standard machines to run low-priority grid jobs in the background, completely unobtrusively to the normal user.
• Reservations: If an application has strict deadlines and requires a guaranteed quality of service, resources can be reserved in advance, much like booking a conference room.
Finally, I understood that grids can scale up into different topologies. A simple grid with identical machines on a local network is often just called a cluster. When a grid connects different types of machines across multiple departments within a single organization, it is known as an intragrid. If the grid expands even further to collaborate across entirely different organizations, it becomes an intergrid, which requires the absolute highest levels of security.