Time can be your best friend and your worst enemy depending on whether you use it or waste it.
--Your friends at LectureNotes

Cloud Computing

by Jntu Heroes
Type: NoteInstitute: JAWAHARLAL NEHRU TECHNOLOGICAL UNIVERSITY Downloads: 238Views: 1957Uploaded: 8 months agoAdd to Favourite

Share it with your friends

Suggested Materials

Leave your Comments


Jntu Heroes
Jntu Heroes
Chapter 1 System Models and Enabling Technologies Summary: Parallel, distributed, and cloud computing systems advance all works of life. This chapter assesses the evolutional changes in computing and IT trends in the past 30 years. These changes are driven by killer applications with variable amounts of workload and datasets at different periods of time. We study high-performance computing (HPC) and high-throughput computing (HTC) systems in clusters/MPP, service-oriented architecture (SOA), grids, P2P networks, and Internet clouds. These systems are distinguished by their architectures, OS platforms, processing algorithms, communication protocols, security demands, and service models. This chapter introduces the essential issues in scalability, performance, availability, security, energy-efficiency, workload outsourcing, datacenter protection, etc. The intent is to pave the way for our readers to study the details in subsequent chapters. 1.1 Scalable Computing Towards Massive Parallelism 1.1.1 1.1.2 1.1.3 1.2 High-Performance vs. High-Throughput Computing Analysis of Top 500 Supercomputers Killer Applications and Grand Challenges Enabling Technologies for Distributed Computing 7 1.2.1 1.2.2 1.2.3 1.2.4 System Components and Wide-Area Networking Virtual Machines and Virtualization Middleware Trends in Distributed Operating Systems Parallel Programming Environments 1.3 Distributed Computing System Models 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.4 14 Clusters of Cooperative Computers Grid Computing Infrastructures Service-Oriented Architecture (SOA) Peer-to-Peer Network Families Cloud Computing over The Internet Performance, Security, and Energy-Efficiency 1.4.1 1.4.2 1.4.3 1.4.4 1.5 2 24 Performance Metrics and System Scalability Fault-Tolerance and System Availability Network Threats and Data Integrity Energy-Efficiency in Distributed Computing References and Homework Problems 34 _____________________________________________________________________ Distributed Computing : Clusters, Grids and Clouds, All rights reserved Fox, and Jack Dongarra, May 2, 2010. 2 1-1 by Kai Hwang, Geoffrey
Chapter 1: System Models and Enabling Technologies (42 pages) revised May 2, 2010 1.1 Scalable Computing Towards Massive Parallelism Over the past 60 years, the state of computing has gone through a series of platform and environmental changes. We review below the evolutional changes in machine architecture, operating system platform, network connectivity, and application workloads. 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. Distributed computing becomes data-intensive and network-centric. We will identify the killer applications of modern systems that practice parallel and distributed computing. These large-scale applications have significantly upgraded the quality of life in all aspects of our civilization. 1.1.1 High-Performance versus High-Throughput Computing For a long time, high-performance computing (HPC) systems emphasizes the raw speed performance. The speed of HPC systems increased from Gflops in the early 1990’s to now Pflops in 2010. This improvement was driven mainly by demands from scientific, engineering, and manufacturing communities in the past. The speed performance in term of floating-point computing capability on a single system is facing some challenges by the business computing users. This flops speed measures the time to complete the execution of a single large computing task, like the Linpack benchmark used in Top-500 ranking. In reality, the number of users of the Top-500 HPC computers is rather limited to only 10% of all computer users. Today, majority of computer users are still using desktop computers and servers either locally or in huge datacenters, when they conduct Internet search and market-driven computing tasks. The development of market-oriented high-end computing systems is facing a strategic change from the HPC paradigm to a high-throughput computing (HTC) paradigm. This HTC paradigm pays more attention to high-flux multi-computing. The main application of high-flux computing system lies in Internet searches and web services by millions or more users simultaneously. The performance goal is thus shifted to measure the high throughput or the number of tasks completed per unit of time. HTC technology needs to improve not only high speed in batch processing, but also address the acute problem of cost, energy saving, security, and reliability at many datacenters and enterprise computing centers. This book is designed to address both HPC and HTC systems, that meet the demands of all computer users. In the past, electronic computers have gone through five generations of development. Each generation lasted 10 to 20 years. Adjacent generations overlapped in about 10 years. During 1950-1970, a handful of mainframe, such as IBM 360 and CDC 6400, were built to satisfy the demand from large business or government organizations. During 1960–1980, lower-c ost minicomputers, like DEC’s PDP 11 and VAX series, became popular in small business and college campuses. During 1970-1990, personal computers built with VLSI microprocessors became widespread in use by mass population. During 1980-2000, massive number of portable computers and pervasive devices appeared in both wired and wireless applications. Since 1990, we are overwhelmed with using both HPC and HTC systems that are hidden in Internet clouds. They offer web-scale services to general masses in a digital society. Levels of Parallelism: Let us first review types of parallelism before we proceed further with the computing trends. When hardware was bulky and expensive 50 years ago, most computers were designed in a bit-serial fashion. Bit-level parallelism (BLP) converts bit-serial processing to word-level processing gradually. We started with 4-bit microprocessors to 8, 16, 32 and 64-bit CPUs over the years. The next wave of improvement is the instruction-level parallelism (ILP). When we shifted from using processor to execute single instruction at a time to execute multiple instructions simultaneously, we have practiced ILP through pipelining, superscalar, VLIW (very-long instruction word), and multithreading in the past 30 years. ILP demands branch prediction, dynamic scheduling, speculation, and higher degree of compiler _____________________________________________________________________ Distributed Computing : Clusters, Grids and Clouds, All rights reserved Fox, and Jack Dongarra, May 2, 2010. 3 1-2 by Kai Hwang, Geoffrey
Chapter 1: System Models and Enabling Technologies (42 pages) revised May 2, 2010 support to make it work efficiently. Data-level parallelism (DLP) was made popular through SIMD (single-instruction and multiple-data) and vector machines using vector or array types of instructions. DLP demands both even more hardware support and compiler assistance to work properly. Ever since the introduction of multicore processors and chip multiprocessors (CMP), we explore the task-level parallelism (TLP). A modern processor explores all of the above parallelism types. The BLP, ILP, and DLP are well supported by advances in hardware and compilers. However, the TLP is far from being very successful due to the difficulty in programming and compilation of codes for efficient execution on multicores and CMPs. As we move from parallel processing to distributed processing, we will see the increase of computing granularity to job-level parallelism (JLP). It is fair to say the coarse-grain parallelism is built on top of the fine-grain parallelism. The Age of Internet Computing : The rapid development of the Internet has resulted in billions of people login online everyday. As a result, supercomputer sites and datacenters have changed from providing high performance floating-point computing capabilities to concurrently servicing huge number of requests from billions of users. The development of computing clouds computing and the widely adoption of provided computing services demand HTC systems which are often built parallel and distributed computing technologies. We cannot meet the future computing demand by pursuing only the Linpack performance on a handful of computers. We must build efficient datacenters using low-cost servers, storage systems, and high-bandwidth networks. In the future, both HPC and HTC demand multi-core processors that can handle hundreds or thousand of computing threads, tens-of-kilo-thread node prototype, and mobile cloud services platform prototype. Both types of systems emphasize parallelism and distributed computing. Future HPC and HTC systems must satisfy the huge demand of computing power in terms of throughput, efficiency, scalability, reliability etc. The term of high efficiency used here means not only speed performance of computing systems, but also the work efficiency (including the programming efficiency) and the energy efficiency in term of throughput per watt of energy consumed. To achieve these goals, three key scientific issues must be addressed: (1) Efficiency measured in building blocks and execution model to exploit massive parallelism as in HPC. This may include data access and storage model for HTC and energy efficiency. (2) Dependability in terms of reliability and self-management from the chip to system and application levels. The purpose is to provide high-throughput service with QoS assurance even under failure conditions. (3) Adaptation in programming model which can support billions of job requests over massive datasets, virtualized cloud resources, and flexible application service model. The Platform Evolution: The general computing trend is to leverage more and more on shared web resources over the Internet. As illustrated in Fig.1.1, we see the evolution from two tracks of system development: distributed computing systems (DCS) and high-performance computing (HPC) systems. On the HPC side, homogeneous supercomputers (massively parallel processors, MPP) are gradually replaced by clusters of cooperative computers out of the desire to share computing resources. The cluster is often a collection of computer nodes that are physically connected in close range to each other. Clusters, MPP, and Grid systems are studied in Chapters 3 and 4. On the DCS side, Peer-to-Peer (P2P) networks appeared for distributed file sharing and content delivery applications. A P2P system is built over many client machines to be studied in Chapter 5. Peer machines are globally distributed in nature. Both P2P and cloud computing _____________________________________________________________________ Distributed Computing : Clusters, Grids and Clouds, All rights reserved Fox, and Jack Dongarra, May 2, 2010. 4 1-3 by Kai Hwang, Geoffrey

Lecture Notes