tcss 562: software engineering for cloud computing, Exams of Computer Architecture and Organization

Cloud Computing Concepts, Technology & Architecture. October 5, 2021. TCSS562:Software Engineering for ... Each group will complete a Google Doc worksheet.

Typology: Exams

2022/2023

Uploaded on 05/11/2023

anasooya
anasooya 🇺🇸

4.1

(13)

244 documents

1 / 22

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
TCSS 562: Software Engineering for Cloud Computing
School of Engineering and Technology, UW-Tacoma
[Fall 2021]
Slides by Wes J. Lloyd L2.1
Cloud Co mputi ng
How did we get h ere?
Wes J. Lloy d
Sch ool of E ngin eeri ng an d Tec hnol ogy
Uni vers ity of Wa shin gton - Tac oma
TCSS 5 62:
SOFTWARE ENGINEERING
FOR CLOUD COMPUTING
Qu esti ons fro m 9/ 30
Clo ud C omp uti ng H ow d id w e g et h ere ?
(M arin esc u Ch . 2 - 1st e dit ion , Ch . 4 - 2 nd edit io n)
Dat a, t hre ad- leve l, t ask -lev el p ara llel ism &
Par all el a rch itec ture s
Cla ss A cti vit y 1 Imp lici t vs Ex plic it P ara llel ism
SIM D a rchi tec ture s, v ecto r pr oce ssin g, m ult imed ia e xten sio ns
Gra phi cs p roce ssi ng un its
Sp eed- up, Amd ahl' s La w, S cal ed S pee dup
Pr oper tie s of dis tri bute d sy ste ms
Mod ula rit y
Int rod ucti on to Cl oud Com puti ng l oos ely base d on bo ok # 1:
Clo ud C omp uti ng C once pts , Tec hnol ogy & A rch itec tur e
October 5, 2021 TCSS562:Software Engineering for Cloud Computing [Fall 2021]
School of Engineering and Technology, University of Washington - Tacoma L2.2
OB JECTIVES 10/5
Ple ase cla ssi fy yo ur per spe ctiv e on mat eri al co ver ed in tod ay’ s
cla ss (26 resp onde nts ):
1-m ost ly r evie w, 5 -equ al n ew/ revi ew, 1 0-m ostl y ne w
Ave rag e 6. 15 (5 .94 , Fal l 20 21)
Ple ase rat e th e pa ce o f t oday ’s c las s:
1-s low , 5- just ri ght, 10- fas t
Ave rag e 5. 19 (5 .5, Fall 202 1)
October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021]
School of Engineering and Technology, University of Washington - Tacoma L2.3
MAT ER IA L / PACE
October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021]
School of Engineering and Technology, University of Washington - Tacoma L2.4
FE ED BAC K FR OM 9/30
Qu esti ons fro m 9/ 30
Clo ud C omp uti ng H ow d id w e g et h ere ?
(M arin esc u Ch . 2 - 1st e dit ion , Ch . 4 - 2 nd edit io n)
Dat a, t hre ad- leve l, t ask -lev el p ara llel ism &
Par all el a rch itec ture s
Cla ss A cti vit y 1 Imp lici t vs Ex plic it P ara llel ism
SIM D a rchi tec ture s, v ecto r pr oce ssin g, m ult imed ia e xten sio ns
Gra phi cs p roce ssi ng un its
Sp eed- up, Amd ahl' s La w, S cal ed S pee dup
Pr oper tie s of dis tri bute d sy ste ms
Mod ul ari ty
Int rod ucti on to Cl oud Com puti ng l oos ely base d on bo ok # 1:
Clo ud C omp uti ng C once pts , Tec hnol ogy & A rch itec tur e
October 5, 2021 TCSS562:Software Engineering for Cloud Computing [Fall 2021]
School of Engineering and Technology, University of Washington - Tacoma L2.5
OB JECTIVES 10/5
Gen era l in tere st i n pa ral lel comp uti ng
Moor e’s L aw - # of tr ansisto rs doubles ever y 18 months
Post 2004: heat dissi pation chall enges:
can no lon ger e asily increas e cl oud s peed
Overc locking to 7GHz t akes
more than just liquid nitro gen:
htt ps:/ /tiny url.c om/y 93s2y z2
Sol ut ion s:
Vary CPU c lock speed
Add CPU co res
Mult i-co re tech nolo gy
October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021]
School of Engineering and Technology, University of Washington - Tacoma L2.6
CLOUD C OMPU TING :
HO W D ID W E GE T HE RE ?
1 2
3 4
5 6
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16

Partial preview of the text

Download tcss 562: software engineering for cloud computing and more Exams Computer Architecture and Organization in PDF only on Docsity!

School of Engineering and Technology, UW-Tacoma

Cloud Computing – How did we get here?

Wes J. Lloyd

School of Engineering and Technology

University of Washington - Tacoma

TCSS 562: SOFTWARE ENGINEERING FOR CLOUD COMPUTING ^ Questions f rom 9/  Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition)  Data, thread-level, task-level parallelism & Parallel architectures  Class Activity 1 – Implicit vs Explicit Parallelism  SIMD architectures, vector processing, multimedia extensions  Graphics processing units  Speed-up, Amdahl's Law, Scaled Speedup  Properties of distributed systems  Modularity  Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^2

OBJECTIVES – 10/

 Please classify your per spective on material covered in today’s class (2 6 respondents):  1 - mostly review, 5-equal new/review, 10-mostly new  Average – 6.15 (5.94, Fall 2021)  Please rate the pace of today’s class:  1 - slow, 5-just right, 10-fast  Average – 5.19 (5.5, Fall 2021) October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^3

MATERIAL / PACE

October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^4

FEEDBACK FROM 9/

 Questions f rom 9/  Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition)  Data, thread-level, task-level parallelism & Parallel architectures  Class Activity 1 – Implicit vs Explicit Parallelism  SIMD architectures, vector processing, multimedia extensions  Graphics processing units  Speed-up, Amdahl's Law, Scaled Speedup  Properties of distributed systems  Modularity  Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^5

OBJECTIVES – 10/

 General interest in parallel computing

▪ Moore’s Law - # of transistors doubles every 18 months ▪ Post 2004: heat dissipation challenges: can no longer easily increase cloud speed

▪ Overclocking to 7GHz takes

more than just liquid nitrogen: ▪ https://tinyurl.com/y93s2yz  Solutions: ▪ Vary CPU clock speed ▪ Add CPU cores ▪ Multi-core technology October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^6

CLOUD COMPUTING:

HOW DID WE GET HERE?

School of Engineering and Technology, UW-Tacoma

October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^7  Epyc Rome CPUs  Announced August 2019  EPYC 7H12 requires liquid cooling October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^8

AMD’S 64-CORE 7NM CPUS

 Modern CPUs provide multiple instruction pipelines, supporting multiple execution threads, usually 2 to feed instructions to a single CPU core…  Two hyper-threads are not equivalent to (2) CPU cores  i7-4770 and i5- 4760 same CPU, with and without HTT  Example: → hyper threads add +32.9% October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^9

HYPER-THREADING

How do I use hyper-threading?  Hyper-threading is automatic  Modern CPUs expose each physical CPU core as two CPU cores  cat /proc/cpuinfo command lists individual cores  Operating system schedules processes & threads to run on a hyper-thread  On CPUs with hyper-threading, each CPU core has two hyper- threads  To the operating system they are seen as full - featured independent CPU cores October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^10

HYPER-THREADING - 2

October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^11

CAT /PROC/CPUINFO

If a CPU has hyper-threading enabled, the “ht” flag is listed October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2. 12

School of Engineering and Technology, UW-Tacoma

SMITH WATERMAN RUNTIME

 Laptop server and client (2 - core, 4-HT): 8.7 hours

 AWS Lambda FaaS, laptop as client: 2.2 minutes

▪ Partitions 20,336 sequences into 41 sets ▪ Execution cost: ~ 82¢ (~237x speed-up)

 AWS Lambda server, EC2 instance as client: 1.

minutes

▪ Execution cost: ~ 87¢ (~408x speed-up)

 Hardware

▪ Laptop client: Intel i5-7200U 2.5 GHz :4 HT, 2 CPU ▪ Cloud client: EC2 Virtual Machine - m5.24xlarge: 96 vCPUs ▪ Cloud server: Lambda ~1000 x Intel E5-2666v3 2.9GHz CPUs October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^19

 Compute clouds are large-scale distributed systems

▪ Heterogeneous systems

▪ Many services/platforms w/ diverse hw + capabilities

▪ Homogeneous systems

▪ Within a platform – illusion of identical hardware

▪ Autonomous

▪ Automatic management and maintenance- largely with little human intervention

▪ Self organizing

▪ User requested resources organize themselves to satisfy requests on-demand October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^20

CLOUD COMPUTING:

HOW DID WE GET HERE? - 5

 Compute clouds are large-scale distributed systems  Infrastructure-as-a-Service (IaaS) Cloud

▪ Provide VMs on demand to users

▪ ec2instances.info (AWS EC2)

 Clouds can consist of ▪ Homogeneous hardware (servers, etc.) ▪ Heterogeneous hardware (servers, etc.)  Which is preferable? September 25, 2019 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^21

CLOUD COMPUTING:

HOW DID WE GET HERE? - 6

 If providing IaaS, what are advantages/ disadvantages of using homogeneous hardware? ▪ Easier to provide same quality of service to end users ▪ Less performance variance ▪ Components with variable performance: CPUs, memory (speed differences), disks (SSDs, HDDs), network interfaces (caches?) ▪ Homogeneous hardware (servers): components are interchangeable ▪ As components fail, identical backups are immediately available ▪ Example: blade servers ▪ As clouds grow, why is HW homogeneity difficult to maintain?  What are some advantages of using heterogeneous HW? September 30, 2019 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^22

HARDWARE HETEROGENEITY

 Questions f rom 9/  Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition)  Data, thread-level, task-level parallelism & Parallel architectures  Class Activity 1 – Implicit vs Explicit Parallelism  SIMD architectures, vector processing, multimedia extensions  Graphics processing units  Speed-up, Amdahl's Law, Scaled Speedup  Properties of distributed systems  Modularity  Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^23

OBJECTIVES – 10/

 Discovering parallelism and development of parallel algorithms requires considerable ef for t  Example: numerical analysis problems, such as solving large systems of linear equations or solving systems of Par tial Dif ferential Equations (PDEs), require algorithms based on domain decomposition methods.  How can problems be split in to in dependent chunks?  Fine-grained parallelism ▪ Only small bits of code can run in parallel without coordination ▪ Communication is required to synchronize state across nodes  Coarse-grained parallelism ▪ Large blocks of code can run without coordination October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^24

PARALLELISM

School of Engineering and Technology, UW-Tacoma

 Coordination of nodes

 Requires message passing or shared memory

 Debugging parallel message passing code is easier

than parallel shared memory code

 Message passing : all of the interactions are clear

▪ Coordination via specific programming API (MPI)

 Shared memory : interactions can be implicit – must

read the code!!

 Processing speed is orders of magnitude faster than

communication speed (CPU > memory bus speed)

 Avoiding coordination achieves the best speed - up

October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^25

PARALLELISM - 2

 Parallelism:

▪ Goal: Perform multiple operations at the same time

to achieve a speed-up

 Types of parallelism:  Thread-level parallelism (TLP) ▪ Control flow architecture  Data-level parallelism ▪ Data flow architecture  Bit-level parallelism  Instruction-level parallelism (ILP) October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^26

TYPES OF PARALLELISM

 Number of threads an application runs at any one time  Varies throughout program execution

 As a metric:

 Minimum: 1 thread  Can measure average, maximum (peak)  QUESTION: What are the consequences of average (TLP)

for scheduling an application to run on a computer with a

fixed number of CPU cores and hyperthreads?  Let’s say there are 4 cores, or 8 hyper - threads…  Key to avoiding waste of computing resources is knowing your application’s TLP… October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^27

THREAD LEVEL PARALLELISM (TLP)

 Typical architecture used today – w/ multiple threads  By John von Neumann (1945)

 Also called the Von Neumann architecture

 Dominant computer system architecture  Program counter (PC) determines next instruction to load into

instruction register

 Program execution is sequential October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^28

CONTROL-FLOW ARCHITECTURE

 Partition data into big chunks, run separate copies of the program on them with little or no communication  Problems are considered to be embarrassingly parallel  Also perfectly parallel or pleasingly parallel…  Little or no effort needed to separate problem into a number of parallel tasks  MapReduce programming model is an example October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^29

DATA-LEVEL PARALLELISM

 Alternate architecture used by network routers, digital

signal processors, special purpose systems  Operations performed when input (data) becomes available  Envisioned to provide much higher parallelism  Multiple problems has prevented wide - scale adoption ▪ Efficiently broadcasting data tokens in a massively parallel system

▪ Efficiently dispatching instruction tokens in a massively

parallel system ▪ Building content addressable memory large enough to hold all of the dependencies of a real program October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^30

DATA FLOW ARCHITECTURE

School of Engineering and Technology, UW-Tacoma

 We will form groups of ~3 using Zoom breakout rooms  Each group will complete a Google Doc worksheet  Add names to Google Doc as they appear in Canvas  The activity can be completed in class or af ter class  The activity can also be completed indivually  When completed, one per son should submit a PDF of the Google Doc to Canvas  Instructor will score all group members based on the uploaded PDF file  To get star ted: ▪ Log into your UW Google Account (https://drive.google.com) using you UW NET ID ▪ Follow the link:

https://tinyurl.com/kp2jm9pj

October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^37

ACTIVITY 1

 Solutions to be discussed.. October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^38

ACTIVITY 1

 Applies to:  Advantages:  Disadvantages: October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^39

IMPLICIT PARALLELISM

 Applies to:  Advantages:  Disadvantages: October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^40

EXPLICIT PARALLELISM

 7. For bit-level parallelism, should a developer be concerned with the available number of virtual CPU processing cores when choosing a cloud - based virtual machine if wanting to obtain the best possible speed - up? (Yes / No)  8. For instruction-level parallelism, should a developer be concerned with the physical CPU’s architecture used to host a cloud-based virtual machine if wanting to obtain the best possible speed-up? (Yes / No) October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^41

PARALLELISM QUESTIONS

 9. For thread level parallelism (TLP) where a programmer has spent considerable effort to parallelize their code and algorithms, what consequences result when this code is deployed on a virtual machine with too few virtual CPU processing cores?  What happens when this code is deployed on a virtual machine with too many virtual CPU processing cores? October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^42

PARALLELISM QUESTIONS - 2

School of Engineering and Technology, UW-Tacoma

 Questions f rom 9/  Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition)  Data, thread-level, task-level parallelism & Parallel architectures  Class Activity 1 – Implicit vs Explicit Parallelism  SIMD architectures, vector processing, multimedia extensions  Graphics processing units  Speed-up, Amdahl's Law, Scaled Speedup  Properties of distributed systems  Modularity  Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^43

OBJECTIVES – 10/

 Michael Flynn’s proposed taxonomy of computer architectures based on concurrent instructions and number of data streams (1966)  SISD (Single Instruction Single Data)  SIMD (Single Instruction, Multiple Data)  MIMD (Multiple Instructions, Multiple Data)  LESS COMMON : MISD (Multiple Instructions, Single Data)

 Pipeline architectures: functional units perform different

operations on the same data  For fault tolerance, may want to execute same instructions redundantly to detect and mask errors – for task replication October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^44

MICHAEL FLYNN’S COMPUTER

ARCHITECTURE TAXONOMY

 SISD (Single Instruction Single Data) Scalar architecture with one processor/core.

▪ Individual cores of modern multicore processors are

“SISD”

 SIMD (Single Instruction, Multiple Data) Supports vector processing ▪ When SIMD instructions are issued, operations on individual vector components are carried out concurrently ▪ Two 64-element vectors can be added in parallel ▪ Vector processing instructions added to modern CPUs ▪ Example: Intel MMX (multimedia) instructions October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^45

FLYNN’S TAXONOMY

 Exploit data-parallelism: vector operations enable speedups  Vectors architecture provide vector registers that can store entire matrices into a CPU register  SIMD CPU extension (e.g. MMX) add support for vector operations on traditional CPUs  Vector operations reduce total number of instructions for large vector operations  Provides higher potential speedup vs. MIMD architecture  Developers can think sequentially; not worry about parallelism October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^46

(SIMD): VECTOR PROCESSING

ADVANTAGES

 MIMD ( Multiple Instructions, Multiple Data) - system with several processors and/or cores that function asynchronously and independently  At any time, dif ferent processors/cores may execute dif ferent instructions on dif ferent data  Multi-core CPUs are MIMD  Processors share memory via interconnection networks ▪ Hypercube, 2D torus, 3D torus, omega network, other topologies  MIMD systems have dif ferent methods of sharing memory ▪ Uniform Memory Access (UMA) ▪ Cache Only Memory Access (COMA) ▪ Non-Uniform Memory Access (NUMA) October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^47

FLYNN’S TAXONOMY - 2

 Arithmetic intensity: Ratio of work (W) to

memory traffic r/w (Q) Example: # of floating point ops per byte of data read  Characterizes application scalability with SIMD support ▪ SIMD can perform many fast matrix operations in parallelHigh arithmetic Intensity: P rograms with dense matrix operations scale up nicely (many calcs vs memory RW, supports lots of parallelism)

 Low arithmetic intensity:

Programs with sparse matrix operations do not scale well with problem size (memory RW becomes bottleneck, not enough ops!) October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^48

ARITHMETIC INTENSITY

School of Engineering and Technology, UW-Tacoma

 Amdahl’s law is used to estimate the speed - up of a job

using parallel computing

  1. Divide job into two parts
  2. Part A that will still be sequential

3. Part B that will be sped-up with parallel computing

 Portion of computation which cannot be parallelized will determine (i.e. limit) the overall speedup  Amdahl’s law assumes jobs are of a fixed size

 Also, Amdahl’s assumes no overhead for distributing the

work, and a perfectly even work distribution October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^55

AMDAHL’S LAW

 S = theoretical speedup of the whole task  f= fraction of work that is parallel (ex. 25% or 0.25)  N= proposed speed up of the parallel par t ( e x. 5 tim e s s pe e dup )  % improvement of task execution = 100 * (1 – (1 / S))  U sing Amdahl’s law, w hat is the m aximum possible s peed - up? October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^56

AMDAHL’S LAW

 Program with two independent par ts: ▪ Part A is 75% of the execution time ▪ Part B is 25% of the execution time  Par t B is made 5 times faster with parallel computing  Estimate the percent improvement of task execution  Original Par t A is 3 seconds, Par t B is 1 second  N=5 (speedup of par t B)  f=.25 (only 25% of the whole job (A+B) will be sped - up)  S=1 / ((1-f) + f/S)  S=1 / ((.75) + .25/5)  S=1.  % improvement = 100 * (1 – 1/1.25) = 20% October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^57

AMDAHL’S LAW EXAMPLE

from Wikipedia  Calculates the scaled speed-up using “N” processors S(N) = N + (1 - N) α N: Number of processors α: fraction of program run time which can’t be parallelized (e.g. must run sequentially)  Can be used to estimate runtime of parallel portion of program October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^58

GUSTAFSON'S LAW

 Calculates the scaled speed-up using “N” processors

S(N) = N + (1 - N) α N: Number of processors α: fraction of program run time which can’t be parallelized (e.g. must run sequentially)  Can be used to estimate runtime of parallel portion of program

 Where α =  / ( + )

 Where = sequential time,  =parallel time  Our Amdahl’s example: = 3s,  =1s, α =. October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^59

GUSTAFSON'S LAW

 Calculates the scaled speed-up using “N” processors

S(N) = N + (1 - N) α N: Number of processors α: fraction of program run time which can’t be parallelized (e.g. must run sequentially)  Example: Consider a program that is embarrassingly parallel, but 75% cannot be parallelized. α=. QUESTION: If deploying the job on a 2 - core CPU, what scaled speedup is possible assuming the use of two processes that run in parallel? October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^60

GUSTAFSON'S LAW

School of Engineering and Technology, UW-Tacoma

 Q U ESTION: What is the maximum theoretical speed - up on a 2 - c ore C P U? S(N) = N + (1 - N) α N=2, α=. S(N) = 2 + (1 - 2).

S(N) =?

 What is the maximum theoretical speed - up on a 16- c o re C P U? S(N) = N + (1 - N) α N=16, α=. S(N) = 16 + (1 - 16). S(N) =? October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^61

GUSTAFSON’S EXAMPLE

 Q U ESTION: What is the maximum theoretical speed - up on a 2 - c ore C P U? S(N) = N + (1 - N) α N=2, α=. S(N) = 2 + (1 - 2).

S(N) =?

 What is the maximum theoretical speed - up on a 16 - core C P U? S(N) = N + (1 - N) α N=16, α=. S(N) = 16 + (1 - 16). S(N) =? October 5, 2021 TCSS562: Software Engineering for Cloud Computing [Fall 2021] School of Engineering and Technology, University of Washington - Tacoma L2.^62

GUSTAFSON’S EXAMPLE

For 2 CPUs, speed up is 1.25x For 16 CPUs, speed up is 4.75x For 2 CPUs, speed up is 1.25x For 16 CPUs, speed up is 4.75x  Transistors on a chip doubles approximately ever y 1.5 year s  CPUs now have billions of transistors  Power dissipation issues at faster clock rates leads to heat removal challenges ▪ Transition from: increasing clock rates → to adding CPU cores  S ymmetric core processor – multi-core CPU, all cores have the same computational resources and speed  Asymmetric core processor – on a multi-core CPU, some cores have more resources and speed  Dynamic core processor – processing resources and speed can be dynamically configured among cores  O bservation: asymmetric processors of fer a higher speedup October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^63

MOORE’S LAW

 Questions from 9/  Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition)  Data, thread-level, task-level parallelism & Parallel architectures  Class Activity 1 – Implicit vs Explicit Parallelism  SIMD architectures, vector processing, multimedia extensions  Graphics processing units  Speed-up, Amdahl's Law, Scaled Speedup  Properties of distributed systems  Modularity  Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^64

OBJECTIVES – 10/

 Collection of autonomous computers, connected through a network with distribution sof tware called “middleware” that enables coordination of activities and sharing of resources  Key characteristics:  User s perceive system as a single, integrated computing facility.  Compute nodes are autonomous  Scheduling, resource management, and security implemented by ever y node  Multiple points of control and failure  Nodes may not be accessible at all times  System can be scaled by adding additional nodes  Availability at low levels of HW/sof tware/network reliability October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^65

DISTRIBUTED SYSTEMS

 Key non-functional attributes ▪ Known as “ilities” in software engineering  Availability – 24/7 access?  Reliability - Fault tolerance  Accessibility – reachable?  Usability – user friendly  Understandability – can under  Scalability – responds to variable demand  Extensibility – can be easily modified, extended  Maintainability – can be easily fixed  Consistency – data is replicated correctly in timely manner October 5, 2021 TCSS562: Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^66

DISTRIBUTED SYSTEMS - 2

School of Engineering and Technology, UW-Tacoma

INTRODUCTION TO

CLOUD COMPUTING

September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2. 73  Questions f rom 9/  Cloud Computing – How did we get here? (Marinescu Ch. 2 - 1 st^ edition, Ch. 4 - 2 nd^ edition)  Data, thread-level, task-level parallelism & Parallel architectures  Class Activity 1 – Implicit vs Explicit Parallelism  SIMD architectures, vector processing, multimedia extensions  Graphics processing units  Speed-up, Amdahl's Law, Scaled Speedup  Properties of distributed systems  Modularity  Introduction to Cloud Computing – loosely based on book #1: Cloud Computing Concepts, Technology & Architecture October 5, 2021 TCSS562:Software Engineering for Cloud Computing School of Engineering and Technology, University of Washington^ [Fall 2021] - Tacoma L2.^74

OBJECTIVES – 10/

 Introduction to Cloud Computing

▪ Why study cloud computing?

▪ History of cloud computing

▪ Business drivers

▪ Cloud enabling technologies

▪ Terminology

▪ Benefits of cloud adoption

▪ Risks of cloud adoption

September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^75

OBJECTIVES – 10/

 LINKEDIN - TOP IT Skills fr o m j o b app dat a ▪ #1 Cloud and Distributed Computing

▪ https://learning.linkedin.com/week-of-learning/top-skills

▪ #2 Statistical Analysis and Data Mining  FORBES Survey – 6 Tech Skills That’ll Help You Earn More ▪ #1 Data Science ▪ #2 Cloud and Distributed Computing ▪ http://www.forbes.com/sites/laurencebradford/2016/12/ 19/6-tech-skills-thatll-help-you-earn-more-in-2017/ September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^76

WHY STUDY CLOUD COMPUTING?

 Computerworld Magazine September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^77

WHY STUDY CLOUD COMPUTING? - 2

 Introduction to Cloud Computing

▪ Why study cloud computing?

▪ History of cloud computing

▪ Business drivers

▪ Cloud enabling technologies

▪ Terminology

▪ Benefits of cloud adoption

▪ Risks of cloud adoption

September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^78

OBJECTIVES – 10/

School of Engineering and Technology, UW-Tacoma

 John McCar thy, 1961 ▪ Turing award winner for contributions to AI  “If computers of the kind I have advocated become the computers of the future, then computing may someday be organized as a public utility just as the telephone system is a public utility… The computer utility could become the basis of a new and impor tant industry…” September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^79

A BRIEF HISTORY OF CLOUD COMPUTING

 Internet based computer utilities  Since the mid-1990s  Search engines: Yahoo!, Google, Bing  Email: Hotmail, Gmail  2000s  Social networking platforms: MySpace, Facebook, LinkedIn  Social media: Twitter, YouTube  Popularized core concepts  Formed basis of cloud computing September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^80

CLOUD HISTORY - 2

 Late 1990s – Early Sof tware-as-a-Service (SaaS) ▪ Salesforce: Remotely provisioned services for the enterprise  2002 - ▪ Amazon Web Services (AWS) platform: Enterprise oriented services for remotely provisioned storage, computing resources, and business functionality  2006 – Infrastructure-as-a-Service ( IaaS) ▪ Amazon launches Elastic Compute Cloud (EC2) service ▪ Organization can “lease” computing capacity and processing power to host enterprise applications ▪ Infrastructure September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^81

CLOUD HISTORY: SERVICES - 1

 2006 – Software-as-a-Service (SaaS) ▪ Google: Offers Google DOCS, “MS Office” like fully - web

based application for online documentation creation and

collaboration  2009 – Platform-as-a-Service (PaaS)

▪ Google: Offers Google App Engine, publicly hosted

platform for hosting scalable web applications on google- hosted datacenters September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^82

CLOUD HISTORY: SERVICES - 2

CLOUD COMPUTING NIST GENERAL DEFINITION “Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (networks, servers, storage, applications and services) that can be rapidly provisioned and reused with minimal management effort or service provider interaction”… September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^83 “Cloud computing is a specialized form of distributed computing that introduces utilization models for remotely provisioning scalable and measured resources.” From Cloud Computing Concepts, Technology, and Architecture Z. Mahmood, R. Puttini, Prentice Hall, 5 th^ printing, 2015 September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^84

MORE CONCISE DEFINITION

School of Engineering and Technology, UW-Tacoma

September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^91

CAPACITY PLANNING - 2

 Capacity planning  Cost reduction

▪ IT Infrastructure acquisition ▪ IT Infrastructure maintenance

 Operational overhead

▪ Technical personnel to maintain physical IT infrastructure ▪ System upgrades, patches that add testing to deployment cycles ▪ Utility bills, capital investments for power and cooling ▪ Security and access control measures for server rooms ▪ Admin and accounting staff to track licenses, support agreements, purchases September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^92

BUSINESS DRIVERS FOR CLOUD - 3

 Organizational agility

▪ Ability to adapt and evolve infrastructure to face change

from internal and external business factors ▪ Funding constraints can lead to insufficient on premise IT ▪ Cloud computing enables IT resources to scale with a lower financial commitment September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^93

BUSINESS DRIVERS FOR CLOUD - 4

 Introduction to Cloud Computing ▪ Why study cloud computing? ▪ History of cloud computing ▪ Business drivers ▪ Cloud enabling technologies ▪ Terminology ▪ Benefits of cloud adoption ▪ Risks of cloud adoption September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^94

OBJECTIVES – 10/

 Cluster computing  Grid computing  Virtualization  Others September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^95

TECHNOLOGY INNOVATIONS

LEADING TO CLOUD

 Cluster computing (clustering)

▪ Cluster is a group of independent IT resources interconnected as a single system ▪ Servers configured with homogeneous hardware and software ▪ Identical or similar RAM, CPU, HDDs ▪ Design emphasizes redundancy as server components are easily interchanged to keep overall system running ▪ Example: if a RAID card fails on a key server, the card can be swapped from another redundant server ▪ Enables warm replica servers ▪ Duplication of key infrastructure servers to provide HW failover to ensure high availability (HA) September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^96

CLUSTER COMPUTING

School of Engineering and Technology, UW-Tacoma

 On going research area since early 1990s  Distributed heterogeneous computing resources organized into logical pools of loosely coupled resources  For example: heterogeneous ser vers connected by the internet  Resources are heterogeneous and geographically dispersed  Grids use middleware sof tware layer to support workload distribution and coordination functions  Aspects: load balancing, failover control, autonomic configuration management  Grids have influenced clouds contributing common features: networked access to machines, resource pooling, scalability, and resiliency September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^97

GRID COMPUTING

September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^98

GRID COMPUTING - 2

VIRTUALIZATION

September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^99

VIRTUALIZATION

September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^100

 Simulate physical hardware resources via software

▪ The virtual machine (virtual computer) ▪ Virtual local area network (VLAN) ▪ Virtual hard disk ▪ Virtual network attached storage array (NAS)  Early incarnations featured significant performance, reliability, and scalability challenges  CPU and other HW enhancements have minimized performance GAPs September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^101

VIRTUALIZATION

 Introduction to Cloud Computing ▪ Why study cloud computing? ▪ History of cloud computing ▪ Business drivers ▪ Cloud enabling technologies ▪ Terminology ▪ Benefits of cloud adoption ▪ Risks of cloud adoption September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^102

OBJECTIVES – 10/

School of Engineering and Technology, UW-Tacoma

Horizontal Scaling Vertical Scaling Less expensive using commodity HW (^) high capacityRequires expensive servers IT resources instantly available IT resources typically instantly available Resource replication and automated scaling Additional setup is normally needed Additional servers required No additional servers required September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^109

HORIZONTAL VS VERTICAL SCALING

Horizontal Scaling Vertical Scaling Less expensive using commodity HW (^) high capacityRequires expensive servers IT resources instantly available IT resources typically instantly available Resource replication and automated scaling Additional setup is normally needed Additional servers required No additional servers required Not limited by individual server capacity Limited by individual server capacity September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^110

HORIZONTAL VS VERTICAL SCALING

 Cloud services ▪ Broad array of resources accessible “as-a-service”

▪ Categorized as Infrastructure (IaaS), Platform (PaaS),

Software (SaaS)  Service-level-agreements (SLAs):

▪ Establish expectations for: uptime, security, availability,

reliability, and performance September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^111

KEY TERMINOLOGY - 2

 Introduction to Cloud Computing ▪ Why study cloud computing? ▪ History of cloud computing ▪ Business drivers ▪ Cloud enabling technologies ▪ Terminology ▪ Benefits of cloud adoption ▪ Risks of cloud adoption September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^112

OBJECTIVES – 10/

 Cloud providers ▪ Leverage economies of scale through mass-acquisition and management of large-scale IT resources ▪ Locate datacenters to optimize costs where electricity is low  Cloud consumers ▪ Key business/accounting difference: ▪ Cloud computing enables anticipated capital expenditures to be replaced with operational expenditures ▪ Operational expenditures always scale with the business ▪ Eliminates need to invest in server infrastructure based on anticipated business needs ▪ Businesses become more agile and lower their financial risks by eliminating large capital investments in physical infrastructure September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^113

GOALS AND BENEFITS

 On demand access to pay - as-you-go resources on a shor t-term basis (less commitment)  Ability to acquire “unlimited” computing resources on demand when required for business needs  Ability to add/remove IT resources at a fine-grained level  Abstraction of ser ver infrastructure so applications deployments are not dependent on specific locations, hardware, etc. ▪ The cloud has made our software deployments more agile… September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^114

CLOUD BENEFITS - 2

School of Engineering and Technology, UW-Tacoma

 Example: Using 100 ser vers for 1 hour costs the same as using 1 ser ver for 100 hour s  Rosetta Protein Folding: Working with a UW - Tacoma graduate student, we recently deployed this science model across 5, compute cores on Amazon for 2-days…  W hat is the cost to purchase 5,900 compute cores?  Recent Dell Ser ver purchase example: 20 cores on 2 ser vers for $4,478…  Using this ratio 5,900 cores costs $1.3 million (purchase only) September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^115

CLOUD BENEFITS - 3

Gene Wilder, Charlie and the Chocolate Factory  Increased scalability ▪ Example demand over a 24 - hour day →  Increased availability  Increased reliability September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^117

CLOUD BENEFITS

 Introduction to Cloud Computing ▪ Why study cloud computing? ▪ History of cloud computing ▪ Business drivers ▪ Cloud enabling technologies ▪ Terminology ▪ Benefits of cloud adoption ▪ Risks of cloud adoption September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^118

OBJECTIVES – 10/

 Increased security vulnerabilities

▪ Expansion of trust boundaries now include the external cloud ▪ Security responsibility shared with cloud provider  Reduced operational governance / control ▪ Users have less control of physical hardware ▪ Cloud user does not directly control resources to ensure quality-of-service

▪ Infrastructure management is abstracted

▪ Quality and stability of resources can vary ▪ Network latency costs and variability September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^119

CLOUD ADOPTION RISKS

September 30, 2019 TCSS562: Software Engineering for Cloud Computing [Fall 2019] School of Engineering and Technology, University of Washington - Tacoma L2.^120

NETWORK LATENCY COSTS