11.1
Distributed Computing Paradigms
11.1
What is a Paradigm?
Historically, the field of computing has gone through a series of changes in hardware, operating system platforms, networking, etc. Distributed computing ensures that computer systems are used effectively — it is a method of computer processing in which different parts of a program run simultaneously on two or more computers that are communicating with each other over a network.
The term paradigm means a pattern or a model in the study of any subject of complexity — we can identify and classify the details of the subject in accordance with these models. Advanced computing paradigms are essential to extend our ability to process information for many sectors of society, and include parallel computing, cluster computing, grid computing, cloud computing, etc. — all various forms of parallel and distributed computing.
11.2
Distributed Computing
Consider a real world case: banks follow the core banking system, so money can be withdrawn from any ATM counter. Similarly we can book railway or airline tickets online. All these are possible using a distributed computing environment. The World Wide Web (WWW) is the best example of a large distributed system.
Distributed computing is a method of computing in which large problems can be divided into many small problems which are distributed to many computers. Later, all the small results are assembled to get the desired overall solution. It reduces the time it takes to perform a large task by dividing that task among multiple computers that can work simultaneously.
In distributed computing, all the different processors have their own private, non-sharable memory — information is exchanged between processors solely on the basis of messages.
Fig. 11.1 — each node has its own private memory; nodes exchange messages over the network
11.2 a–b
Advantages and Disadvantages
| Advantages | Disadvantages |
| Economical — reduces overall computing cost | Complexities — a lot of extra programming is required to set up the system |
| Speed — spreading load across nodes reduces stress and increases speed | Security — information passed across the network can be tracked and misused |
| Reliability — the system continues to function even if one node fails | Network reliance — in case of network failure, the entire system may become unstable |
| Scalability — the number of nodes can vary according to demand | |
11.2.1
Parallel Computing
11.2.1
Serial vs Parallel Processing
Traditionally, software has been written for serial computation — run on a single computer with a single processor, where a problem is broken into a series of instructions executed one by one, sequentially. Only one instruction is executed at a time.
→CPU
Fig. 11.2 — Serial processing: one instruction stream feeds a single CPU
In parallel computing, a problem is solved by different processing units simultaneously — the problem is subdivided among various CPUs. It is a form of computation in which many calculations are carried out at the same time, on the principle that large problems can often be divided into smaller ones which are then solved concurrently. Suppose there are five men lifting a rock with a single rope, all trying to lift it in parallel — that is the essence of parallel computing.
→CPU
→CPU
→CPU
→CPU
Fig. 11.3 — Parallel processing: multiple instruction streams run on multiple CPUs simultaneously
In parallel computing, all the different processors have access to a shared memory, which can be used to share information between processors rather than explicitly sending messages.
Shared Memory
Fig. 11.4 — Memory sharing among processors in parallel processing
| Serial Computing | Parallel Computing |
| A single processor is used | Multiple processors are used with a shared memory |
| A problem is broken into a discrete series of instructions | A problem is broken into discrete parts that can be solved concurrently |
| Instructions are executed sequentially, one after another | Instructions from each part execute simultaneously on different processors |
| Only one instruction is executed on a single processor at any moment | More than one instruction is executed on multiple processors at any moment |
Some fields where parallel computing is applied: weather forecasting, nuclear sciences, aerospace engineering, etc.
Supercomputers & AADITYA
A supercomputer is simply a fast computer with a large number of CPUs. An ordinary computer uses serial processing, but a supercomputer typically uses parallel processing — instead of doing one thing at a time, it does many things at a time. AADITYA, used by the Indian Institute of Tropical Meteorology, is currently considered India's fastest supercomputer — a 790+ Tera Flops High Performance Computing System formed using an IBM iDataPlex cluster.
11.2.1 a–b
Advantages and Disadvantages of Parallel Computing
- Fault tolerance — even when one or more nodes fails, the whole system still works, with reduced performance.
- Load sharing — each user can share the computing power and storage resources of the system with other users.
- Easily expandable — it can scale to a large extent.
Disadvantages: parallel applications are much more complex than corresponding serial applications, and a program that runs on one machine may need significant changes to run properly when ported to a different computer.
11.2.2
Grid Computing
11.2.2
Computational Power Like Electric Power
Imagine that several million computers (servers, desktops, laptops, etc.) and instruments like mobile phones, telescopes, sensors, etc., owned by thousands of different people, are connected together to form a single huge powerful computer — this is grid computing. It is described as a world in which computational power (resources, services, data) is readily available like electric power — users get access to computational power just like electricity through wall sockets, with no care for where or how it is actually generated.
Computers on a grid have a program that allows unused resources (usually processing time and memory) to be used by another computer on the grid. Since the connections between computers on a grid are relatively slow, processing tasks are broken into independent parts and sent out to different computers on the grid. When a computer completes its part, it sends the results back to the server. Services over grids can be of many types — Knowledge grid, Data grid, Computational grid, etc.
Grid computing is used in disaster management, weather forecasting, market forecasting, bio-informatics, etc.
11.2.2 a–b
Advantages and Disadvantages
| Advantages | Disadvantages |
| Capable of solving larger, more complex problems in a short time | The interconnection between computers is slower and affects processing speed |
| Makes better use of existing hardware | Licensing issues across different servers/computers may affect certain applications |
| Scalable — easy to increase computing power by adding desktops or servers | |
11.2.4
Cloud Computing
11.2.4
Resources Delivered Over the Internet
Cloud computing is an emerging computing technology that uses the Internet and central remote servers to maintain data and applications — it refers to the use of computing resources that reside on a remote machine and are delivered to the end user as a service over a network.
Web-based e-mail is a classic example: providers like Yahoo!, Gmail, Outlook, etc. take care of storing all the hardware and software necessary to support a personal e-mail account. When we need to access our e-mail we open a browser, go to the e-mail client, and log in — the messages and the software that manages them are not stored on our own computer, but on the cloud, accessible from anywhere, any time given an Internet connection.
Similarly, office software (word processors, spreadsheets, etc.) and graphic software are now available over the cloud, along with private storage space for the files created. Cloud computing is a computing model where resources such as computing power, storage, network and software are combined and provided as services on the Internet in a remotely accessible fashion — named "cloud" because the information is found in a remote place, just like clouds in the sky. It is a subscription-based service requiring Internet access and an account with a cloud service provider.
11.2.4 a
Cloud Service Models
Cloud providers group their offerings into three major services: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS).
SaaS — End Users
PaaS — Application Developers
IaaS — Network Architects
Fig. 11.8 — Basic cloud computing models
1. Software as a Service (SaaS) — a SaaS provider gives subscribers access to both resources and applications; a complete application is offered as a service on demand. E.g. Google Docs: a single instance of the service runs on the cloud and services multiple end users, so nobody needs a copy of the software installed on their device. In a SaaS agreement, customers have the least control over the cloud. Offered by companies like Adobe (Creative Cloud), Microsoft (Office 365), facebook.com, etc.
2. Platform as a Service (PaaS) — a level above SaaS. A PaaS provider gives subscribers access to the components required to develop and operate applications over the Internet — the platforms used to design, develop, build and test applications are provided by the cloud infrastructure, while the customer has freedom to build their own applications on the provider's infrastructure. PaaS providers offer a predefined combination of OS and application servers such as the LAMP platform (Linux, Apache, MySql, PHP), ASP.NET, PHP, Python, etc. Examples: Google App Engine, Microsoft Azure, Force.com.
3. Infrastructure as a Service (IaaS) — deals primarily with computational infrastructure. IaaS provides basic storage and computing capabilities as standardised services over the network — servers, storage systems, networking equipment and data centre space are pooled and made available to handle workloads, with the customer typically setting up their own software on the infrastructure. Examples: Amazon Web Services, Joyent, AT&T, GoGrid.
11.2.4 b–c
Advantages and Disadvantages of Cloud Computing
| Advantages | Disadvantages |
| Cost savings — companies reduce capital expenditure and use operational expenditure instead | Security and privacy — data sent over a public network or stored on a shared disk risks being stolen or corrupted |
| Scalability/Flexibility — can start small and grow rapidly, scaling back if necessary | Lack of standards — clouds have no standards, so most clouds are unlikely to be interoperable |
| Reliability — multiple redundant sites help in disaster recovery | |
| Maintenance — the cloud service provider handles system maintenance | |
| Mobile accessible — employees who travel can access systems from anywhere | |
John McCarthy (1927–2011)
In 1961, ten years after coining the term artificial intelligence, Professor John McCarthy conceptualised sharing computer hardware resources and applications, envisioning that computing power could be supplied like gas or water, for free or at minimal cost. One of the first milestones in cloud computing history was the arrival of Salesforce.com in 1999, which pioneered delivering enterprise applications through a simple website — paving the way for specialist and mainstream software firms to deliver applications over the Internet.
11.3
Artificial Intelligence
11.3
What is Artificial Intelligence?
Artificial Intelligence (AI) is one of the latest disciplines in computer science; the first definition of AI was established by Alan Turing in the 1950s. Turing studied how machinery could be used to mimic processes of the human brain, resulting in one of the first AI publications, Intelligent Machinery. The term "Artificial Intelligence" was first coined in 1956 at the Dartmouth conference, organised by John McCarthy.
AI currently encompasses a huge variety of subfields, from general-purpose areas such as perception and logical reasoning, to specific tasks such as playing chess, proving mathematical theorems, computer vision, natural language processing, medical diagnosis, etc. It is often identified as a truly universal, interdisciplinary field of research.
11.3
The Knowledge Pyramid
Wisdom
Intelligence
Knowledge
Information
Data
Symbols
Fig. 11.9 — Knowledge pyramid
At the base of the pyramid are symbols, the basic means of representation. Data is a collection of mere symbols; while processing data we get information, and knowledge is the organised information — a piece of information that helps in decision making. The ability to draw useful inferences from available knowledge is generally referred to as intelligence. Wisdom is the maturity of mind that directs its intelligence to achieve desirable goals.
AI is the basics of developing computer programs to solve complex problems by application of processes similar to human reasoning. While successes have been achieved in modelling many biological systems, there are still no solutions to the complex problem of modelling intuition, consciousness and emotion — integral parts of human intelligence.
11.3
Turing Test Approach to AI
The Turing Test, proposed by Alan Turing, was designed to provide a satisfactory operational definition of intelligence — intelligent behaviour is the ability to achieve human-level performance in all cognitive tasks, sufficient to fool an interrogator. The computer is interrogated by a human via a teletype, and passes the test if the interrogator cannot distinguish between the computer and a human being.
To pass the total Turing Test, the computer needs the following capabilities:
- Natural Language Processing (NLP) — to communicate successfully in English (or another regional language); includes automatic speech recognition, speech synthesis, machine translation and handwritten character recognition.
- Knowledge representation — to incorporate human knowledge before or during the interrogation.
- Automated reasoning — to use the knowledge to answer questions and draw new conclusions.
- Machine learning — to adapt to new circumstances and to detect and deduce patterns.
- Computer vision — the capability to observe objects, including image acquisition, transformation, processing, analysis, understanding and interpretation.
- Robotic activities — to move about; intelligent sensors form part of the robot, sensing the environment and supplying signals to its intelligent control unit.
The enormous successes achieved through modelling biologically inspired algorithms resulted in intelligent systems including Artificial Neural Networks (ANN), Evolutionary Computation (EC), Swarm Intelligence (SI) and Fuzzy logic — forming part of the field of AI.
AI and Game Playing
Making computers play games has been one of the major goals of AI research. Shannon's paper on chess-playing and Samuel's Checkers are landmarks in this area. Games occupy an important role in AI because: the rules of a game are limited, so extensive domain-specific knowledge is seldom needed; many human experts exist to assist development; games provide a structured task where success/failure is measured with least effort; experts can easily explain the rationale for a move; and game-playing permits simulation of real-life situations. Deep Blue from IBM beat world champion Garry Kasparov in 1997, using a highly optimised system with an extensive knowledge base on chess.
11.4
Computational Intelligence
11.4
Cybernetics and Computational Intelligence
Since we started using digital computers to solve real life problems, human–machine interaction became an interesting area of study, resulting in a new branch of discipline known as Cybernetics — the study of control and communication between man and machines. These studies led to automatic unmanned navigation systems for spacecraft, computers that take orders in natural language speech or handwriting, and smart weapons like guided nuclear missiles.
Computational Intelligence (CI) combines elements of learning, adaptation, evolution and fuzzy linguistics to create programs that are, in some sense, intelligent. CI experts focus on problems that are difficult to solve using artificial systems but are solved by humans and some animals using intelligence. A more recent definition of AI is the study of how to make computers do things which people are currently doing better — a combination of several research disciplines like computer science, biology, medicine, robotics, etc.
11.4.1
Computational Intelligence Paradigms
CI is the study of adaptive mechanisms (algorithms) to facilitate intelligent behaviour in complex and changing environments, so as to solve real life problems. While individual techniques have been applied successfully on their own, the current trend is to develop hybrids of paradigms, capitalising on the respective strengths of each component while eliminating weaknesses. Four main CI paradigms are considered here.
Artificial Neural Networks (ANN)Evolutionary Computation (EC)Swarm Intelligence (SI)Fuzzy Systems (FS)
Each CI paradigm has its origins in biological systems: ANNs model biological neural systems, EC models natural evolution (genetic and behavioural), SI models the social behaviour of organisms living in swarms or colonies, and FS originated from studies of how organisms respond to uncertain, imprecise, or fuzzy inputs.
A. Artificial Neural Networks — the brain is a complex, nonlinear, parallel computer with the ability to perform tasks like pattern recognition, perception and motor control far faster than any computer — even though brain events occur in the millisecond range, versus nanoseconds for silicon gates. The ability to learn, memorise and generalise prompted research into algorithmic modelling of biological neural systems, referred to as ANN. The human cortex has an estimated 10–500 billion neurons with 60 trillion synapses, arranged in roughly 1000 main modules, each with about 500 neural networks.
B. Evolutionary Computation — aims to mimic natural evolution, where the main concept is survival of the fittest. Offspring, reproduced from two (or more) parents, contain genetic material of both parents; individuals with bad characteristics are weak and lose the battle to survive. Evolutionary algorithms use a population of individuals called chromosomes, where each characteristic is a gene and its value an allele. Offspring are generated by combining parts of the parents — a process called crossover — and individuals can also undergo mutation, altering some allele. Survival strength is measured with a fitness function. EC has been used successfully in data mining, fault diagnosis, classification, scheduling, etc.
C. Swarm Intelligence — originated from the study of colonies or swarms of social organisms. Simulation studies of the choreography of bird flocks led to the particle swarm optimisation algorithm, and studies of the foraging behaviour of ants resulted in ant colony optimization algorithms.
D. Fuzzy Systems — traditional set theory requires elements to be either part of a set or not, and binary logic requires values to be either 0 or 1; but human reasoning is almost always not this exact. Humans easily understand statements like "some Computer Science students can program in most languages" — but how can a computer represent and reason with this fact? Fuzzy sets and fuzzy logic allow what is called approximate reasoning: an element belongs to a set to a certain degree of certainty, and fuzzy logic allows reasoning with these uncertain facts, with a degree of certainty attached to each conclusion — in a sense, modelling common sense. Fuzzy systems have been applied to control gear transmission and braking in vehicles, controlling lifts, home appliances, traffic signals, etc.
Soft Computing
According to Lotfi A. Zadeh, professor emeritus of computer science at the University of California, soft computing is an emerging approach that parallels the remarkable ability of the human mind to reason and learn in an environment of uncertainty and imprecision. It usually refers to the collective set of CI paradigms and probabilistic methods, tolerant of imprecision, uncertainty, partial truth and approximation — with the human brain as its role model.
Machine Learning
Machine learning is the study of mechanisms that allow a machine to infer complex patterns and behaviours from empirical data; it is used extensively in image and speech recognition, and in data-mining applications. Though CI techniques are similar in nature, the core representation of knowledge in machine learning is statistical, while in computational intelligence it is approximate (fuzzy) in nature.
11.4.2
Application of Computational Intelligence
A
Biometrics
Biometrics refers to metrics (measurements) related to human characteristics and traits, used for authentication and identification of individuals. Biometric identifiers are the distinctive, measurable characteristics used to label and describe individuals.
- Physiological characteristics — related to physical shape: fingerprint, palm veins, face, hand geometry, iris, retina, odour/scent.
- Behavioural characteristics — related to a person's pattern of behaviour: typing rhythm, speed and voice.
Biometric identification is popularly used in attendance management systems, authentication in computers and other devices, Aadhar cards, etc.
B
Robotics
A robot is an electromechanical device capable of reacting in some way to its environment and taking autonomous decisions or actions to achieve a specific task. Robotics is the scientific study associated with the design, fabrication, theory and application of robots — a multi-disciplinary branch spanning mechanical engineering, electrical engineering and computer science.
Uses of robots:
- Vehicle manufacturing industry — robotic arms perform welding, cutting, lifting, sorting and bending.
- Exploration of outer space — manipulative arms unload docking bays, launch satellites, or construct space stations.
- Intelligent homes — automated systems monitor home security, environmental conditions and energy usage; doors/windows and appliances can be pre-programmed.
- Difficult environments — robots visit environments harmful to humans, such as inside a volcano or the deepest oceans; NASA has used robotic probes for planetary exploration since the early sixties.
- Military — airborne robots (drones) are used for surveillance and, in hostile environments, aerial attacks.
- Agriculture — automated harvesters cut and gather crops; robotic dairies allow remote feeding and milking of animals.
Origin of "Robotics"
The word "robotics" was first used in Runaround, a short story published in 1942 by Isaac Asimov, an American author and professor of biochemistry. The word robot comes from the Czech word "robota," meaning "compulsory doing manual work without receiving any remuneration".
C
Computer Vision
Computer vision is the construction of explicit, meaningful descriptions of the structure and properties of the 3-dimensional world from 2-dimensional images, also called image understanding. It allows computers to understand the physical world through visual media — image data can take many forms: video sequences, views from multiple cameras, or multi-dimensional data from a medical scanner.
Initially developed for military applications, sub-domains of computer vision include scene reconstruction, event detection, video tracking, object recognition, learning, indexing, motion estimation, and image restoration — e.g. the Mars Rover "Curiosity" uses computer vision to explore Mars.
D
Natural Language Processing (NLP)
Natural Language Processing (NLP) is the branch of computer science focused on developing systems that allow computers to communicate with people using any human language, such as English or Malayalam. It is a subfield of AI that lets people interact with computers without any specialised knowledge or need to learn a programming language.
An NLP computer does two things: Natural Language Understanding (NLU) — understanding and reasoning the input — and Natural Language Generation (NLG) — creation of output. In India, the Department of Electronics (DOE) under the Technology Development for Indian Languages (TDIL) program has initiated development of NLP based tools.
E
Automatic Speech Recognition (ASR)
Automatic Speech Recognition (ASR) is one of the fastest growing and commercially most promising applications of NLP technology, allowing a computer to identify words spoken into a microphone or telephone and convert them into written text. ASR supports many valuable applications: dictation, command and control, voice dialing, spoken database querying, office dictation devices, and automatic voice translation into foreign languages.
Siri (Apple iOS), Cortana (Microsoft Phone), and Google Now (Android) are intelligent personal assistants using ASR that can answer oral questions, make recommendations, and perform actions on the phone.
F
Optical & Handwritten Character Recognition (OCR/HCR)
The task of Optical Character Recognition (OCR) converts scanned images of printed text (numerals, letters or symbols) into computer processable format (such as ASCII); reasonably good OCR packages are now available for most languages. Handwritten Character Recognition (HCR) follows two approaches: on-line, where data is captured during the writing process by a special pen on an electronic surface, and off-line, where data is acquired by a scanner after writing is complete.
Google's online handwriting recognition application, 'Google Handwriting Input', can recognise handwritten scripts of 82 languages on mobile devices.
G
Bioinformatics
Bioinformatics is the application of computer technology to the management of biological information — computers gather, store, analyse and integrate biological and genetic information, applied to gene-based drug discovery and development. The need for bioinformatics has been accelerated by the explosion of publicly available genomic information from the Human Genome Project. Its aims are three-fold: organise data for researchers to access and add new entries, develop tools and resources to aid analysis, and use these tools to analyse data and interpret results meaningfully.
Human Genome Project
The Human Genome Project was an effort to determine the sequence of the human genome and identify the genes it contains — all our genes together are known as our "genome". Coordinated by the National Institutes of Health and the United States Department of Energy, it helped researchers understand the blueprint of an individual, with a major impact on medicine, biotechnology and the life sciences.
H
Geographic Information System (GIS)
Large numbers of satellites revolve around the earth, designed, built and launched to relay images of our planet back to earth. This remotely sensed information is widely used in urban planning, agriculture, disaster monitoring, oil spill monitoring, etc. GIS technology developed from digital cartography and Computer Aided Design (CAD) database management systems.
GIS is a computer system for capturing, storing, checking and displaying data related to various positions on earth's surface — it can show many different kinds of data on a map, enabling people to easily see, analyse and understand patterns and relationships. GIS is applied in soil mapping, agricultural mapping, forest mapping, e-Governance, water resource management, natural disaster assessment, etc., and in planning processes for sustainable development including strategic urban planning, infrastructure planning and precision agriculture planning.
Benefits of GIS: better information management, higher quality analysis, ability to carry out "what if" scenarios, and improved project efficiency.
Remote Sensing
Remote sensing means sensing things from a distance — the art and science of obtaining information about an object without being in direct contact with it. In satellite remote sensing, sensors capture radiation from many parts of the electromagnetic spectrum to extract information about features on the earth's surface, oceans and atmosphere. For example, weather satellites carry instruments called radiometers (not cameras) that scan the earth to form images; analysing this data, meteorologists predict weather, and can also predict the possibility of earthquakes, whirlwinds, hurricanes, etc. In India, the India Meteorological Department, an agency of the Ministry of Earth Sciences, is responsible for meteorological observations, weather forecasting and seismology.