Week_2
Week_2
Landscape
(CS 526)
MSCS
UMT Lahore
Email: [email protected]
Counselling Hours: 2.30 to 3.30 pm Friday
Outline
• Introduction of parallel and distributed computing
• Moore’s Law
• Multi-cores
• Moore’ Law in the era of multi-cores
• Flynn’s Taxonomy: SISD, SIMD, MISD, MIMD
• Hardware Architectures:
– Multi-core processors (Heterogeneous multi-cores i.e., GPUs)
– Multi-processors System (shared Memory)
– Multi-processor System (Distributed Memory)
• Parallel Architectures: Classification of MIMD (NUMA, UMA,
COMA, CC-NUMA)
– Cluster
– Grid Computing
– Cloud and Fog Computing
Concurrency & Parallelism
Concurrency
Consider you are given a task of singing and eating at the same time. At
a given instance of time either you would sing or you would eat as in
both cases your mouth is involved. So in order to do this, you would eat
for some time and then sing and repeat this until your food is finished
or song is over. So you performed your tasks concurrently.
Process
• Imagine you were given to write two letters • Imagine you were given to make a
one to your mom and another to your best sandwich and wash your clothes in a
friend. You can not at the same time write washing machine. You could put your
two letters unless you are a pro clothes in the washing machine and
ambidextrous. without waiting for it to be done, you
• In a synchronous programming model, tasks could go and make the sandwich. Here
are executed one after another. Each task you performed these two tasks
waits for any previous task to complete and asynchronously.
then gets executed. • In an asynchronous programming model,
• Best suited for simple applications or CPU- when one task gets executed, you could
bound tasks where operations need to be switch to a different task without waiting
performed in a specific order. for the previous to get completed.
What is the role of synchronous and asynchronous programming in
concurrency and parallelism?