computer science 320

10
Computer Science 320 Parallel Computing Overview of the Course

Upload: lani-atkinson

Post on 30-Dec-2015

10 views

Category:

Documents


0 download

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

TRANSCRIPT

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