Distributed Cloud Computing and Parallel Processing -Part 1
Total Page:16
File Type:pdf, Size:1020Kb
Distributed Cloud Computing and Parallel Processing -Part 1 Reference: Distributed and Cloud Computing From Parallel Processing to the Internet of Things, Kai Hwang Geoffrey C. Fox, and Jack J. Dongarra, Morgan Kaufmann © 2012 Elsevier, Inc. All rights reserved. 1 Scalable Computing Over the Internet • Over the past 60 years, computing technology has undergone a series of platform and environment changes. • This section assess evolutionary changes in machine architecture, operating system platform, network connectivity, and application workload. • Instead of using a centralized computer to solve computational problems, a parallel and distributed computing system uses multiple computers to solve large-scale problems over the Internet. • Thus, distributed computing becomes data-intensive and network-centric. 2 The Age of Internet Computing • Billions of people use the Internet every day. • As a result, supercomputer sites and large data centers must provide high-performance computing services to huge numbers of Internet users concurrently. • Because of this high demand, the Linpack Benchmark for high-performance computing (HPC) applications is no longer optimal for measuring system performance. • The emergence of computing clouds instead demands high-throughput computing (HTC) systems built with parallel and distributed computing technologies. 3 The Platform Evolution • From 1970 to 1990, we saw widespread use of personal computers built with VLSI microprocessors. • From 1980 to 2000, massive numbers of portable computers and pervasive devices appeared in both wired and wireless applications. • Since 1990, the use of both HPC and HTC systems hidden in clusters, grids, or Internet clouds has proliferated. • These systems are employed by both consumers and high-end web-scale computing and information services. 4 The Platform Evolution • The general computing trend is to leverage shared web resources and massive amounts of data over the Internet. • Figure 1.1 illustrates the evolution of HPC and HTC systems. • On the HPC side, supercomputers (massively parallel processors or MPPs) are gradually replaced by clusters of cooperative computers out of a desire to share computing resources. • The cluster is often a collection of homogeneous computing nodes that are physically connected in close range to one another. 5 The Platform Evolution 6 The Platform Evolution • On the HTC side, peer-to-peer (P2P) networks are formed for distributed file sharing and content delivery applications. • A P2P system is built over many client machines. – Peer machines are globally distributed in nature. • P2P, cloud computing, and web service platforms are more focused on HTC applications than on HPC applications. • Clustering and P2P technologies lead to the development of computational grids or data grids. 7 High-Performance Computing • For many years, HPC systems emphasize the raw speed performance. The speed of HPC systems has increased from Gflops in the early 1990s to now Pflops in 2010. – This improvement was driven mainly by the demands from scientific, engineering, and manufacturing communities. – For example, the Top 500 most powerful computer systems in the world are measured by floating-point speed in Linpack benchmark results. • However, the number of supercomputer users is limited to less than 10% of all computer users. • Today, the majority of computer users are using desktop computers or large servers when they conduct Internet searches and market-driven computing tasks. 8 High-Throughput Computing • The development of market-oriented high-end computing systems is undergoing a strategic change from an HPC paradigm to an HTC paradigm. • This HTC paradigm pays more attention to high-flux computing. The main application for high-flux computing is in Internet searches and web services by millions or more users simultaneously. – The performance goal thus shifts to measure high throughput or the number of tasks completed per unit of time. • HTC technology needs to not only improve in terms of batch processing speed, but also address the acute problems of cost, energy savings, security, and reliability at many data and enterprise computing centers. 9 Computing Paradigm Distinctions • The high-technology community has argued for many years about the precise definitions of centralized computing, parallel computing, distributed computing, and cloud computing. • In general, distributed computing is the opposite of centralized computing. • The field of parallel computing overlaps with distributed computing to a great extent, and cloud computing overlaps with distributed, centralized, and parallel computing. 10 Computing Paradigm Distinctions • Centralized computing: – This is a computing paradigm by which all computer resources are centralized in one physical system. – All resources (processors, memory, and storage) are fully shared and tightly coupled within one integrated OS. – Many data centers and supercomputers are centralized systems, but they are used in parallel, distributed, and cloud computing applications. 11 Computing Paradigm Distinctions • Parallel computing: – In parallel computing, all processors are either tightly coupled with centralized shared memory or loosely coupled with distributed memory. – Some authors refer to this discipline as parallel processing. – Inter-processor communication is accomplished through shared memory or via message passing. – A computer system capable of parallel computing is commonly known as a parallel computer. – Programs running in a parallel computer are called parallel programs. – The process of writing parallel programs is often referred to as parallel programming. 12 Computing Paradigm Distinctions • Distributed computing: – This is a field of computer science/engineering that studies distributed systems. – A distributed system consists of multiple autonomous computers, each having its own private memory, communicating through a computer network. – Information exchange in a distributed system is accomplished through message passing. – A computer program that runs in a distributed system is known as a distributed program. – The process of writing distributed programs is referred to as distributed programming. 13 Computing Paradigm Distinctions • Cloud computing: – An internet cloud of resources can be either a centralized or a distributed computing system. – The cloud applies parallel or distributed computing, or both. – Clouds can be built with physical or virtualized resources over large data centers that are centralized or distributed. – Some authors consider cloud computing to be a form of utility computing or service computing. 14 Computing Paradigm Distinctions • As an alternative to the preceding terms, some in the high-tech community prefer the term concurrent computing or concurrent programming. • These terms typically refer to the union of parallel computing and distributing computing, although biased practitioners may interpret them differently. • Ubiquitous computing refers to computing with pervasive devices at any place and time using wired or wireless communication. 15 Computing Paradigm Distinctions • The Internet of Things (IoT) is a networked connection of everyday objects including computers, sensors, humans, etc. • The IoT is supported by Internet clouds to achieve ubiquitous computing with any object at any place and time. • Finally, the term Internet computing is even broader and covers all computing paradigms over the Internet. 16 Computing Paradigm Distinctions • In the future, both HPC and HTC systems will demand multicore or many-core processors that can handle large numbers of computing threads per core. • Both HPC and HTC systems emphasize parallelism and distributed computing. • Future HPC and HTC systems must be able to satisfy this huge demand in computing power in terms of throughput, efficiency, scalability, and reliability. • The system efficiency is decided by speed, programming, and energy factors (i.e., throughput per watt of energy consumed). 17 Computing Paradigm Distinctions • Meeting these goals requires to yield the following design objectives: – Efficiency measures the utilization rate of resources in an execution model by exploiting massive parallelism in HPC. For HTC, efficiency is more closely related to job throughput, data access, storage, and power efficiency. – Dependability measures the reliability and self-management from the chip to the system and application levels. The purpose is to provide high- throughput service with Quality of Service (QoS) assurance, even under failure conditions. – Adaptation in the programming model measures the ability to support billions of job requests over massive data sets and virtualized cloud resources under various workload and service models. – Flexibility in application deployment measures the ability of distributed systems to run well in both HPC (science and engineering) and HTC (business) applications. 18 Scalable Computing Trends and New Paradigms • Degrees of Parallelism (DoP): – Fifty years ago, when hardware was bulky and expensive, most computers were designed in a bit-serial fashion. In this scenario, bit-level parallelism (BLP) converts bit-serial processing to word-level processing gradually. – Over the years, users graduated from 4-bit microprocessors to 8-, 16-, 32-, and 64-bit CPUs. – This led us to the next wave of improvement, known as instruction-level parallelism (ILP), in which the processor executes multiple instructions simultaneously rather than only one instruction at a time. – For