Professional Documents
Culture Documents
COMPUTING
LECTURE 1
Sabah Sayed
Course Materials
Course: High Performance Computing
Course Cod: CS371
Acadox:
http://www.acadox.com/class/64485
http://www.acadox.com/join/2KAPYE
2/22/2023
2
In this Course
An introduction to parallel programming
Parallel Hardware and Parallel Software
3
Textbook
Programming language
C on Linux (VMware)
4
Course Assessment
Assignments 18
Lab Participation 7
Midterm 15
Final 60
5
Parallel Programming Languages
6
Why Parallel Computing
Why we need ever-increasing performance.
Why we’re building parallel systems.
Why we need to write parallel programs.
How do we write parallel programs.
What we’ll be doing.
Concurrent, parallel, distributed.
7
Changing times
From 1986 – 2002, microprocessors were speeding
like a rocket, increasing in performance an average
of 50% per year.
8
An intelligent solution
Instead of designing and building faster
microprocessors, put multiple processors on a single
integrated circuit.
9
Why we need ever-increasing
performance
Computational power is increasing, but so are our
computation problems and needs.
Problems such as:
decoding the human genome.
fast and accurate Web searches.
10
Climate modeling
11
Study complex molecules
12
Drug discovery
There are many ways in which
increased computational power can
be used in research into new medical
treatments.
Drugs that are effective in treating a
small number of patients.
Analysis of the genomes of the other
patients will involve extensive
computational analysis of genomes.
13
Energy research
14
Data analysis
The quantity of data stored worldwide doubles every
two years.
But it is largely useless unless it’s analyzed.
15
Why we’re building parallel systems
16
Why we’re building parallel systems
17
Solution
Move away from single-core systems to multicore
processors.
“core” = central processing unit (CPU)
◼ Introducing parallelism!!!
18
Now it’s up to the programmers
Adding more processors doesn’t help much if
programmers aren’t aware of them…
… or don’t know how to use them.
19
Why we need to write parallel
programs
Running multiple instances of a serial program often
isn’t very useful.
Think of running multiple instances of your favorite
game.
20
Approaches to the serial problem
1) Rewrite serial programs so that they’re parallel.
21
More problems
Some coding constructs can be recognized by an
automatic program generator and converted to a
parallel construct.
However, it’s likely that the result will be a very
inefficient program.
Sometimes the best parallel solution is to step back
and devise an entirely new algorithm.
22