BCS601-module-1
Evolution of Computing
This chapter presents the significant evolutionary changes that have occurred in parallel, distributed, and cloud computing over the past three decades. These changes have been propelled by applications requiring variable workloads and substantial data sets. The focus lies on both high-performance computing (HPC) and high-throughput computing (HTC) systems, including parallel computers configured as clusters, service-oriented architecture, computational grids, peer-to-peer networks, Internet clouds, and the Internet of Things (IoT). These various systems exhibit distinctions in hardware architectures, operating system platforms, processing algorithms, communication protocols, and service models.
In addition, vital considerations such as the issues surrounding scalability, performance, availability, security, and energy efficiency in distributed systems will be introduced and discussed.
Scalable Computing Over the Internet
Historical Context
Over the last 60 years, computing technology has transformed dramatically across platforms and environments. This section evaluates these evolutionary changes in machine architecture, operating system platforms, network connectivity, and application workloads. Unlike centralized computing models, parallel and distributed computing systems leverage multiple computers to address large-scale problems via the Internet, making distributed computing inherently data-intensive and network-centric.
The Age of Internet Computing
The widespread use of the Internet by billions of users necessitates that supercomputer sites and data centers deliver high-performance computing services concurrently to vast numbers of users. This high demand renders the Linpack Benchmark less optimal for measuring system performance in the era of cloud computing, favoring the development of high-throughput computing systems instead, based on parallel and distributed computing technologies. To cater to these evolving needs, data centers must be upgraded with fast servers, advanced storage systems, and high-bandwidth networks to enhance web services and network-centric computing.
Platform Evolution
Computer technology has progressed through five generations, each spanning 10 to 20 years, leading to the emergence of mainframes, minicomputers, personal computers, portable computers, and pervasive devices. As a result, the utilization of HPC and HTC systems hidden within clusters, grids, or Internet clouds has surged, leading to a trend emphasizing the sharing of web resources and extensive data over the Internet.
High-Performance Computing (HPC)
Speed Performance
For many years, HPC systems emphasized raw speed, with their performance metrics measured in floating-point operations per second (flops) steadily increasing over the years. The demand for advancements in technologies supporting scientific, engineering, and manufacturing tasks has primarily driven this evolution. However, HPC systems cater to a limited user base, making up less than 10% of all computer users today.
Shift to High-Throughput Computing (HTC)
The strategic pivot from HPC to HTC reflects the need for high-flux computing applications, particularly related to Internet searches and massive web services that accommodate millions of users concurrently. In this shift, attention is concentrated not only on enhancing batch processing speeds but also on addressing significant challenges related to costs, energy savings, security, and reliability at data centers.
New Computing Paradigms
A variety of new computing paradigms have emerged, including Service-Oriented Architecture (SOA), Web 2.0 services, and the Internet of Things. This section introduces these concepts, recognizing the importance of clouds in modern computing paradigms.
Computing Paradigm Distinctions
The computing landscape has ongoing debates regarding the definitions and distinctions between centralized, parallel, distributed, and cloud computing. Generally, distributed computing seeks to decentralize computing resources, while parallel computing focuses on tightly coupled systems that share resources. Cloud computing includes elements from centralized and distributed approaches but emphasizes virtualization and resource utility.
Distributed System Families
Since the mid-1990s, the evolution of P2P networks and cluster networking technologies has laid the foundation for national projects that aim to establish wide-area computational infrastructures, including computational grids and massive distributed systems.
Innovations Leading to Scalability
Future computing systems must meet escalating demands in terms of throughput, efficiency, scalability, and reliability. Key design objectives include:
Efficiency: Maximizing resource utilization through HPC.
Dependability: Ensuring reliability across systems even during failures.
Adaptation: Supporting vast job requests under varying workloads.
Flexibility: Deploying applications in both HPC and HTC environments.
Summary of Key Trends
The chapter concludes with a summary of ongoing technology trends influencing computing. Innovations in processor speeds and network capabilities directly affect user applications and will drive future developments toward utility computing and cloud resources.
Applications of High-Performance and High-Throughput Systems
This is illustrated through a comprehensive table highlighting various domains where HPC and HTC systems are applied, ranging from scientific simulations, business applications, healthcare systems, to military command and control.
The Internet of Things and Cyber-Physical Systems
This section discusses the trends of IoT and cyber-physical systems emphasizing their future implications, particularly in creating smart environments and interconnectivity across various entities.
Technologies for Network-Based Systems
Following the discussions on scalable computing, the chapter embarks on an exploration of necessary hardware, software, and networking technologies essential for the design and application of distributed computing systems. Key topics include multicore processors, multithreading technologies, GPU computing, and the importance of virtualization in creating flexible and scalable data centers.
Data Center Virtualization
Virtualization emerges as a critical component in cloud computing architecture, enabling cost-effective scaling and efficient resource usage.
Future Directions of Computing
The text suggests that the confluence of data-intensive computing, cloud services, and multicore technologies will revolutionize the next generation of computing systems, impacting application design, programming challenges, and the overall computing landscape.