100 likes | 171 Views
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
E N D
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 • 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