10
Computer Science 320 Parallel Computing Overview of the Course

Computer Science 320

Embed Size (px)

DESCRIPTION

Computer Science 320. Parallel Computing Overview of the Course. 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. Principal Topics. Hardware for parallel computing - PowerPoint PPT Presentation

Citation preview

Page 1: Computer Science 320

Computer Science 320

Parallel ComputingOverview of the Course

Page 2: Computer Science 320

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

Principal Topics

• Hardware for parallel computing

• Software (languages and programs)

• Applications

Page 4: Computer Science 320

Applications

• Image analysis (MRI scans)

• Cryptography

• Climate modeling (weather predictions)

• Bioinformatics

Page 5: Computer Science 320

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

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

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

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

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

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