Distributed Computing

Distributed Computing

By Timothy Lightfoot, Brianne Moreland, Alexander Neises, Michael Rakestraw, and Hayden Reed

A Simple Distributed System

    To define a distributed computing network we need to keep in mind the functionality of the single system; the CPU, RAM, and harddrive working together to form a computational machine. The single system is still present in the distributed computing network. The difference between the two systems being that the distributed system has multiple, single systems working in unison. A strict definition of a distributed computing network is given below:

No common physical clock

    The clock in a CPU is a signal that tells the CPU to change from its present state. Because the computers in a distributed computing network must have separate physical clocks, they must run independently of each other.

No shared memory

    Each computer in used in the distributed computing network must belong to the constituent machines and each machine must operate its own memory allocations.

Geographical separation

    The computers must be separated by a physical space. Although multi-core CPUs and multi-CPU computers are able to be used in a distributed computing network, the individual computers can not be called a distributed system. Because of the space requirement needed, a network needs to be between the computers. This is most commonly in the form of a WAN (wide area network) or LAN (local area network). Its through this network that the computers will share the data needing to be processed.

Autonomy and heterogeneity

    The computers used in the distributed computing network must operate apart from each other. They will operate on their own individual tasks assigned to them. By doing this they assist in completing the goal of the distributed system.

    To better understand the functionality of a distributed computing network, the figure below shows a graphical representation of a common layout of a distributed system.

    In a distributed computing system there is a specific hierarchy of computers that needs to be followed in order for the distributed network to function. This hierarchy begins with the Submit Machine then the Central Manager, and last the Execute Machines.

    The Submit machine is where a user will load a project that needs to be computed as well as retrieve the completed project. This machine can be any machine in the pool but it only will only send tasks to the Central Manager. The Submit machine acts as the input/output of the distributed computing network.

    The Central Manager is the controller for the pool. It is responsible for queuing and storing future job requests and assigning jobs to the pool. How it determines where to send job assignments depends on the current state of the pools workstations. The Central Manager receives data from the individual pool workstations, including CPU usage and keyboard downtime. With this information the Central Manager can determine if there is a user at the workstation. If there is, no jobs in the pools queue will be sent to the busy workstation. However, if the Central Manager has no evidence of user input, it will send a job to that workstation.

    The Execute machines are what make up the bulk of the distributed network. They are the machines that do the computations. The more execute machines there are in the pool, the greater the ability to compute data.

Examples of distributed systems

Render farms

Distributed computing is very useful when it comes to rendering large high quality films or video games. Hundreds of computers will be pooled together and their resources used for the sole purpose of rendering frames at a quick pace, instead of waiting hours to render a single frame when used on one computer.

Works Cited

A. D. Kshemkalyani and M. Singhal, Distributed Computing Principles, Algorithms, and Systems. 2008.

The Condor Team, "Condor: High Throughput Computing," vol. 2012, 2012.

Tim Lightfoot,
Dec 6, 2012, 3:42 PM