Computer Science 320
-
Upload
lani-atkinson -
Category
Documents
-
view
10 -
download
0
description
Transcript of Computer Science 320
![Page 1: Computer Science 320](https://reader036.fdocuments.in/reader036/viewer/2022083004/56812d0c550346895d91e1c9/html5/thumbnails/1.jpg)
Computer Science 320
Parallel ComputingOverview of the Course
![Page 2: Computer Science 320](https://reader036.fdocuments.in/reader036/viewer/2022083004/56812d0c550346895d91e1c9/html5/thumbnails/2.jpg)
Who Am I?
Dr. Lambert
Office: Parmly 406
Phone: 8809
Email: [email protected]
Home Page: home.wlu.edu/~lambertk
Course Page: home.wlu.edu/~lambertk/classes/320
![Page 3: Computer Science 320](https://reader036.fdocuments.in/reader036/viewer/2022083004/56812d0c550346895d91e1c9/html5/thumbnails/3.jpg)
Principal Topics
• Hardware for parallel computing
• Software (languages and programs)
• Applications
![Page 4: Computer Science 320](https://reader036.fdocuments.in/reader036/viewer/2022083004/56812d0c550346895d91e1c9/html5/thumbnails/4.jpg)
Applications
• Image analysis (MRI scans)
• Cryptography
• Climate modeling (weather predictions)
• Bioinformatics
![Page 5: Computer Science 320](https://reader036.fdocuments.in/reader036/viewer/2022083004/56812d0c550346895d91e1c9/html5/thumbnails/5.jpg)
How Do I Solve a Problem Faster?
• Get a faster processor (Moore’s Law has a limit)
• Find a faster algorithm (for example, reduce O(n) to O(log2n))
• Distribute the work among several processors (potential speedup of running time/p)
![Page 6: Computer Science 320](https://reader036.fdocuments.in/reader036/viewer/2022083004/56812d0c550346895d91e1c9/html5/thumbnails/6.jpg)
Closely Related Terms
• Timesharing – multiple users running single applications on a single processor simultaneously
• Multiprocessing – a single user running multiple applications on a single processor simultaneously
• Multithreading – A single application employing multiple threads on a single processor to solve a problem
![Page 7: Computer Science 320](https://reader036.fdocuments.in/reader036/viewer/2022083004/56812d0c550346895d91e1c9/html5/thumbnails/7.jpg)
Closely Related Terms
• Distributed computing – a single application employing multiple processors on different computers to solve a problem
• Multicore computing – A single application employing multiple processors on a single computer to solve a problem
![Page 8: Computer Science 320](https://reader036.fdocuments.in/reader036/viewer/2022083004/56812d0c550346895d91e1c9/html5/thumbnails/8.jpg)
Closely Related Terms
• Concurrent programming – a set of software techniques for solving problems using multiple processes or threads
• Can give the illusion of parallelism on a single processor
![Page 9: Computer Science 320](https://reader036.fdocuments.in/reader036/viewer/2022083004/56812d0c550346895d91e1c9/html5/thumbnails/9.jpg)
What Is a Process?
• An abstraction of an executing program
• A chunk of memory for the program and its data, along with the program’s current state (the address of next instruction, the values in the registers for that program, etc.)
• Lots of overhead in switching between processes (save and restore the states)
![Page 10: Computer Science 320](https://reader036.fdocuments.in/reader036/viewer/2022083004/56812d0c550346895d91e1c9/html5/thumbnails/10.jpg)
What Is a Thread?
• A lightweight version of a process
• Includes code to run, but not its own memory for data
• Context switches are much faster