從高效能計算到雲端運算服務
黃國展
ENIAC
ENIAC
• Electronic Numerical Integrator And
Computer
• 1946年2月14日在美國賓夕法尼亞大學的莫
爾電機學院揭幕
• 批次(batch)
• 分時共享(time-sharing)
• 集中式(centralized)架構
Sun SPARC Workstation
Workstation
• 交談式(interactive)工作環境
• 圖型化操作介面
Network
• Internet
• LAN (Local Area Network)
• Distributed System
What is high performance computing?
– Functional requirement
– Non-functional requirement
• Speed, quality, space, user friendliness
HPC Web Sites
• NCSA, USA
• NCHC, Taiwan
• HPCwire
• Our work on HPCwire
• TOP500 Supercomputing Sites
Parallel and Distributed Computing
• Parallel System (平行處理)
– High performance
• Distributed System (分散式系統)
– Resource sharing
• Other computing demands
– High throughput
– High availability
– Load sharing
– Workflow (collaborative) computing
科學研究方法
• 理論
• 實驗
• 計算
High Performance Computing
• 核爆模擬
• 氣候模擬/天氣預測
• 汽車碰撞模擬分析
• 飛機設計
…
HPC走入民生應用
電影特效, 動畫製作
鐵達尼號, 魔戒, 聖石傳說, 玩具總動員, …
SARS病毒測序
美國華盛頓大學基因組測序中心 (IBM eServer
BladeCenter)
網路遊戲平台
日本遊戲開發商Hitmaker (IBM eServer
BladeCenter)
石油探勘
Paradigm (IBM eServer BladeCenter)
藥物開發研究
生物資訊
Three ways to improve performance
Work harder
Faster CPU (Moore’s law)
Work smarter
Efficient algorithm
Get help
Parallel processing
Parallel/Distributed
Computing
Cluster
Computing The Evolution of High Performance
Computing Platform
Grid
Computing
Cloud
Computing
Parallel Processing Platforms
• Single-processor computers
– Vector processor, superscalar, multi-core…
• Multi-processor computers
– SMP, NUMA, …
• Multi-computer systems
– Cluster, grid, cloud…
CLUSTER COMPUTING
(PC CLUSTER)
Why PC Cluster?
PC 及 networking 的速度越來越快
大型電腦中心工作等候時間過長
受限於經費,無法採購大型主機
The Beowulf Project
• In the summer of 1994 the first Beowulf 16
node demonstration cluster was constructed
for the Earth and Space Sciences project at at
NASA's Goddard Space Flight Center
• [Link]
TOP500 Supercomputing Sites
• [Link]
November 1999
June 2020
November 1999
June 2020
November 1999
June 2020
November 1999
June 2020
November 1999
June 2020
June 2020
June 2020
June 2020
Kentucky Linux Athlon Testbed 2 (KLAT2)
IBM e-server Cluster 1300
IBM BladeCenter
What is Cluster Computing?
Cluster is a collection of interconnected computers
working together as a single system.
The initial idea leading to cluster computing was
developed in the 1960s by IBM as a way of linking
large mainframes to provide a cost-effective form of
commercial parallelism.
Trends since 1980s boosting cluster computing:
high performance microprocessors, high-speed
networks, standard tools for high performance
distributed computing, increased need of computing
power for computational science and commercial
applications at the high cost and low accessibility of
traditional supercomputers.
What is Cluster Computing? (Cont.)
The nodes of a cluster can exist in a single
cabinet or be physically separated and
connected via a LAN.
Current Status
Beowulf class PC clusters at various
research laboratories.
Supercomputing clusters at national
computing centers.
Large-scale clusters as the back end of
cloud computing services.
Cluster Usage Modes
• NOW (network of workstations)
– Tapping the idle cycles of existing resources.
• PMMPP (poor man’s MPP)
– Dedicated cluster acquired for running high
performance parallel applications
Three schemes are used to share
cluster nodes
dedicated mode
space sharing
time sharing
GRID COMPUTING
What is the Grid?
• "A computational grid is a hardware and software
infrastructure that provides dependable, consistent, pervasive,
and inexpensive access to high-end computational
capabilities.“
---- The Grid: Blueprint for a New Computing Infrastructure,
1998
• "We will probably see the spread of 'computer utilities', which,
like present electric and telephone utilities, will service
individual homes and offices across the country."
---- Len Kleinrock (1969)
What is the Grid? (Cont.)
• "coordinated resource sharing and problem solving
in dynamic, multi-institutional virtual organizations.“
------ in "The Anatomy of the Grid“ (2000)
• A three point checklist by Ian Foster (2002)
– coordinates resources that are not subject to centralized
control
– using standard, open, general-purpose protocols and
interfaces (Globus Toolkit and Open Grid Services
Architecture)
– to deliver nontrivial qualities of service
The key goals of Grid computing by IBM
• Improved efficiency and utilization of all computing resources
within an enterprise.
• The ability to form virtual organizations that collaborate on
common problems by enabling them to share applications
and data.
• The ability to tackle very large problems demanding huge
computing resources by enabling the aggregation of
computing power, storage and other resources.
• The ability to help lower the total cost of computing by
enabling the sharing, efficient optimization and overall
management of those computing resources.
Application Service
Service-Oriented
Provider
Computing
Other Models and
Utility
Computing Paradigms
On-Demand
Computing
Network-Centric
Computing
Outline
1 What is Cloud Computing?
2 How is it different from previous paradigm shifts?
3 What are the opportunities?
4 What are the obstacles and challenges?
What is Cloud Computing?
• To some, the cloud looks like Web-based
applications, a revival of the thin-client.
• To others, the cloud looks like utility
computing, a grid that charges metered
rates for processing time.
Cloud Computing
• Service models
– SaaS
– PaaS
– IaaS
• Deployment models
– Private cloud
– Public cloud
– Hybrid cloud
– Community cloud
• SaaS
– Software as a Service
• [Link]
• PaaS
– Platform as a Service
• Google App Engine
• Microsoft Azure Services Platform
• IaaS
– Infrastructure as a Service
• Amazon EC2
• To some, the cloud looks like Web-based
applications, a revival of the thin-client.
• To others, the cloud looks like utility
computing, a grid that charges metered rates
for processing time.
HPCaaS
• High Performance Computing as a Service
– [Link]
service/
High Performance Computing and Cloud
Computing
• In one sense, HPC is the very earliest
adopter of cloud computing.
– Using, but not owning
• But yet, in another sense, HPC is still a very
immature service compared to other
emerging cloud services.
– Regarding convenience, efficiency, and
flexibility
Types of Parallel Jobs
• Rigid
• Moldable
• Evolving
• Malleable
High Performance Computing and Cloud
Computing
• While modern HPC systems provide the
necessary capabilities in performance to
meet the demanding requirements of
large-scale applications, accessing and
running applications on these systems
remains tedious, limiting their adoption as
a mainstream solution.
High Performance Computing and Cloud
Computing
• Previous Efforts
– HPC in the cloud
• Deploying HPC applications on existing cloud platforms
• Effective only for loosely synchronized applications
– HPC plus clouds
• A hybrid infrastructure that combines HPC resources with
public clouds
• Providing advantages such as handling unpredictable
bursting workloads, supporting hybrid workflows
• Problems related to the lack of high-end HPC resources
remains
High Performance Computing and Cloud
Computing
– HPC as a cloud
• Connecting small HPC clusters, which could be
virtualized or nonvirtualized, together to form a
large cloud
HPC as a Service
• HPC as a Service aims to leverage the advantages of
the cloud computing paradigm, such as ease of use
and dynamic allocation, to provide an interface for
current HPC resources without incurring performance
degradation.
– A prototype transforms the IBM Blue Gene/P into an
elastic cloud of multiple federated clouds supporting
dynamic provisioning, efficient utilization, and maximum
accessibility of HPC resources based on Deep Cloud (IaaS)
and CometCloud (PaaS)
HPC as a Service
• From users’ perspective, cloud computing
enables convenient, on-demand access to a
pool of configurable computing resources,
which can be rapidly provisioned and
released with minimal management effort
or service provider interaction.
– Ease of use
– Dynamic allocation
– Elastic and fast resource provisioning
HPC as a Service
• Resource-oriented job submission in
current HPC systems
– Best efforts for QoS
HPC as a Service
• QoS-oriented job submission in future
HPCaaS systems
– Deadline
– Budget
Research Issues
• From HPCaaS providers’ perspective,
– Ease of use implies high user satisfaction
– Dynamic allocation is important to efficiently
utilize resources and serve more users
– Elastic and fast resource provisioning is
necessary to support advanced features of HPC
applications
Research Issues
• Resource utilization rate is the key to users’
job turnaround time
– Number of processors allocated while there
are jobs waiting in queue
• Job scheduling approaches
– Each processor’s utilization rate
• Applications’ speedup behavior
Our Experience
Future Challenges
Future Challenges
• An iPad interface to run HPCaaS simulations.
Scientists can use the easy-to-program
interface to set up an experiment, adjust
budget parameters or time to completion,
monitor and steer the workflow, and obtain
interactive results, allowing users to
concentrate on their simulations and spend
less time as system administrators.
Future Challenges
Elastic resource provisioning
Evolving and malleable jobs
Allowing users to programmatically expand or shrink
their resource requirement.
Pricing
Workflow execution
Fair sharing
SaaS
integrating new applications easily and exposing
these applications to end users through thin clients
as SaaS (Service-Oriented Architecture).
The Data Center View
Distributed Centralized
Centralized Computing,
Computing Computing
again?
Mainframe computer Workstations, PCs Cloud computing
The Data Center View
• “I think there is a world market for maybe five
computers”
– by IBM Chairman Thomas Watson in 1943
• Google turned the data center model on its head.
Rather than power a network with a small number of
high-powered and very expensive servers, they
deploy cheap, commodity hardware in large numbers.
– Cluster computing
The Data Center View
• Today, Google runs an estimated half-million servers
clustered into a dozen or so physical locations.
– Multi-cluster architecture, Grid
• By creating a network that is spread thin and wide
rather than narrow and deep, Google created a new
kind of concentrated power—derived more from scale
of the whole than any one constituent part. This, some
say, describes the cloud.
The Data Center View
• The cloud is very robust and can recover
gracefully from the most common ailments,
such as connection and hardware failures,
because there are so many more drones
available to take on the work.
The Data Center View
• Data centers are making heavy use of
virtualization to squeeze the most out of the
watts they are consuming.
– Xen hypervisor,…
– Batch processing vs. service provisioning
The Distributed Computing View
• Ideally, if tasks are broken into their smallest
constituent jobs, and each job could be
completed simultaneously using available
processing resources somewhere in the cloud,
you could achieve an optimally efficient
architecture: the most optimistic definition of
distributed computing.
The Distributed Computing View
• Distributed computing is not inherently new to the
era of the cloud.
– SETI@home, Folding@home, …
– UC Berkeley’s BOINC, desktop grid, volunteer computing
• The open source project Hadoop provides a general-
purpose framework for developers to rapidly employ
distributed computing in a wide variety of projects.
– MapReduce: dividing jobs into component tasks
– HDFS: Hadoop Distributed File System
The Utility Grid View
• It seems like every shape one sees in the cloud
is inspired by a computing model from the
past.
• Back in the days of mainframes and fancy
supercomputers housed at research
universities, valuable processing time was
essentially for sale. Processing time was
delivered like electricity– you paid for what
you used.
The Utility Grid View
• Today, most medium to large-sized
organizations invest in their own data centers
and use them at will.
• What’s worse for the balance sheet is that
organizations need to plan for worst-case scenarios.
– Overpowered servers capable of handling loads which can
peak high but occur infrequently.
– Real world estimates of server utilization in datacenters
range from 5% to 20%.
The Utility Grid View
• Amazon, Google, and IBM have invested in,
innovated, and become expert at housing their own
large-scale data centers. Why not scale up their data
centers—grow the cloud—and create business
models to support third-party use?
– Internet retail giant Amazon is the first out of the gate to
commercialize their cloud in October 2007.
• Today, many Web applications fail under the load of
big traffic spikes.
– But in the cloud, additional machine instances can be
launched on demand. The application dynamically, and
gracefully, scales up. When traffic slows down, the
application can scale down, terminating the extra
instances.
The Software as a Service View
• Who needs computers at all? Why not just
move all processing power to the cloud, and
walk around with an ultralight input device
with a screen?
– AJAX allows browser-based code to behave more
like a local application.
– People’s desire for mobility and data ubiquity.
– E-mail was both the first “killer app” for the
Internet, and later, on the Web. For many today,
Web-based e-mail is the only kind they use.
The Software as a Service View
• For cloud computing to move front and center,
the networks that tie everything together
need to be extremely robust.
– Are our networks ready to handle the load?
• The cloud raises concerns among privacy
advocates. Most significantly, the cloud
demands a high degree of trust.
• Blockchain?
So, Cloud Computing is …
• Cloud computing is the long-held dream of
computing as a utility.
– An old idea whose time has finally come
Cloud Computing
SaaS Utility
Computing
Applications The hardware and
delivered as services systems software in
over the Internet the datacenters that
provide those
application services
The datacenter hardware and software is the
cloud.
Pay-as-you-go
SaaS CRM, Gmail
Utility
PaaS Computing Google, Microsoft
IaaS Amazon EC2
Three Classes of Utility Computing
Three Aspects are New
• The illusion of infinite computing resources
available on demand.
• The elimination of an up-front commitment by
cloud users
• The ability to pay for use of computing
resources on a short term basis as needed.
The Impact
Amazon’s EC2 may pave the way to where
businesses no longer invest anything into data
centers of their own.
• Cloud Computing is likely to have the same
impact on software that foundries have had on
the hardware industry.
Why Now?
• Does IT Matter ? (IT有什麼明天?)
差異性競爭優勢
Application software
Computing resources
共通性基礎設施
降低成本
提升效率
整合運用資源
Cloud computing
What to Share?
Computing resources
Applications: SOA, ASP,…
Obstacles to Cloud Computing
• Availability of Service
• Data Lock-In
• Data Confidentiality and Auditability
• Data Transfer Bottlenecks
• Performance Unpredictability
• Bugs in Large-Scale Distributed Systems
• Scaling Quickly
• Software Licensing
我們可以有什麼啟發?
• 學術研究
– Workload management on cloud or grid.
• 個人實務
– Parallel programming
• 產業模式
– SaaS, SOA, HPCaaS
– 晶圓代工廠 and IC設計公司
永遠會有新東西冒出來
永遠會有新東西冒出來
永遠會有新東西冒出來
• 雲計算、霧計算、邊緣計算、、、
• Web 1.0
– Centralized information sharing
• Web 2.0
– P2P information sharing
• Web 3.0
– P2P software component (service) sharing
– SOA, SOC,…
• Web 4.0 (blockchain)?
結論
希望你們能注意及重視的是:
(1)那些長久以來一直未獲得妥善解決的問題或未被
滿足的需求
(2)那些基本且重要,會被不斷重複使用或整合,
用來解決新問題的不變原則
(3)精熟共通性基礎設施
(4)創造自己的差異性競爭優勢
本學期課程內容
• Linux (on your own)
• Better algorithms for sequential programs
– Matrix multiplication
– Nonogram
• Parallel Programming
– MPI for SPMD program