Computer Science 320

Preview:

DESCRIPTION

Computer Science 320. Parallel Computing Overview of the Course. Who Am I?. Dr. Lambert Office: Parmly 406 Phone: 8809 Email: lambertk@wlu.edu 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

Computer Science 320

Parallel ComputingOverview of the Course

Who Am I?

Dr. Lambert

Office: Parmly 406

Phone: 8809

Email: lambertk@wlu.edu

Home Page: home.wlu.edu/~lambertk

Course Page: home.wlu.edu/~lambertk/classes/320

Principal Topics

• Hardware for parallel computing

• Software (languages and programs)

• Applications

Applications

• Image analysis (MRI scans)

• Cryptography

• Climate modeling (weather predictions)

• Bioinformatics

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)

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

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

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

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)

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

Recommended