Friday, 27 May 2016

Distributed Computing

  • A distributed computing system is basically a collection of processors interconnected by a communication network in which each processor has its own local memory and other peripherals, and the communication between any two processors of the system takes place by message passing over the communication network
  • Loosely coupled systems
  • Examples: Cluster, Grid, P2P, Cloud computing, IOT
  • Uses middleware, which enables computers to coordinate their activities and to share the resources of the system.
  • Single integrated computing facility from user perspective
  • Can include heterogeneous computations where some nodes may perform a lot more computation, some perform very little computation and a few others may perform specialized functionality (like processing visual graphics)
  • Using which efficient scalable programs can be designed so that independent processes are scheduled on different nodes and they communicate only occasionally to exchange results
  • Cloud computing is also a specialized form of distributed computing, where distributed SaaS applications utilize thin clients (such as browsers) which offload computation to cloud-hosted servers (and services).
  • Additionally,cloud-computing vendors providing (IaaSand PaaS) solutions may internally use distributed computing to provide highly scalable cost-effective infrastructure and platform.

Cluster Computing

  • A computer cluster is a group of loosely or tightly coupled computers that work together closely so that in many respects it can be viewed as though it were a single computer
  • Better performance and availability and more cost‐effectiveness over single computer with same capabilities
  • Loosely / tightly coupled computers
  • Centralized Job management & scheduling
  • Coined in 1987

Grid Computing:

  • Grid is a collection of a large number of loosely coupled, heterogeneous, and geographically dispersed systems in different administrative domains
  • Generally owned by multiple organizations that is coordinated to allow them to solve a common problem
  • Loosely coupled computers
  • Distributed Job management & scheduling
  • Originated (early 1990s)
Vision: To enable computing to be delivered as a utility
This vision is most often presented with an analogy to electrical power grids, from which it derives the name “grid”
  • The key emphasis of grid computing was to enable sharing of computing resources or forming a pool of shared resources that can then be delivered to users.
  • Focus of grid computing was limited to enabling shared use of resources with common protocols for access
  • a particular emphasis was given to handle heterogeneous infrastructure-typically a university data center.
  • "coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations.” -Ian Foster & Steve Tucker -> "Anatomy of Grid”
  • There are also very specific differences between a grid computing infrastructure and the features one should expect from a cloud computing infrastructure
  • Grid (three-point checklist)?
    • Co-ordinates resources that are not subjecttocentralized control
    • Using standard, open, general purpose protocols and interfaces
    • To deliver nontrivial quality of service

Advantages -Distributed computing

Inherently Distributed applications:
  • Several applications are inherently distributed in nature and require distributed computing system for their realization
Information Sharing among Distributed Users:
  • In a distributed computing system, information generated by one of the users can be easily and efficiently shared by the users working at other nodes of the system .
Resource Sharing:
  • Sharing of software resources such as software libraries and databases as well as hardware resources such as printers, hard disks, etccan also be done in a very effective way among all the computers and the users of a single distributed computing system.
Extensibility and Incremental Growth:
  • It is possible to gradually extend the power and functionality of a distributed computing system by simply adding additional resources (both hardware and software) to the system as and when the need arises .
  • Incremental growth is very attractive feature because for most existing and proposed applications it is practically impossible to predict future demands of the system.
  • Addition of new resources to an existing system can be performed without significant disruption of the normal functioning of the system.
Shorter Response Times and Higher Throughput:
  • The multiple processors of the distributed computing system can be utilized properly for providing shorter response times and higher throughput than a single processor centralized system.
  • Another method often used in distributed computing systems for achieving better overall performance is to distribute the load more evenly among the multiple processors by moving the jobs from currently overloaded processors to lightly loaded ones
Higher Reliability:
  • Reliability refers to the degree of tolerance against errors and component failures in a system.
  • A reliable system prevents loss of information even in the event of component failures
  • An important aspect of reliability is availability, which refers to the fraction of time for which a system is available for use.
Better Flexibility in Meeting User’s Needs:
  • A distributed computing system may have a pool of different types of computers, in which case the most appropriate one can be selected for processing a user’s job depending on the nature of the job.
  • Better Price-Performance Ratio:
  • With the rapidly increasing power and reduction in prize of the microprocessors, combined with the increasing speed of communication network, distributed computing systems potentially have a much better price performance ratio than a single large centralized system.